AI GPT ImageAI GPT Image

快速开始

本页展示最小接入流程:创建生成任务,然后查询任务结果。

1. 创建 API Key

打开 API Keys 页面,然后点击 Create API Key

API Key 只能保存在你的服务端。不要放在浏览器代码、移动端 App 或公开仓库中。

2. 创建任务

curl -X POST "https://aigptimage.com/api/v1/jobs/createTask" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -H "X-Request-ID: xxxxxxxxxxxx" \
  -d '{
    "model": "gpt-image-2-text-to-image",
    "input": {
      "prompt": "A cinematic portrait of a robot painter"
    }
  }'

成功响应:

{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "task_xxx"
  }
}

X-Request-IDcreateTask 不是必填。不传这个 header,请求也可以正常成功。

但在生产环境里,仍然强烈建议你传这个值。它必须由你自己的服务端生成,常见方式包括:

  • 例如 xxxxxxxxxxxx
  • 你自己的业务请求 ID
  • 你内部的任务 ID

它的作用是:

  • 当你的服务端重试同一个逻辑请求时
  • 当客户端因为超时重试时
  • 当 worker 重试失败任务时

如果继续使用同一个 X-Request-ID,API 可以直接返回已有任务,避免重复创建任务和重复扣费。

最佳实践:

  • 同一个逻辑请求:复用同一个 X-Request-ID
  • 新的逻辑请求:生成新的 X-Request-ID

3. 查询任务

curl "https://aigptimage.com/api/v1/jobs/recordInfo?taskId=task_xxx" \
  -H "Authorization: Bearer sk-your-api-key"

任务仍在处理中:

{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "task_xxx",
    "model": "gpt-image-2-text-to-image",
    "state": "waiting",
    "param": "{\"model\":\"gpt-image-2-text-to-image\",\"input\":{\"prompt\":\"A cinematic portrait of a robot painter\"}}",
    "resultJson": null,
    "failCode": null,
    "failMsg": null,
    "costTime": null,
    "completeTime": null,
    "createTime": 1777459967759
  }
}

任务成功:

{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "task_xxx",
    "model": "gpt-image-2-text-to-image",
    "state": "success",
    "param": "{\"model\":\"gpt-image-2-text-to-image\",\"input\":{\"prompt\":\"A cinematic portrait of a robot painter\"}}",
    "resultJson": "{\"resultUrls\":[\"https://cdn.example.com/result.png\"]}",
    "failCode": null,
    "failMsg": null,
    "costTime": 32241,
    "completeTime": 1777460000000,
    "createTime": 1777459967759
  }
}

任务失败:

{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "5f6ff8ea-ae97-4bb8-af5e-752ef4e96c0d",
    "model": "gpt-image-2-text-to-image",
    "state": "fail",
    "param": "{\"model\":\"gpt-image-2-text-to-image\",\"input\":{\"prompt\":\"360 equirectangular panorama, first-person view standing on stage at a massive concert with Michael Jackson performing, huge crowd cheering with hands raised, bright stage lights, smoke, dramatic spotlight, ultra realistic, cinematic concert atmosphere, immersive perspective, high detail, 2:1 aspect ratio, 4096x2048, no distortion\"}}",
    "resultJson": null,
    "failCode": "400",
    "failMsg": "Sorry, but the image we created may violate OpenAI's content policies.",
    "costTime": null,
    "completeTime": null,
    "createTime": 1777475010433
  }
}

任务状态

State含义
waiting排队中或处理中
success任务成功
fail任务失败或取消

即使任务失败,recordInfo 这个 HTTP 请求本身也仍然可能返回 200。最终结果一定要以 data.state 为准。

积分

API 调用和网页端共用同一个积分余额和模型计费规则。任务失败后,会使用现有的积分返还逻辑。