Skip to content

异步生图

异步生图用于生产环境中的长耗时图片生成。客户端先提交任务,服务端返回任务 ID 并在后台执行生图,客户端再通过轮询或 SSE 获取结果。

同一个 /v1/images/tasks 会按 model 分发到不同上游协议。一个任务只接受一个模型、一个提示词和 n 张图片。

调用异步生图必须使用 生图 API Key。该 Key 需要绑定批量生图分组,请先按 创建 API Key 中的步骤创建。

当前支持:

模型批量生图分组模型平台上游协议
gpt-image-*image2OpenAIOpenAI Images API
gemini-2.5-flash-imageGeminiGemini native generateContent
gemini-3.1-flash-imageGeminiGemini native generateContent

Gemini 生图请使用官方模型名,不使用 banananano-banana 等别名。

提交任务

接口说明:

项目
MethodPOST
Path/v1/images/tasks
Content-Typeapplication/json
成功状态码202
认证Authorization: Bearer YOUR_API_KEY
Key 要求必须使用绑定批量生图分组的生图 API Key;请求模型必须存在于该批量生图分组中

请求参数:

参数类型必填说明
modelstring图片模型。默认 gpt-image-2image2 会被规范化为 gpt-image-2;Gemini 使用官方模型名。
promptstring生图提示词,不能为空。
sizestring输出尺寸。OpenAI 透传给 Images API;Gemini 会据此推导 imageConfig.imageSize 和常见宽高比。
ninteger生成图片数量,默认 1,必须大于 0,并受服务端单任务上限限制。
streamboolean必须为 false 或不传;异步任务不支持流式上游响应。
response_formatstring仅 OpenAI。未传时服务端会设置为 b64_json
qualitystringOpenAI 原生图片参数,按上游支持情况透传。
backgroundstringOpenAI 原生图片参数,按上游支持情况透传。
output_formatstringOpenAI 原生图片参数,按上游支持情况透传。
moderationstringOpenAI 原生图片参数,按上游支持情况透传。

Gemini 可选参数:

参数类型说明
image_size / imageSizestring生成尺寸档位,支持 1K2K4K,也可传常见尺寸字符串由服务端归一化。
aspect_ratio / aspectRatiostring支持 1:116:99:164:33:4
temperaturetop_p / topPtop_k / topKseedmax_output_tokens / maxOutputTokensnumber写入 Gemini generationConfig
generation_config / generationConfigobject透传并合并到 Gemini generationConfig。服务端会确保包含图片输出 modality。
image_config / imageConfigobject透传并合并到 generationConfig.imageConfig
system_instruction / systemInstructionstring/object可选 Gemini 系统指令。
safety_settings / safetySettingsarray可选 Gemini 安全设置。

不支持的请求格式:

格式说明
multipart/form-data异步任务当前只支持 JSON 生图请求。
图片编辑异步任务当前只对应 /v1/images/generations
多 prompt 批量一个任务只接受一个 prompt
普通 API Key普通分组 Key 不能提交异步生图任务。

OpenAI 请求示例:

bash
curl https://llmapi.site/v1/images/tasks \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "image2",
    "prompt": "a clean studio product photo of a matte black water bottle",
    "size": "1024x1024",
    "n": 2
  }'

响应示例:

json
{
  "id": "8b17fd33b0e947a08cb417e81e9ea9da",
  "task_id": "8b17fd33b0e947a08cb417e81e9ea9da",
  "object": "image.task",
  "status": "queued",
  "created_at": "2026-05-14T05:13:00Z",
  "model": "gpt-image-2",
  "n": 2,
  "size": "1024x1024",
  "estimated_cost": 0.12,
  "poll_url": "/v1/images/tasks/8b17fd33b0e947a08cb417e81e9ea9da",
  "event_url": "/v1/images/tasks/events"
}

Gemini 请求示例:

bash
curl https://llmapi.site/v1/images/tasks \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "gemini-2.5-flash-image",
    "prompt": "a clean studio product photo of a matte black water bottle",
    "image_size": "1K",
    "aspect_ratio": "1:1",
    "n": 1
  }'

查询任务

接口说明:

