跳到主要内容
AI
MarkdownLLMs.txt

通用异步图像生成

更新时间:2026-04-29

本文说明如何使用图片异步任务接口调用 NanoBanana 系列模型和 gpt-image-2,包括请求方式、参数、响应、计费规则和两类模型的差异。

1. 接口概览

1.1 提交异步图片任务

POST /v1/images/tasks

支持:

  • 文生图:task_type = text2image
  • 图生图:task_type = image2image

1.2 查询异步图片任务

GET /v1/images/tasks/{task_id}

1.3 认证方式

Authorization: Bearer sk-***
Content-Type: application/json

2. 可用模型

2.1 NanoBanana 系列

上游 Nano 系列模型包括:

模型名说明
NanoBananaNanoBanana 基础模型
NanoBanana2-0.5KNanoBanana2,0.5K 档
NanoBanana2-1KNanoBanana2,1K 档
NanoBanana2-2KNanoBanana2,2K 档
NanoBanana2-4KNanoBanana2,4K 档
NanoBananaPro-1KNanoBanana Pro,1K 档
NanoBananaPro-2KNanoBanana Pro,2K 档
NanoBananaPro-4KNanoBanana Pro,4K 档
NanoBananaPro-8KNanoBanana Pro,8K 档

注意:最终用户是否能调用某个模型,取决于平台后台是否已在通道和计费中启用该模型。

2.2 gpt-image-2

模型名说明
gpt-image-2size + quality + n 参数矩阵计费的图片模型

3. 通用请求参数

这些字段适用于 NanoBanana 系列和 gpt-image-2

参数类型必填说明
modelstring模型名,例如 NanoBanana2-0.5Kgpt-image-2
promptstring图片生成或编辑提示词
task_typestringtext2imageimage2image。不传时,后端会根据是否存在图片输入自动推断
imagestring / file图生图单图必填单张参考图。JSON 中传图片 URL;
imagesstring[]图生图多图必填多张参考图 URL,推荐多图统一使用这个字段
sizestring视模型而定输出尺寸。gpt-image-2 必填,支持值见 gpt-image-2 size 可选值;NanoBanana 系列优先使用 aspect_ratio 控制比例
aspect_ratiostring部分模型可选NanoBananaNanoBananaPro-*NanoBanana2-* 支持,详见 NanoBanana 系列能力差异gpt-image-2 不支持
qualitystring输出质量。gpt-image-2 支持值见 gpt-image-2 quality 可选值;NanoBanana 系列通常由模型档位决定
ninteger生成数量。默认 1gpt-image-2 允许 1-8;NanoBanana 不支持
output_formatstring可选控制输出图片类型。Nano 支持值见 NanoBanana 系列能力差异gpt-image-2 支持值见 gpt-image-2 output_format 可选值

3.1 参考图传参口径

对外统一只推荐两个字段:

单图:

{
"image": "https://example.com/input.png"
}

多图:

{
"images": [
"https://example.com/a.png",
"https://example.com/b.png"
]
}

不要混用多个参考图字段。兼容旧字段仍会被解析并按顺序合并,混用可能导致重复参考图。新接入只使用 imageimages

任务类型推断规则:

  • 没有图片输入:按 text2image 处理
  • image / images / multipart 图片文件:按 image2image 处理
  • 显式传了 task_type 时,以显式值为准

4. NanoBanana 系列参数

NanoBanana 系列使用同一套异步图片任务请求结构。

4.1 文生图 JSON 请求

{
"model": "NanoBanana2-0.5K",
"task_type": "text2image",
"prompt": "A small red cube on a clean white desk, minimal product photo, soft daylight",
"aspect_ratio": "1:1",
"output_format": "png",
"n": 1,
"response_format": "url"
}

4.2 图生图 JSON 请求

{
"model": "NanoBanana2-0.5K",
"task_type": "image2image",
"prompt": "Turn the reference image into a clean product render",
"image": "https://example.com/input.png",
"aspect_ratio": "16:9",
"output_format": "jpeg",
"n": 1,
"response_format": "url"
}

4.3 参数约束

