Nano Banana 图片编辑
本页由 ModelFold 文档站根据上游官方 OpenAPI 文档同步生成。接口路径、参数、示例与官方保持一致;品牌与 API 域名已替换为 ModelFold。
接口
POST /jobs/createTask
完整 URL: https://ai.modelfold.online/v1/jobs/createTask
鉴权:所有请求都需要
Authorization: Bearer <API_KEY>请求头。
基于 Google Nano Banana Edit 模型实现图像编辑
查询任务状态
提交任务后,可通过统一的查询端点查看任务进度并获取生成结果:
- 获取任务详情 — 了解如何查询任务状态并获取生成结果
TIP
生产环境中,建议使用 callBackUrl 参数接收生成完成的自动通知,而非轮询状态端点。
相关资源
请求参数
请求体 (application/json)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 用于生成任务的模型名称。必填字段。 - 该端点必须使用 google/nano-banana-edit 模型 默认值:"google/nano-banana-edit"。 可选值:google/nano-banana-edit。 示例:google/nano-banana-edit。 |
callBackUrl | string | 否 | 接收生成任务完成通知的回调 URL。可选配置,建议在生产环境中使用。 - 任务生成完成后,系统会向该 URL POST 任务状态与结果 - 回调内容包含生成的资源 URL 与任务相关信息 - 您的回调端点需要支持接收带 JSON 负载的 POST 请求 - 也可以选择调用任务详情端点,主动轮询任务状态 - 为确保回调安全性,请参阅 Webhook 校验指南 了解签名验证实现方法 示例: https://your-domain.com/api/callback。 |
input | object | 否 | 生成任务的输入参数 |
input.prompt | string | 是 | 用于图像编辑的文本提示词(最大长度:20000 字符) 示例:将这张照片转换成人物手办。在手办后方放置一个印有人物形象的包装盒,旁边摆放一台电脑,屏幕上显示 Blender 建模过程。在包装盒前方添加一个圆形塑料底座,让人物手办站立在底座上。尽可能将场景设置在室内环境中。。 |
input.image_urls | array<string> | 是 | 用于编辑的输入图像 URL 列表,最多支持 10 张图片。(为上传后的文件 URL,非文件内容;支持的类型:image/jpeg、image/png、image/webp;最大文件大小:10.0MB) |
input.output_format | string | 否 | 生成图像的输出格式 默认值:"png"。 可选值:png / jpeg。 示例:png。 |
input.aspect_ratio | string | 否 | 输出图片比例。请显式传入。 可选值:1:1 / 9:16 / 16:9 / 3:4 / 4:3 / 3:2 / 2:3 / 5:4 / 4:5 / 21:9 / auto。 示例:1:1。 |
input.image_size | string | 否 | 生成图像的尺寸比例(该参数已被aspect_ratio代替,请使用最新的aspect_ratio参数) 默认值:"1:1"。 可选值:1:1 / 9:16 / 16:9 / 3:4 / 4:3 / 3:2 / 2:3 / 5:4 / 4:5 / 21:9 / auto。 示例:1:1。 |
请求示例
bash
curl -X POST "https://ai.modelfold.online/v1/jobs/createTask" \
-H "Authorization: Bearer $MODELFOLD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/nano-banana-edit",
"callBackUrl": "https://your-domain.com/api/callback",
"input": {
"prompt": "将这张照片转换成人物手办。在手办后方放置一个印有人物形象的包装盒,旁边摆放一台电脑,屏幕上显示 Blender 建模过程。在包装盒前方添加一个圆形塑料底座,让人物手办站立在底座上。尽可能将场景设置在室内环境中。",
"image_urls": [
"https://file.aiquickdraw.com/custom-page/akr/section-images/1756223420389w8xa2jfe.png"
],
"output_format": "png",
"aspect_ratio": "1:1"
}
}'json
{
"model": "google/nano-banana-edit",
"callBackUrl": "https://your-domain.com/api/callback",
"input": {
"prompt": "将这张照片转换成人物手办。在手办后方放置一个印有人物形象的包装盒,旁边摆放一台电脑,屏幕上显示 Blender 建模过程。在包装盒前方添加一个圆形塑料底座,让人物手办站立在底座上。尽可能将场景设置在室内环境中。",
"image_urls": [
"https://file.aiquickdraw.com/custom-page/akr/section-images/1756223420389w8xa2jfe.png"
],
"output_format": "png",
"aspect_ratio": "1:1"
}
}响应
200 — 请求成功
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
code | integer | 是 | 请求状态码。请求失败时 HTTP 状态仍为 200,请始终以本字段判断:200 表示成功,其他值均表示失败,原因见 msg。常见值:401 API key 无效或缺失;402 积分不足;429 超出频率限制;422 或 500 请求未能处理(请先查看 msg、检查参数,再决定是否重试)。 可选值:200 / 401 / 402 / 404 / 422 / 429 / 433 / 455 / 500 / 501 / 505。 示例:200。 |
msg | string | 是 | 响应消息,失败时的错误描述 |
data | object | 是 | — |
data.taskId | string | 是 | 可以使用任务 ID 与“获取任务详细信息”端点一起查询任务状态。 |
json
{
"code": 200,
"msg": "success",
"data": {
"taskId": "task_google_1765178615729"
}
}回调
onImageGenerated
回调地址:{$request.body#/callBackUrl}(即请求体里的 callBackUrl)。
任务成功或失败时发送回调。
回调体参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
code | integer | 否 | 200:成功;501:失败,原因见 data.failCode 与 data.failMsg。 可选值:200 / 501。 示例:200。 |
msg | string | 否 | 状态消息 示例:Playground task completed successfully.。 |
data | object | 否 | — |
data.completeTime | integer | 否 | 任务完成时间,Unix 毫秒时间戳 示例:1786428283000。 |
data.costTime | integer | 否 | 处理耗时(秒),成功和失败回调都会返回。 示例:61。 |
data.createTime | integer | 否 | 任务创建时间,Unix 毫秒时间戳 示例:1786428202000。 |
data.creditsConsumed | number | 否 | 本任务消耗的积分;失败任务为 0。 示例:3。 |
data.model | string | 否 | 图片编辑使用的模型 示例:google/nano-banana-edit。 |
data.param | string | 否 | 创建任务时提交的参数,JSON 字符串格式 示例:{"input":"{\"output_format\":\"png\",\"aspect_ratio\":\"1:1\",\"image_urls\":[\"https://file.aiquickdraw.com/custom-page/akr/section-images/1756223420389w8xa2jfe.png\"],\"prompt\":\"将这张照片转换成人物手办。在手办后方放置一个印有人物形象的包装盒,旁边摆放一台电脑,屏幕上显示 Blender 建模过程。在包装盒前方添加一个圆形塑料底座,让人物手办站立在底座上。尽可能将场景设置在室内环境中。\"}","callBackUrl":"https://your-domain.com/api/callback","model":"google/nano-banana-edit"}。 |
data.resultJson | string | 否 | 图片生成结果,JSON 字符串格式。resultUrls 为生成图片的 URL 列表。仅在 state 为 success 时出现。 示例:{"resultUrls":["https://tempfile.aiquickdraw.com/p/bf5a824ce79d693a2a876fb2a8ff9851_1_1786428282_8210.png"]}。 |
data.state | string | 否 | 任务状态 可选值:success / fail。 示例:success。 |
data.taskId | string | 否 | 任务 ID 示例:bf5a824ce79d693a2a876fb2a8ff9851。 |
data.updateTime | integer | 否 | 完成时间请以 completeTime 为准;updateTime 可能与 createTime 相同。 示例:1786428283000。 |
data.failCode | string | 否 | 失败码,数字字符串,如 "400"、"500"。仅在 state 为 fail 时出现。 示例:500。 |
data.failMsg | string | 否 | 失败原因,仅在 state 为 fail 时出现。 示例:<error detail>。 |
成功
json
{
"code": 200,
"msg": "Playground task completed successfully.",
"data": {
"taskId": "bf5a824ce79d693a2a876fb2a8ff9851",
"model": "google/nano-banana-edit",
"state": "success",
"param": "{\"input\":\"{\\\"output_format\\\":\\\"png\\\",\\\"aspect_ratio\\\":\\\"1:1\\\",\\\"image_urls\\\":[\\\"https://file.aiquickdraw.com/custom-page/akr/section-images/1756223420389w8xa2jfe.png\\\"],\\\"prompt\\\":\\\"将这张照片转换成人物手办。在手办后方放置一个印有人物形象的包装盒,旁边摆放一台电脑,屏幕上显示 Blender 建模过程。在包装盒前方添加一个圆形塑料底座,让人物手办站立在底座上。尽可能将场景设置在室内环境中。\\\"}\",\"callBackUrl\":\"https://your-domain.com/api/callback\",\"model\":\"google/nano-banana-edit\"}",
"resultJson": "{\"resultUrls\":[\"https://tempfile.aiquickdraw.com/p/bf5a824ce79d693a2a876fb2a8ff9851_1_1786428282_8210.png\"]}",
"completeTime": 1786428283000,
"createTime": 1786428202000,
"costTime": 61,
"creditsConsumed": 3,
"updateTime": 1786428283000
}
}失败
json
{
"code": 501,
"msg": "Playground task failed.",
"data": {
"taskId": "bf5a824ce79d693a2a876fb2a8ff9851",
"model": "google/nano-banana-edit",
"state": "fail",
"param": "{\"input\":\"{\\\"output_format\\\":\\\"png\\\",\\\"aspect_ratio\\\":\\\"1:1\\\",\\\"image_urls\\\":[\\\"https://file.aiquickdraw.com/custom-page/akr/section-images/1756223420389w8xa2jfe.png\\\"],\\\"prompt\\\":\\\"将这张照片转换成人物手办。在手办后方放置一个印有人物形象的包装盒,旁边摆放一台电脑,屏幕上显示 Blender 建模过程。在包装盒前方添加一个圆形塑料底座,让人物手办站立在底座上。尽可能将场景设置在室内环境中。\\\"}\",\"callBackUrl\":\"https://your-domain.com/api/callback\",\"model\":\"google/nano-banana-edit\"}",
"failCode": "500",
"failMsg": "<error detail>",
"completeTime": 1786428283000,
"createTime": 1786428202000,
"costTime": 61,
"creditsConsumed": 0,
"updateTime": 1786428283000
}
}