生图模型OpenAI Images
gpt-image-2-each
按次计费的图像生成与参考图编辑
能力概览
文生图
用于写实图、插画、海报与商品图。
参考图编辑
上传参考图并用提示词说明需要保留和修改的内容。
文字排版
适合需要在画面中生成清晰文字的场景。
分辨率与比例
1K、2K 提供方图、横图与竖图,另有 4K 方图档位。
按张生成
一次请求生成一张图片,不同分辨率档位单张价格相同。
提示词1–32,000 字符
参考图上传multipart 文件
生成数量n 固定为 1
输出质量由平台统一配置
生成与编辑图像
文生图
POST
https://www.yunqiai.chat/v1/images/generations只传提示词时使用 Images Generations,请在 JSON 请求体中填写完整模型 ID。
参考图编辑
POST
https://www.yunqiai.chat/v1/images/edits图生图使用 Images Edits,并通过 multipart/form-data 上传参考图。
文生图参数
| 参数 | 类型 | 说明 |
|---|---|---|
model必填 | string | gpt-image-2-each |
prompt必填 | string | 1–32,000 字符 |
size | string | 1K、2K、4K,或下表列出的横向与竖向尺寸;无需另传 resolution |
n | integer | 固定为 1;一次请求返回一张图片 |
output_format | string | png、jpeg、webp;默认 png |
output_compression | integer | 0–100;仅 jpeg / webp |
background | string | auto 或 opaque |
moderation | string | auto 或 low |
stream | boolean | 是否流式返回 |
partial_images | integer | 0–3;仅流式请求 |
user | string | 可选终端用户标识,用于滥用监测 |
gpt-image-2-each 尺寸与档位
1K、2K、4K 是分辨率档位,不是比例限制。方图可直接填写档位;横图和竖图使用下表中的具体尺寸。
| size | 输出尺寸 | 输出比例 | 适合场景 |
|---|---|---|---|
1K | 1024×1024 | 1:1 | 1K 方图 |
1536x1024 | 1536×1024 | 3:2 | 1K 横图 |
1024x1536 | 1024×1536 | 2:3 | 1K 竖图 |
2K | 2048×2048 | 1:1 | 2K 方图 |
2048x1152 | 2048×1152 | 16:9 | 2K 横图 |
1152x2048 | 1152×2048 | 9:16 | 2K 竖图 |
4K | 2880×2880 | 1:1 | 最大方图 |
参考图编辑
gpt-image-2-each 可通过 Images Edits 接收参考图。上传图片后,在 prompt 中写明要保留的主体和需要修改的内容。
| 参数 | 类型 | 说明 |
|---|---|---|
model必填 | string | gpt-image-2-each |
image必填 | file | 通过 multipart/form-data 上传参考图 |
prompt必填 | string | 说明需要保留和修改的画面内容 |
size | string | 填写输出宽高,例如 1024x1024 |
output_format | string | png、jpeg、webp;默认 png |
curl --request POST \
--url https://www.yunqiai.chat/v1/images/edits \
--header "Authorization: Bearer YOUR_API_KEY" \
--form "model=gpt-image-2-each" \
--form "image=@./reference.png" \
--form "prompt=保留参考图主体,把背景改成柔和的蓝色渐变" \
--form "size=1024x1024" \
--form "output_format=png"Base64 返回值
逐项遍历完整 data[]。每一项可能提供可下载的 url,也可能直接提供 b64_json;下面的解析器兼容两种返回形式,并会保存所有图片。
import base64
import json
import sys
from pathlib import Path
import requests
result = json.load(sys.stdin)
for index, item in enumerate(result.get("data", []), start=1):
output_path = Path(f"result-{index}.png")
if item.get("b64_json"):
image_bytes = base64.b64decode(item["b64_json"])
elif item.get("url"):
download = requests.get(item["url"], timeout=(10, 60))
download.raise_for_status()
image_bytes = download.content
else:
raise ValueError(f"data[{index - 1}] 没有 url 或 b64_json")
output_path.write_bytes(image_bytes)
print(output_path)将请求返回保存为 response.json 后运行 python save_images.py < response.json。编辑接口的输入仍使用 multipart 文件上传;已有 Base64 输入时,先解码成图片文件。
请求示例
curl --request POST \
--url https://www.yunqiai.chat/v1/images/generations \
--header "Authorization: Bearer YOUR_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "gpt-image-2-each",
"prompt": "雨后的未来城市,霓虹倒影,电影感构图",
"size": "1K",
"output_format": "png",
"n": 1
}'响应结构
{
"created": 1785987000,
"data": [
{
"url": "https://example.com/generated-image.png"
}
],
"usage": {
"input_tokens": 17,
"output_tokens": 1756,
"total_tokens": 1773
}
}流式、错误与超时
| 情况 | 客户端处理 |
|---|---|
| 同步请求 | 连接超时可设为 10 秒,读取超时从 300 秒起设置 |
| 流式图片 | stream: true 时,中间图和最终图都通过 image_generation.partial_image 返回;按 partial_image_index 保存并解码 b64_json,流正常结束后以最后一张为最终图 |
| 408、429、5xx | 读取 Retry-After,使用带随机抖动的指数退避并限制重试次数 |
| 400、401、403、404 | 不要自动重试;检查错误正文、鉴权、模型、文件与参数 |
协议参考
本页示例按 YunQi AI 的模型 ID、接口路径和参数格式编写;以下链接提供对应协议的字段说明。