参数NanoBanana 系列规则
model传具体 Nano 模型名
prompt必填
task_typetext2image / image2image,可省略并由平台推断
aspect_ratio推荐使用;控制输出比例。常见值包括 1:116:99:164:33:4,实际支持范围以上游模型为准
output_format推荐使用;控制输出图片类型。NanoBanana 支持 png / jpeg / webpNanoBananaPro-*NanoBanana2-* 支持 png / jpeg
size不作为 NanoBanana 系列的主要控制参数;如传入,会按上游兼容能力处理
quality不作为 NanoBanana 系列的平台计费维度;通常由模型档位决定
n可选;默认 1。计费会按生成数量乘算,实际最大值以上游限制为准
response_format推荐 url
图片输入字段单图用 image,多图用 images;multipart 上传文件时使用 image
NanoBanana capability options

4.4 NanoBanana 系列能力差异

模型aspect_ratiooutput_format
NanoBanana支持支持 png / jpeg / webp
NanoBananaPro-*支持支持 png / jpeg
NanoBanana2-*支持支持 png / jpeg

4.5 计费

NanoBanana 系列按模型固定单价计费,再乘以生成数量 n 或实际上游返回的结果数量。

aspect_ratiooutput_format 控制生成效果,不参与当前平台计费;不同 Nano 模型档位的基础单价由后台模型价格配置决定。

当前本地测试实例已启用 NanoBanana2-0.5K,具体消耗以平台后台价格配置和消费日志为准。

如果后台启用其他 NanoBanana 模型,需要分别配置对应模型价格。

5. gpt-image-2 参数

gpt-image-2 使用参数矩阵计费。size 是必填参数;qualityn 有默认值;output_format 可用于控制输出图片类型;不支持 aspect_ratio

5.1 文生图 JSON 请求

{
"model": "gpt-image-2",
"task_type": "text2image",
"prompt": "A small blue glass sphere on a clean white desk, minimal product photo, soft daylight",
"size": "1024x768",
"quality": "low",
"output_format": "webp",
"n": 1,
"response_format": "url"
}

5.2 图生图 JSON 请求

{
"model": "gpt-image-2",
"task_type": "image2image",
"prompt": "Keep the product shape, change the background to a bright studio scene",
"image": "https://example.com/input.png",
"size": "1024x1024",
"quality": "medium",
"output_format": "png",
"n": 1,
"response_format": "url"
}

5.3 图生图 multipart 请求

curl -X POST "{BASE_URL}/v1/images/tasks" \
-H "Authorization: Bearer sk-***" \
-F "model=gpt-image-2" \
-F "task_type=image2image" \
-F "prompt=Keep the subject, make it a clean studio product photo" \
-F "size=1024x1024" \
-F "quality=medium" \
-F "output_format=png" \
-F "n=1" \
-F "response_format=url" \
-F "image=@/path/to/input.png"

5.4 参数约束

参数规则
size必填,必须是 gpt-image-2 size 可选值 中的值
aspect_ratio不支持;请使用 size 控制输出尺寸和比例
quality可选,默认 medium,支持值见 gpt-image-2 quality 可选值
output_format可选,支持值见 gpt-image-2 output_format 可选值
n可选,默认 1,范围 1-8
response_format推荐 url
task_typetext2image / image2image,可省略并由平台推断
GPT Image 2 quality options

quality 支持值:

输入值归一化后
lowlow
mediummedium
highhigh
GPT Image 2 output format options

output_format 支持值:

输入值
png
jpeg
webp
GPT Image 2 size options

5.5 gpt-image-2 size 可选值

gpt-image-2 通过 size 控制输出尺寸和比例,不支持单独传 aspect_ratioquality 可传 lowmediumhighn 会按生成数量计入最终消耗。

Size比例方向备注档位
1024x7684:3横向1K
768x10243:4竖向1K
1344x10244:3横向1K
1024x13443:4竖向1K
1280x10245:4横向1K
1024x12804:5竖向1K
1360x76816:9横向1K
768x13609:16竖向1K
1536x86416:9横向1K
864x15369:16竖向1K
1024x10241:1正方形1K
1536x10243:2横向1K
1024x15362:3竖向1K
2048x10242:1横向1K
1024x20481:2竖向1K
2016x86421:9横向1K
864x20169:21竖向1K
1920x108016:9横向2K
1080x19209:16竖向2K
1536x15361:1正方形2K
2048x13603:2 近似横向2K
1360x20482:3 近似竖向2K
2048x15364:3横向2K
1536x20483:4竖向2K
2160x14403:2横向2K
1440x21602:3竖向2K
2048x115216:9横向2K
1152x20489:16竖向2K
2688x13442:1横向2K
1344x26881:2竖向2K
2688x115221:9横向2K
1152x26889:21竖向2K
2560x144016:9横向2K
1440x25609:16竖向2K
2048x20481:1正方形4K
2560x20485:4横向2K
2048x25604:5竖向2K
2880x28801:1正方形4K
3264x24484:3横向4K
2448x32643:4竖向4K
3504x23363:2横向4K
2336x35042:3竖向4K
3840x19202:1横向4K
1920x38401:2竖向4K
3840x164821:9 近似横向4K
1648x38409:21 近似竖向4K
3840x216016:9横向4K
2160x38409:16竖向4K