项目
MethodGET
Path/v1/images/tasks/{task_id}
认证Authorization: Bearer YOUR_API_KEY
权限只能查询当前 API Key 创建的任务

Path 参数:

参数类型必填说明
task_idstring提交任务返回的任务 ID。

请求示例:

bash
curl https://llmapi.site/v1/images/tasks/8b17fd33b0e947a08cb417e81e9ea9da \
  -H 'Authorization: Bearer YOUR_API_KEY'

状态说明:

状态说明
queued任务已入队,等待 worker 执行。
running任务正在执行。
succeeded任务成功完成,result 中包含图片结果。
failed任务失败,error 中包含失败原因;不扣费并释放预扣。
timeout任务超时;不扣费、释放预扣,服务端不会自动重试。
canceled任务已取消;不扣费并释放预扣。

成功任务响应示例:

json
{
  "id": "8b17fd33b0e947a08cb417e81e9ea9da",
  "task_id": "8b17fd33b0e947a08cb417e81e9ea9da",
  "object": "image.task",
  "status": "succeeded",
  "created_at": "2026-05-14T05:13:00Z",
  "started_at": "2026-05-14T05:13:02Z",
  "finished_at": "2026-05-14T05:13:42Z",
  "model": "gpt-image-2",
  "n": 2,
  "size": "1024x1024",
  "estimated_cost": 0.12,
  "actual_cost": 0.12,
  "result": {
    "data": [
      {
        "index": 0,
        "url": "https://oss.example.com/images/task-0.png?signature=...",
        "content_type": "image/png",
        "size_bytes": 1048576,
        "expires_at": "2026-05-21T05:13:42Z"
      }
    ]
  },
  "poll_url": "/v1/images/tasks/8b17fd33b0e947a08cb417e81e9ea9da",
  "event_url": "/v1/images/tasks/events"
}

Gemini 任务的响应结构相同,model 会保留请求中的官方 Gemini 模型名:

json
{
  "id": "8b17fd33b0e947a08cb417e81e9ea9da",
  "task_id": "8b17fd33b0e947a08cb417e81e9ea9da",
  "object": "image.task",
  "status": "queued",
  "created_at": "2026-05-14T05:13:00Z",
  "model": "gemini-2.5-flash-image",
  "n": 1,
  "size": "1K",
  "poll_url": "/v1/images/tasks/8b17fd33b0e947a08cb417e81e9ea9da",
  "event_url": "/v1/images/tasks/events"
}

失败任务响应示例:

json
{
  "id": "8b17fd33b0e947a08cb417e81e9ea9da",
  "task_id": "8b17fd33b0e947a08cb417e81e9ea9da",
  "object": "image.task",
  "status": "failed",
  "model": "gpt-image-2",
  "n": 1,
  "error": {
    "code": "upstream_error",
    "message": "image generation failed"
  }
}

取消任务

接口说明:

项目
MethodPOST
Path/v1/images/tasks/{task_id}/cancel
认证Authorization: Bearer YOUR_API_KEY
权限只能取消当前 API Key 创建的任务
可取消状态queued

请求示例:

bash
curl -X POST https://llmapi.site/v1/images/tasks/8b17fd33b0e947a08cb417e81e9ea9da/cancel \
  -H 'Authorization: Bearer YOUR_API_KEY'

说明:

  • 只有仍在排队的任务可以取消。
  • 已进入 running 的任务可能已经提交到上游,该接口不会中断上游执行。
  • 任务已经进入终态时会返回冲突错误。

计费行为

阶段行为
提交前校验余额、API Key 状态、分组权限和内容风控。
入队时按模型、尺寸、数量预估成本并进行余额预扣。
成功时按实际生成结果结算;实际费用低于预扣会退回差额,高于预扣会补扣差额,余额可能变为负数。
用量记录任务成功结算后写入用量记录;用量记录写入异常不改变任务的成功状态。
失败、超时、取消不扣费,并释放全部预扣额度。

失败和超时任务不会自动重试。调用方如需重试,应重新提交一个新任务。

异步任务当前不支持普通订阅计费分组。请使用绑定批量生图分组的生图 API Key;普通订阅分组调用会返回 IMAGE_TASK_SUBSCRIPTION_UNSUPPORTED