APIMaster.ai

GPT-Image-2 API — 文生图与图像编辑指南

通过APIMaster.ai使用GPT-Image-2 API实现文生图和图生图。支持同步与异步两种模式。使用您的API key以折扣价访问gpt-image-2。

GPT-Image-2 图像生成

  • 模型名gpt-image-2(固定)
  • 接口POST https://apimaster.ai/v1/images/generations(与 OpenAI 官方 相同)
  • 模式:支持 同步兼容异步提交 两种调用方式(见下)

不要/v1/chat/completions 调用本模型;若误用会返回 400 并提示改用 Images API。

调用模式

模式 端点 适用场景
同步兼容(推荐) POST https://apimaster.ai/v1/images/generations 与 OpenAI SDK 一致,一次请求直接返回 { "data": [{ "url" }] }(平台在服务端轮询等待)
异步提交 POST https://apimaster.ai/v1/images/generations/async 长任务、批量流水线;立即返回 task_id,客户端自行轮询

两种模式请求体相同(modelpromptsizeresolution 等)。

快速开始(同步,OpenAI 兼容)

curl -s "https://apimaster.ai/v1/images/generations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "一只橘猫坐在窗台上看夕阳,水彩画风格"
  }'

成功响应(OpenAI 格式)

{
  "created": 1717500000,
  "data": [
    { "url": "https://apimaster.ai/imgs/....png" }
  ]
}

OpenAI Python SDK 示例:

from openai import OpenAI
client = OpenAI(base_url="https://apimaster.ai/v1", api_key="YOUR_API_KEY")
resp = client.images.generate(model="gpt-image-2", prompt="a corgi on the moon")
print(resp.data[0].url)

客户端超时建议

档位 建议 HTTP 读超时
1k 默认 ≥ 180 秒
2k / medium ≥ 300 秒
4k / high ≥ 600 秒

认证

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

请求参数

字段 类型 必填 说明
model string 固定 gpt-image-2
prompt string 画面描述(中英文);会经平台安全审核
n integer 生成张数;默认 1,使用高级参数时支持 14
size string 比例,默认 1:1;见下表
resolution string 1k / 2k / 4k,默认 1k
image_urls array 参考图;传入后为图生图
official_fallback boolean 标准请求失败重试时是否允许升级到官方能力渠道,默认 false

高级参数(自动路由官方渠道)

对外统一使用 model: "gpt-image-2"。当请求包含下列任一字段时,平台会自动路由到支持完整 OpenAI 参数的上游渠道:

字段 类型 默认 说明
quality string auto low / medium / high;4K + high 可能 >120s
background string auto opaque / transparent(部分上游不支持透明,会降级为 auto
moderation string auto low 为更宽松审核
output_format string png jpeg / webp
output_compression integer 0–100,仅 jpeg/webp
n integer 1 1–4 张(与上表 n 共用)
mask_url string 遮罩图 URL,局部重绘;须与首张参考图同尺寸,需带 Alpha

高级参数示例(局部重绘)

{
  "model": "gpt-image-2",
  "prompt": "把背景换成沙漠日落",
  "size": "1:1",
  "quality": "medium",
  "image_urls": ["https://your-cdn.com/photo.png"],
  "mask_url": "https://your-cdn.com/mask.png"
}

size 支持的比例

auto1:13:22:34:33:45:44:516:99:162:11:23:11:321:99:21。也可直接传像素,如 1881x836

resolution 与像素(节选)

size 1k 2k 4k
1:1 1024×1024 2048×2048 2880×2880
16:9 1536×864 2048×1152 3840×2160
9:16 864×1536 1152×2048 2160×3840

4K 支持上表全部 15 种比例。

image_urls(图生图)

  • 最多 16 张,超出会报错
  • 支持公网 URLbase64 data URIdata:image/png;base64,...)混填
  • 不传 size 时输出分辨率可跟随输入图;传 size 则按指定比例出图

请求示例

文生图(16:9 + 2K)