6. 提交响应

提交成功后返回任务对象。

{
"task_id": "task_xxx",
"status": "succeeded",
"progress": "100%",
"result_url": "https://example.com/result.png",
"metadata": {
"task_type": "text2image",
"result_count": 1
},
"error": null
}

字段说明:

字段说明
task_id平台任务 ID,用于后续查询
statusqueuedprocessingsucceededfailed
progress任务进度,例如 0%50%100%
result_url第一张结果图 URL
metadata.task_type任务类型
metadata.result_count结果数量
metadata.result_urls多结果时返回 URL 数组
error失败时包含错误信息,成功时为 null

7. 查询响应

curl "{BASE_URL}/v1/images/tasks/task_xxx" \
-H "Authorization: Bearer sk-***"

成功响应:

{
"code": "success",
"message": "",
"data": {
"task_id": "task_xxx",
"status": "succeeded",
"progress": "100%",
"result_url": "https://example.com/result.png",
"metadata": {
"task_type": "text2image",
"result_count": 1
},
"error": null
}
}

建议客户端轮询间隔为 2-5 秒。任务进入 succeededfailed 后可停止轮询。

8. 完整 curl 示例

8.1 NanoBanana 文生图

curl -X POST "{BASE_URL}/v1/images/tasks" \
-H "Authorization: Bearer sk-***" \
-H "Content-Type: application/json" \
-d '{
"model": "NanoBanana2-0.5K",
"task_type": "text2image",
"prompt": "A small red cube on a clean white desk, minimal product photo, soft daylight",
"aspect_ratio": "1:1",
"output_format": "png",
"n": 1,
"response_format": "url"
}'

8.2 gpt-image-2 文生图

curl -X POST "{BASE_URL}/v1/images/tasks" \
-H "Authorization: Bearer sk-***" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"task_type": "text2image",
"prompt": "A small blue glass sphere on a clean white desk, minimal product photo, soft daylight",
"size": "1024x768",
"quality": "low",
"output_format": "webp",
"n": 1,
"response_format": "url"
}'

8.3 查询任务

curl "{BASE_URL}/v1/images/tasks/task_xxx" \
-H "Authorization: Bearer sk-***"

9. NanoBanana 与 gpt-image-2 差异

对比项NanoBanana 系列gpt-image-2
模型列表多个模型名区分基础版、Pro 和分辨率档位单一模型名
当前本地已启用NanoBanana2-0.5Kgpt-image-2 已实测可用
计费方式模型固定单价 * 生成数量size + quality 参数计费 * n
比例控制支持 aspect_ratio,例如 1:1,2:3,3:2,3:4,4:3,4:5,5:4,9:16,16:9,21:9不支持 aspect_ratio;使用 size,例如 1024x7681024x1024
输出格式控制NanoBanana 支持 png / jpeg / webpNanoBananaPro-*NanoBanana2-* 支持 png / jpeg支持 png / jpeg / webp
size不作为主要控制参数;模型档位和 aspect_ratio 更关键必填,且必须命中 gpt-image-2 size 可选值
quality不作为平台计费维度;通常由模型档位决定可选,默认 medium,参与计费
n可选,默认 1,最大值以上游限制为准可选,默认 1,范围 1-8
response_format推荐 url推荐 url
图生图单图用 image,多图用 images,传参考图即走图生图/编辑路径单图用 image,多图用 images,传参考图即走图生图/编辑路径

10. 最小接入流程

  1. 使用 POST /v1/images/tasks 提交任务。
  2. 保存返回的 task_id
  3. 使用 GET /v1/images/tasks/{task_id} 轮询任务。
  4. status = succeeded 时读取 result_url