跳转到内容

GPT-Image-2 接入说明

本文介绍如何通过 OpenAI 兼容接口调用 gpt-image-2 生成图片,包括同步和异步两种方式。

同步调用需先确认 Key 已开放 gpt-image-2。异步任务接口及下文存储时效仅适用于已开通对应能力的渠道,请在使用前向客服确认;如异步路径返回 404,请使用同步接口。

准备工作

从控制台获取 API Base URL 和 API Key。下面的示例假设 Base URL 不包含末尾的 /v1

bash
export API_BASE="https://api.token2.cc"
export API_KEY="<你的_API_Key>"

所有请求都使用 Bearer Token 认证:

text
Authorization: Bearer <你的_API_Key>

如果控制台提供的 Base URL 已经以 /v1 结尾,请不要在请求地址中重复添加 /v1

同步生成

同步接口会保持连接,直到图片生成完成或请求失败。适合调用端能够等待较长响应时间的场景。

接口

text
POST /v1/images/generations

示例请求

bash
curl "$API_BASE/v1/images/generations" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "一只戴着红色围巾的橘猫,坐在窗边看雪",
    "n": 1
  }'

成功响应示例

json
{
  "created": 1780000000,
  "data": [
    {
      "url": "https://<临时图片地址>"
    }
  ]
}

data[0].url 读取并下载图片。同步生成可能耗时较长;如果客户端、CDN 或反向代理容易发生长连接超时,建议改用异步方式。

异步生成

异步接口会先创建任务并立即返回任务 ID,图片在后台继续生成。调用端随后轮询任务状态,不需要一直保持原请求连接。

第一步:提交任务

text
POST /v1/images/generations/async
bash
curl "$API_BASE/v1/images/generations/async" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "一只戴着红色围巾的橘猫,坐在窗边看雪",
    "n": 1
  }'

提交成功时返回 HTTP 202 Accepted

json
{
  "id": "imgtask_example",
  "task_id": "imgtask_example",
  "object": "image.generation.task",
  "status": "processing",
  "poll_url": "/v1/images/tasks/imgtask_example",
  "created_at": 1780000000,
  "expires_at": 1780086400
}

HTTP 202 只表示任务已被接受,不代表图片已经生成完成。请保存 task_id,并使用提交任务时的同一把 API Key 查询。

第二步:轮询任务状态

text
GET /v1/images/tasks/{task_id}
bash
curl "$API_BASE/v1/images/tasks/imgtask_example" \
  -H "Authorization: Bearer $API_KEY"

建议每 3~5 秒查询一次。processing 表示仍在生成;遇到 completedfailed 后应停止轮询。查询任务状态不会重复计费。

完成响应示例

json
{
  "id": "imgtask_example",
  "task_id": "imgtask_example",
  "object": "image.generation.task",
  "status": "completed",
  "http_status": 200,
  "result": {
    "data": [
      {
        "url": "https://<24小时有效的签名图片地址>"
      }
    ]
  },
  "created_at": 1780000000,
  "completed_at": 1780000060,
  "expires_at": 1780086460
}

任务完成后,从 result.data[0].url 读取图片地址并立即下载。

异步结果的有效期

  • 任务记录保留 24 小时:任务状态自最后一次更新起保留 24 小时,过期后可能无法继续查询。
  • 图片 URL 有效 24 小时:完成响应中的签名 URL 自生成后有效 24 小时;重复轮询不会刷新或延长该 URL。
  • 图片在 7 天后删除:平台存储中的异步结果图片会在生成 7 天后自动删除。
  • 请及时转存:应在 URL 有效期内下载图片,并保存到自己的对象存储或文件系统;不要把临时 URL 当作永久地址。

接入建议

  • 请求可能已经被服务端接受时,不要盲目重复提交 POST,以免创建重复任务和重复计费。
  • 异步轮询必须使用提交任务时的同一把 API Key。
  • 生产环境建议为整个任务设置合理的总等待时间,并正确处理 failed 状态和 error 字段。
  • 下载成功后,应由业务系统保存自己的长期访问地址。