主题
GPT Image 2 接入教程
模型介绍
gpt-image-2 可用于图片生成和图片编辑。开始前需要准备 AruHub API Key,并使用模型 gpt-image-2 和 Base URL https://api.aruhub.com/v1。
接入信息
| 配置 | 内容 |
|---|---|
| Base URL | https://api.aruhub.com/v1 |
| API Key | AruHub“我的密钥”中创建 |
| 模型 | gpt-image-2 |
WARNING
API Key 相当于账户密码,请妥善保管,不要上传到 GitHub、网盘、截图或公开聊天中。
文生图
普通图片生成使用以下接口:
text
POST https://api.aruhub.com/v1/images/generations将下面示例中的 YOUR_API_KEY 替换为自己的 AruHub API Key 后即可测试:
bash
curl https://api.aruhub.com/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "一只橘猫坐在东京街头的咖啡店门口,电影摄影风格",
"size": "1024x1024",
"quality": "medium",
"n": 1
}'参数说明
| 参数 | 说明 | 示例值 |
|---|---|---|
model | 要调用的图片模型 | gpt-image-2 |
prompt | 描述要生成的图片内容和风格 | 一只橘猫坐在东京街头…… |
size | 输出图片尺寸 | 1024x1024 |
quality | 图片质量 | medium |
n | 生成图片的数量 | 1 |
本教程只使用当前稳定确认的 size: 1024x1024 和 quality: medium,未列出未经确认的其他枚举值。
返回结果
图片接口通常返回图片数据,结构类似:
json
{
"data": [
{
"b64_json": "..."
}
]
}data[0].b64_json 是 Base64 编码的图片数据,需要进行 Base64 解码后保存为图片。实际响应中的 Base64 内容很长,这里不展开。
Python 示例
先安装 OpenAI Python SDK:
bash
pip install openaipython
from openai import OpenAI
import base64
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.aruhub.com/v1"
)
result = client.images.generate(
model="gpt-image-2",
prompt="一只宇航员猫站在月球表面,地球出现在背景中",
size="1024x1024",
quality="medium"
)
image_base64 = result.data[0].b64_json
image_bytes = base64.b64decode(image_base64)
with open("image.png", "wb") as f:
f.write(image_bytes)
print("图片已保存为 image.png")Node.js 示例
先安装 OpenAI Node.js SDK:
bash
npm install openaijavascript
import fs from "node:fs";
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.aruhub.com/v1",
});
const result = await client.images.generate({
model: "gpt-image-2",
prompt: "一只宇航员猫站在月球表面,地球出现在背景中",
size: "1024x1024",
quality: "medium",
});
const imageBase64 = result.data[0].b64_json;
const imageBuffer = Buffer.from(imageBase64, "base64");
fs.writeFileSync("image.png", imageBuffer);
console.log("图片已保存为 image.png");图片编辑
图片编辑使用 POST /v1/images/edits,通过 multipart/form-data 上传原图:
bash
curl https://api.aruhub.com/v1/images/edits \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=gpt-image-2" \
-F "[email protected]" \
-F "prompt=将图片背景修改为夜晚的东京街头,保持主体不变" \
-F "size=1024x1024" \
-F "quality=medium"请将 YOUR_API_KEY 替换为自己的 AruHub API Key,并确保当前目录中存在 input.png。
提示词示例
- 摄影:
雨后的上海街头,一位撑透明伞的行人,纪实摄影,柔和霓虹灯光 - 商品图:
一瓶极简设计的香水放在浅色石材台面上,柔光棚拍,纯净背景 - 海报:
夏日音乐节海报,热带配色,醒目中文标题,现代扁平插画风格
常见问题
401 Unauthorized
检查请求头是否为:
text
Authorization: Bearer YOUR_API_KEY并确认已将 YOUR_API_KEY 替换为自己的 AruHub API Key。
model not found
确认模型名称严格写为:
text
gpt-image-2同时检查当前账号分组是否已开放该模型。
为什么返回一大段字符
这通常是 Base64 图片数据。请读取 data[0].b64_json,进行 Base64 解码后保存为图片文件。
为什么图片生成比较慢
图像生成耗时通常高于普通文本请求;图片质量和尺寸也会影响生成时间。
应该调用哪个接口
普通文生图应使用:
text
/v1/images/generations不要将图片生成请求发送到普通文本接口:
text
/v1/chat/completions