Documentation Index
Fetch the complete documentation index at: https://docs.apiyi.com/llms.txt
Use this file to discover all available pages before exploring further.
gpt-image-2-all API 接入文档
APIYI.com · 2026-04
gpt-image-2-all 是 APIYI 平台上线的一款 GPT 图像生成官逆模型。定价 $0.03/张,按次计费,约 30 秒出图,支持 文生图 / 多图编辑 / 自然语言改图,文字还原度高、内容限制少。
本文介绍如何通过 APIYI 的 HTTP API 调用这个模型。
一、模型概览
| 维度 | 参数 |
|---|
| 模型名 | gpt-image-2-all |
| 性质 | 官方逆向(官逆) |
| 定价 | $0.03 / 张,按次计费 |
| 速度 | 约 30 秒 |
| 输出分辨率 | 无显式 size 参数,由模型自适应 |
| 默认响应格式 | url(R2 CDN 加速链接),可自定义改为 b64_json |
| 中文提示词 | ✅ 支持 |
| 支持能力 | 文生图、单图编辑、多图融合编辑、自然语言改图 |
二、认证
所有请求使用 Bearer Token 鉴权:
Authorization: Bearer <你的 APIYI 令牌>
令牌在 APIYI 控制台创建。本模型兼容所有常规类型的令牌。
三、端点一览
| 端点 | 用途 | Content-Type | 推荐度 |
|---|
POST https://api.apiyi.com/v1/chat/completions | 对话式(文生图/改图/多轮/参考图) | application/json | ⭐ 主推 |
POST https://api.apiyi.com/v1/images/generations | 文生图(OpenAI Images 兼容) | application/json | 备用 |
POST https://api.apiyi.com/v1/images/edits | 图片编辑(单图/多图) | multipart/form-data | 备用 |
你也可以把 api.apiyi.com 替换为 b.apiyi.com / vip.apiyi.com 等平台提供的其他网关域名,响应行为一致。
推荐使用 /v1/chat/completions:请求结构简洁(文生图与带图编辑都用同一个端点),天然支持多轮对话与 Vision 格式的参考图。Images 系列端点主要服务于需要严格遵循 OpenAI Images API 契约的场景。
四、对话式端点 /v1/chat/completions(主推)
一个端点同时支持文生图、带参考图改图、多轮对话。结构与 OpenAI Chat/Vision 完全一致,零学习成本。
4.1 请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|
model | string | 是 | 固定填 gpt-image-2-all |
messages | array | 是 | 标准 OpenAI messages 结构,见下方示例 |
⚠️ 不支持 stream、temperature 等文本模型专属参数(传了也不生效)。
4.2 请求示例(带参考图改图)
这是官方给出的完整例子——横版 16:9 背景改沙滩、主体保持不变:
curl -X POST "https://api.apiyi.com/v1/chat/completions" \
-H "Authorization: Bearer <你的令牌>" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2-all",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "横屏 16:9,背景改成沙滩,主体动物不变"
},
{
"type": "image_url",
"image_url": {
"url": "https://r2cdn.copilotbase.com/r2cdn2/63dc13c6-58b6-48ae-b342-d67538405a2b.png"
}
}
]
}
]
}'
4.3 请求示例(纯文生图)
content 可以是字符串,也可以是单元素数组。两种写法等价:
# 写法 A:content 是字符串
-d '{"model":"gpt-image-2-all","messages":[{"role":"user","content":"横版 16:9 日落海边的老灯塔"}]}'
# 写法 B:content 是数组
-d '{"model":"gpt-image-2-all","messages":[{"role":"user","content":[{"type":"text","text":"横版 16:9 日落海边的老灯塔"}]}]}'
4.4 响应格式
生成的图片以 markdown 图片语法 嵌在 choices[0].message.content 里:
{
"id": "chatcmpl-a7ebe118-b417-4159-9b0a-b2171190d2ff",
"object": "chat.completion",
"created": 1776832476,
"model": "gpt-image-2-all",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "\n\n"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 789,
"completion_tokens": 1157,
"total_tokens": 1946
}
}
客户端处理建议:用正则 /!\[.*?\]\((https?:\/\/[^)]+)\)/ 抽取 URL,或直接让 markdown 渲染器处理。
4.5 多图融合
content 数组里追加多个 image_url 对象即可:
{
"model": "gpt-image-2-all",
"messages": [{
"role": "user",
"content": [
{ "type": "text", "text": "把图1的人物放进图2的场景,参考图3的画风" },
{ "type": "image_url", "image_url": { "url": "https://.../ref1.png" } },
{ "type": "image_url", "image_url": { "url": "https://.../ref2.png" } },
{ "type": "image_url", "image_url": { "url": "https://.../ref3.png" } }
]
}]
}
image_url.url 支持两种形式:
- HTTPS URL:
https://...
- Data URL:
data:image/png;base64,...
五、文生图 /v1/images/generations(备用端点)
💡 建议优先用 §四 的 chat/completions。这条端点仅为需要严格遵循 OpenAI Images API 契约的客户端保留。
5.1 请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|
model | string | 是 | 固定填 gpt-image-2-all |
prompt | string | 是 | 提示词,尺寸/比例/风格请在此描述 |
response_format | enum | 否 | url(默认,返回 R2 CDN 链接)或 b64_json |
⚠️ 本模型 不接受 size、n、quality、aspect_ratio 等字段。尺寸请写进 prompt。
5.2 请求示例
curl -X POST 'https://api.apiyi.com/v1/images/generations' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <你的令牌>' \
-d '{
"prompt": "模型:gpt-image-2-all/给我生成一张一位女士直播截图在卖api",
"model": "gpt-image-2-all"
}'
想要指定比例或分辨率,直接写进 prompt,例如:
横版 16:9 电影画幅,黄昏时的海边老灯塔
竖版 9:16 手机壁纸,赛博朋克城市雨夜
1024×1024 方形 LOGO,极简猫咪线条
5.3 响应示例
url 模式(默认,R2 CDN 全球加速):
{
"data": [
{
"url": "https://r2cdn.copilotbase.com/r2cdn2/00aaa9fb-756c-4119-a4a0-4a44fc75152b.png"
}
]
}
b64_json 模式(需显式 "response_format": "b64_json"):
{
"data": [
{
"b64_json": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
}
]
}
⚠️ 兼容性提示:b64_json 字段本身已经包含 data:image/png;base64, 前缀,可直接赋给 HTML <img src> 或写入文件;无需再手动拼接 data:image/...;base64,。与部分旧版 OpenAI 兼容模型不同,请留意。
六、图片编辑 /v1/images/edits(备用端点)
💡 同样建议优先用 §四 的 chat/completions。本端点使用 multipart/form-data,适合文件直传场景。
6.1 请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|
model | text | 是 | gpt-image-2-all |
prompt | text | 是 | 改图/融合的自然语言描述 |
image[] | file | 是 | 参考图,可重复多次(数组字段) |
response_format | text | 否 | url(默认)或 b64_json |
6.2 单图编辑
curl -X POST 'https://api.apiyi.com/v1/images/edits' \
-H 'Authorization: Bearer <你的令牌>' \
-F 'model=gpt-image-2-all' \
-F 'prompt=把背景换成海边黄昏' \
-F 'response_format=url' \
-F 'image[]=@./photo.png'
6.3 多图融合
curl -X POST 'https://api.apiyi.com/v1/images/edits' \
-H 'Authorization: Bearer <你的令牌>' \
-F 'model=gpt-image-2-all' \
-F 'prompt=把图1的人物放进图2的场景,参考图3的画风' \
-F 'response_format=b64_json' \
-F 'image[]=@./ref1.png' \
-F 'image[]=@./ref2.png' \
-F 'image[]=@./ref3.png'
响应格式与 §五 /v1/images/generations 相同。
七、代码示例
本节优先给出 /v1/chat/completions(主推) 的示例。最后的 §7.5 给出 Images API 备用端点用法。
7.1 Python(主推:chat/completions)
import re, requests
resp = requests.post(
"https://api.apiyi.com/v1/chat/completions",
headers={"Authorization": "Bearer <你的令牌>"},
json={
"model": "gpt-image-2-all",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "横屏 16:9,背景改成沙滩,主体动物不变"},
{"type": "image_url", "image_url": {
"url": "https://r2cdn.copilotbase.com/r2cdn2/63dc13c6-58b6-48ae-b342-d67538405a2b.png"
}}
]
}]
},
timeout=300 # 保守值,吸收长尾 + 图片上传/下载耗时
)
content = resp.json()["choices"][0]["message"]["content"]
# 响应里图片 URL 嵌在 markdown 里,正则抽出来
m = re.search(r'!\[.*?\]\((https?://[^)]+)\)', content)
print(m.group(1) if m else content)
7.2 OpenAI SDK(推荐:零改动直连)
from openai import OpenAI
client = OpenAI(
api_key="<你的令牌>",
base_url="https://api.apiyi.com/v1"
)
resp = client.chat.completions.create(
model="gpt-image-2-all",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "横版 16:9 国画风水墨山水"},
# 可选:附参考图
# {"type": "image_url", "image_url": {"url": "https://..."}}
]
}]
)
# content 形如 "\n\n"
print(resp.choices[0].message.content)
7.3 Node.js(主推:chat/completions)
const resp = await fetch('https://api.apiyi.com/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer <你的令牌>'
},
body: JSON.stringify({
model: 'gpt-image-2-all',
messages: [{
role: 'user',
content: [
{ type: 'text', text: '把背景换成太空,保留主体' },
{ type: 'image_url', image_url: { url: 'https://.../photo.png' } }
]
}]
})
});
const data = await resp.json();
const content = data.choices[0].message.content;
const imgUrl = (content.match(/!\[.*?\]\((https?:\/\/[^)]+)\)/) || [])[1];
console.log(imgUrl);
7.4 浏览器 JavaScript(主推:chat/completions)
// 纯文生图
const resp = await fetch('https://api.apiyi.com/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer <你的令牌>'
},
body: JSON.stringify({
model: 'gpt-image-2-all',
messages: [{ role: 'user', content: '1024x1024 方形 LOGO,极简猫咪线条' }]
})
});
const { choices } = await resp.json();
const imgUrl = (choices[0].message.content.match(/!\[.*?\]\((https?:\/\/[^)]+)\)/) || [])[1];
document.getElementById('result').src = imgUrl;
上传本地文件(转 base64 dataURL 后作为 image_url):
const file = document.getElementById('fileInput').files[0];
const dataUrl = await new Promise(r => {
const reader = new FileReader();
reader.onload = () => r(reader.result);
reader.readAsDataURL(file);
});
const resp = await fetch('https://api.apiyi.com/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer <你的令牌>'
},
body: JSON.stringify({
model: 'gpt-image-2-all',
messages: [{
role: 'user',
content: [
{ type: 'text', text: '把这张图改成水彩风' },
{ type: 'image_url', image_url: { url: dataUrl } }
]
}]
})
});
7.5 备用:Images API 端点
若因架构原因必须走 OpenAI Images 契约:
Python 文生图:
resp = requests.post(
"https://api.apiyi.com/v1/images/generations",
headers={"Authorization": "Bearer <你的令牌>"},
json={
"model": "gpt-image-2-all",
"prompt": "横版 16:9 日落海边的老灯塔",
"response_format": "url"
},
timeout=300 # 保守值,吸收长尾 + 图片上传/下载耗时
)
print(resp.json()["data"][0]["url"])
Python 多图编辑(multipart):
with open("ref1.png", "rb") as f1, open("ref2.png", "rb") as f2:
resp = requests.post(
"https://api.apiyi.com/v1/images/edits",
headers={"Authorization": "Bearer <你的令牌>"},
data={"model": "gpt-image-2-all", "prompt": "把图1的人物换成图2的画风"},
files=[("image[]", ("ref1.png", f1, "image/png")),
("image[]", ("ref2.png", f2, "image/png"))],
timeout=300 # 保守值,吸收长尾 + 图片上传/下载耗时
)
print(resp.json()["data"][0]["url"])
八、尺寸与比例控制建议
本模型没有 size 参数,尺寸通过 prompt 描述。以下写法经验证较稳定:
| 需求 | 推荐写法 |
|---|
| 方形 | 1024×1024 方图 / 1:1 方形构图 |
| 横版 | 横版 16:9 / 宽屏 16:9 电影画幅 |
| 竖版 | 竖版 9:16 / 手机海报 9:16 |
| 超宽横幅 | 横幅 21:9 超宽银幕 |
| 经典印刷 | 4:3 标准画幅 / 3:2 经典画幅 |
技巧:在 prompt 开头 描述尺寸/构图,模型遵循度更高。
九、错误码与重试
模型走 APIYI 标准错误体系,常见:
| 状态码 | 含义 | 建议 |
|---|
401 | 令牌无效 | 检查 Bearer Token |
429 | 限流/额度不足 | 指数退避重试 |
5xx | 网关/后端临时错误 | 重试 1–2 次 |
超时 | 官逆高峰偶发 + 图片上传/下载长尾 | 客户端设置 ≥ 300s 超时(保守值) |
建议客户端:
- 请求超时 300 秒 起步(保守值;官方典型 30s,但叠加图片上传 / 下载、官逆高峰长尾后波动大)
- 对 5xx 与超时做 指数退避重试(建议 2–3 次)
- 记录
request-id(响应头)方便排查
十、最佳实践
- 默认走 chat/completions:结构最简洁,一个端点通吃文生图和带图改图。
- 尺寸写在 prompt 开头:模型遵循度更高。
- 文字/招牌类场景:该模型文字还原度是主要卖点,大胆使用中英文标注。
- 多图融合:多张
image_url 在 messages 里的顺序有意义,prompt 里可用「图1/图2/图3」指代。
- 图片 URL 提取:chat 端点响应里 URL 以 markdown
 形式嵌入,用正则 /!\[.*?\]\((https?:\/\/[^)]+)\)/ 提取,或直接交给 markdown 渲染器。
