OpenAI 兼容的 GPT Image 2 同步图片 API —— OpenAI SDK / Codex / Cursor 改一行 base_url 即可直连。完整分辨率 × 质量矩阵(1K/2K/4K × low/medium/high/auto),文生图 + 多图编辑(最多 16 张参考图 + mask),同步返回、无需轮询。
所有请求在 Header 携带 API Key:
Authorization: Bearer YOUR_API_KEY| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| 档位 | low | medium / auto | high |
| 1K | $0.01 | $0.025 | $0.07 |
| 2K | $0.025 | $0.03 | $0.10 |
| 4K | $0.05 | $0.05 | $0.23 |
按张计费,quality=auto 按 medium 档收费;失败不扣费。生成速度随质量档变化:low 约 40 秒、medium 约 60-90 秒、high 约 2 分钟。
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| 计费档 | 典型 size | 判定规则 | |
| 1K | 1024x1024 / 1536x1024 / 1024x1536 | 长边 ≤ 1536 | |
| 2K | 2048x2048 / 2048x1152 / 1152x2048 | 长边 1537-2048 | |
| 4K | 3840x2160 / 2160x3840 | 长边 > 2048 |
任意自定义 WxH 也支持:两边为 16 的倍数、最长边 ≤ 3840、长宽比 ≤ 3:1、总像素 65.5 万-829 万。也可以不传 size,改传 aspect_ratio + resolution(1K/2K/4K),由服务端算出最优尺寸。
/api/v1/images/generations·POST/api/v1/images/edits传 OpenAI 风格的 WxH size 即触发同步模式:请求直接返回图片(b64_json + url),与 OpenAI 官方 images.generate() / images.edit() 契约一致。
# Text-to-image — OpenAI Images API shape, SYNC response (no task polling)
curl -X POST https://api.apimodels.app/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2-all",
"prompt": "a white sneaker product shot on beige background, studio light",
"size": "2048x2048",
"quality": "medium",
"n": 1
}'
# → { "created": ..., "data": [{ "b64_json": "...", "url": "https://r2.apimodels.app/..." }] }
# Image edit / multi-image fusion — multipart, OpenAI images.edit() shape
curl -X POST https://api.apimodels.app/v1/images/edits \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=gpt-image-2-all" \
-F "image=@product.png" \
-F "prompt=put this sneaker on a model, e-commerce close-up" \
-F "size=2048x2048" \
-F "quality=medium"同步模式的等待与超时(2026-08-27 起)
同步请求最长等待 280 秒。等待超过约 95 秒仍未出图时,服务端会先发出 HTTP 200 响应头并每 15 秒写入一个空格保持连接,出图后再写入完整 JSON(前导空白是合法 JSON,所有解析器与 OpenAI SDK 均可直接处理)。这样 2K/4K high 这类 2–3 分钟的渲染不会再被网关以 524 中断。
代价:响应头发出后状态码不可再改。若任务在 95 秒之后才失败(例如上游内容审核在出图后拦截),响应仍为 HTTP 200,错误放在响应体 {"error": {"code": ..., "message": ..., "task_id": ...}} 中,不含 data 字段。请同时检查 error 字段,不要只看状态码。95 秒内的失败仍返回真实状态码:内容审核 400(code content_policy_violation)、参数错误 400、余额不足 402、上游忙 503、上游失败 502、超时 504。
每个同步响应都带 x-apimodels-task-id 响应头。若客户端在自己的超时内主动断开,可用它调用 GET /v1/images/generations?task_id=... 取回结果,任务不会因断开而取消或重复计费。
传 stream: true 可改用 OpenAI 图片流式契约(SSE):等待期间收到 ": processing Ns" 注释行,完成时收到 image_generation.completed / image_edit.completed 事件(含 b64_json 与 url),失败时收到 error 事件。这条路径没有上面的状态码限制,推荐给能改一行代码的调用方。预算超过 2 分钟的渲染也可直接使用方式二的异步契约。
不传 WxH size(或需要 callback_url)时走平台统一异步契约:创建返回 taskId,轮询到 completed 取结果,支持 webhook 回调。
# Native async contract — pass aspect_ratio + resolution tier instead of size.
curl -X POST https://api.apimodels.app/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2-all",
"prompt": "a lighthouse on a cliff at dusk",
"aspect_ratio": "9:16",
"resolution": "2K",
"quality": "medium",
"callback_url": "https://your-domain.com/webhook"
}'
# → { "code": 200, "data": { "taskId": "..." } }
curl "https://api.apimodels.app/v1/images/generations?task_id=TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| 字段 | 类型 | 说明 | |
| model | string | gpt-image-2-all | |
| prompt | string | 提示词(必填) | |
| size | string | WxH,触发同步模式;见上方尺寸表 | |
| quality | string | low / medium / high / auto(默认 medium;auto 按 medium 计费) | |
| aspect_ratio + resolution | string | 异步模式下代替 size:比例 + 1K/2K/4K 档 | |
| image / image_base64 / image_url | string | 参考图 → 自动走编辑端点 | |
| image_urls / images | string[] | 多图融合,最多 16 张 | |
| mask / mask_url / mask_base64 | string | 遮罩局部重绘:PNG,与原图同尺寸,透明区域=重绘处。⚠️ 当前上游模型对遮罩的执行不稳定:我们的实测中约一半请求遮罩被正确执行,其余请求会整图重绘或原样返回,且无法在服务端提前判断。遮罩效果不符合预期的请求可联系 support@apimodels.app 退款。 | |
| background | string | transparent / opaque / auto | |
| output_format | string | png / jpeg / webp(可选)。不传时:不透明图交付 JPEG q95、带透明通道的图保持 PNG。传 png 得到无损原图,但体积约为 JPEG 的 6 倍(实测 1760x2352 成片:PNG 6.6MB vs JPEG 1.0MB);webp 体积与 JPEG 相当且支持透明。 | |
| response_format | string | b64_json(默认)或 url(仅 /images/edits) | |
| stream | boolean | 同步模式下改用 SSE 流式返回(见上方说明) | |
| moderation | string | 接受但忽略。内容过滤由上游模型侧固定执行,当前无法按请求或按账户放宽。 | |
| n | number | 生成数量(计费 × n) |
试一试:Playground
最多 16 张参考图(多图融合/编辑);超过 16 张只取前 16。用 images[] 传(或单张 image)。
原生 1K / 2K / 4K,分别 $0.025 / $0.03 / $0.05 每张。仅成功扣费。