curl -s "https://apimaster.ai/v1/images/generations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "a corgi astronaut on the moon, cinematic, 8k",
    "size": "16:9",
    "resolution": "2k"
  }'

图生图(URL + base64 混填)

{
  "model": "gpt-image-2",
  "prompt": "把这两张照片融合成一张海报",
  "size": "4:3",
  "resolution": "2k",
  "image_urls": [
    "https://example.com/photo-a.jpg",
    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
  ]
}

错误响应

HTTP 含义
400 参数错误,或误用 chat 端点
401 API Key 无效
402 余额不足
408 生成超时(可降低 resolution / quality 后重试)
429 限流
500 / 503 服务或上游异常

超时示例(OpenAI 风格):

{
  "error": {
    "message": "Image generation timed out after 600 seconds. Retry with lower resolution or quality.",
    "type": "server_error",
    "code": "image_generation_timeout"
  }
}

异步模式:提交任务

使用 POST https://apimaster.ai/v1/images/generations/async,请求体与同步模式相同。响应立即返回 task_id,不会阻塞等待出图:

curl -s "https://apimaster.ai/v1/images/generations/async" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "a corgi astronaut on the moon, cinematic",
    "size": "16:9",
    "resolution": "2k"
  }'

提交响应

{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KPQ7J7DWB7QZ3WCEK3YVPBRA"
    }
  ]
}

异步模式:轮询任务结果

拿到 task_id 后,调用任务查询接口:

curl -s "https://apimaster.ai/v1/tasks/TASK_ID?model=gpt-image-2" \
  -H "Authorization: Bearer YOUR_API_KEY"
  • ?model=gpt-image-2 用于路由到正确渠道
  • 完成时取图:data.result.images[0].url[0]
  • 提交响应/images/generations/async)里的 statussubmitted轮询响应GET /tasks/...)里进行中常见 pending,也可能出现 processing / in_progress,终态为 completedfailed
阶段 典型 status 含义
提交成功 submitted 仅出现在 async 提交响应的 data[]
排队 / 生成中 pendingprocessingin_progress 轮询时继续等待,不要pending 误判为失败
成功 completed 可取 data.result.images[0].url[0]
失败 failederrorcancelled 查看响应中的错误信息

轮询建议

  • 首次查询延迟 10–20 秒,之后每 3–5 秒 查一次
  • 2k / 4k 任务可能超过 2 分钟,客户端 HTTP 读超时可设 ≥ 30 秒(单次查询),总等待时间由你的轮询逻辑控制
  • 若同步模式返回 408 超时,可改用异步模式重试同一请求

Python 异步示例:

import time
import requests

API = "https://apimaster.ai/v1"
headers = {"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"}
body = {"model": "gpt-image-2", "prompt": "a corgi on the moon", "size": "16:9", "resolution": "2k"}

task_id = requests.post(f"{API}/images/generations/async", headers=headers, json=body, timeout=60).json()["data"][0]["task_id"]
time.sleep(15)
while True:
    r = requests.get(f"{API}/tasks/{task_id}", headers=headers, params={"model": "gpt-image-2"}, timeout=30).json()
    status = r.get("data", {}).get("status")
    if status == "completed":
        print(r["data"]["result"]["images"][0]["url"][0])
        break
    if status in ("failed", "error", "cancelled"):
        raise RuntimeError(r)
    # pending / processing / in_progress → 继续轮询
    time.sleep(4)

注意事项

  1. 调用端点:文生图用 POST /images/generations(同步)或 POST /images/generations/async(异步);勿用 Chat Completions。
  2. 审核prompt 违规会直接拒绝,通常不计费。
  3. 比例:推荐只用 size 字段指定比例,避免在 prompt 里重复写比例造成冲突。
  4. 计费:按分辨率档位(1K / 2K / 4K);失败与审核未通过 generally 不扣费(以控制台为准)。
  5. 链接时效:返回 URL 建议在有效期内下载或转存自有存储。
  6. 智能路由:含 qualitymask_urln>1 等高级参数时自动走官方能力渠道;纯文生图 / 标准图生图优先性价比更高的标准渠道。