- 超时配置:SDK 默认超时通常不足,请手动设为 300 秒(保守值,吸收图片上传 / 下载长尾)。
- 不要传无用字段:
size、n、quality、aspect_ratio、stream、temperature 不会生效,传了可能触发参数校验错误。
十一、常见问题 FAQ
Q1:应该用哪个端点?
A:默认选 /v1/chat/completions(§四)。一个端点通吃文生图和带图改图,结构跟 OpenAI Chat/Vision 完全一致,OpenAI SDK 直接跑。除非你的应用强依赖 OpenAI Images API 契约(如 client.images.generate()),才需要走 Images API 备用端点(§五、§六)。
Q2:chat 端点的响应怎么提取图片 URL?
A:URL 嵌在 choices[0].message.content 的 markdown 图片语法里,形如 "\n\n"。用正则 /!\[.*?\]\((https?:\/\/[^)]+)\)/ 提取即可。也可以直接把 content 交给 markdown 渲染器显示。
Q3:能同时生成多张图吗?
A:本模型单次返回 1 张。如需 N 张,请客户端并行调用 N 次。
Q4:Images API 端点的 b64_json 前缀要不要自己加 data:image/png;base64,?
A:不要。本模型返回的 b64_json 字段已经带前缀,直接用即可。如果你的代码沿用了”先拼前缀”的老逻辑,会产出损坏的 data URL,请先做 startsWith('data:') 检测。
Q5:为什么提示词里写了 1024x1024 还是拿到别的尺寸?
A:自适应模型对尺寸描述是”参考”不是”强制”。提升遵循度的写法:把尺寸/画幅词放在 prompt 最前面,并配合画幅风格词(如 电影画幅、手机海报、方形构图)。
Q6:参考图最大多大?格式要求?
A:推荐 单张 ≤ 10MB,格式 png / jpg / webp。过大的图可能触发网关限制。chat 端点下参考图通过 image_url.url 传 HTTPS URL 或 base64 data URL 都可以。
Q7:能流式返回吗?
A:本模型为一次性出图,不支持 stream 输出。即便传了 "stream": true 也会一次性返回完整内容。如果对响应延迟敏感,建议客户端显示”生成中”进度提示,并合理配置 300s 超时(保守值)。
Q8:能用 OpenAI 的官方 SDK 直连吗?
A:可以。把 base_url 指向 https://api.apiyi.com/v1,api_key 设为你的 APIYI 令牌即可。推荐用 client.chat.completions.create()(见 §7.2),而不是 client.images.generate()——因为后者会自动带上 size/n 参数,本模型不接受 size。
十二、技术支持
附:变更日志
- 2026-04 首次发布
gpt-image-2-all 模型,定价 $0.03/张。