
google/ nano-banana-2.1/ image-to-image
图生图174 / 50,000
更多设置(6 项)
0 / 50,000
生成结果演示示例登录后试用
按 token 计费 · 默认设置约 $0.042 / 张 · 每次冻结 $0.041572

示例 · 由以下输入生成
Replace the iced oolong milk tea with a hot matcha latte in a white ceramic cup, change the headline to "MATCHA MOMENTS", and keep the layout, caption and lighting unchanged.
价格
- 文字输入 /M
- $1.764
- 图片输入 /M
- $1.764
- 文字输出 /M
- $8.823
- 图片输出 /M
- $35.294
默认设置(1K、1 张)约 $0.042 / 张;质量、尺寸、张数越高,用量越多。
每次请求会先临时冻结 $0.041572,按实际用量扣费,通常在一分钟内完成:多余部分退回,超出部分从余额扣除,余额可能因此变为负数;余额为负时新请求暂停,充值后先抵扣欠款。
生成失败不收费。
API 接入
用这个模型 ID 提交生成请求。
POST
/v1/model-tasksgoogle/nano-banana-2.1/image-to-image请求体
{
"model": "google/nano-banana-2.1/image-to-image",
"input": {
"prompt": "Replace the iced oolong milk tea with a hot matcha latte in a white ceramic cup, change the headline to \"MATCHA MOMENTS\", and keep the layout, caption and lighting unchanged.",
"aspect_ratio": "auto",
"enable_web_search": false,
"num_images": 1,
"output_format": "png",
"resolution": "1K",
"system_prompt": "",
"thinking_level": "medium",
"image_urls": [
"https://pub-a7287c8d5de944d984e22a5bd3ab9bbe.r2.dev/uploads/capability-demo-30948c557586d13e777bfe3cf3454b1e.png"
]
}
}输入 Schema
| 参数 | 类型 | 是否必填 | 默认值 |
|---|---|---|---|
| prompt | string | 必填 | — |
| aspect_ratio | string | 可选 | auto |
| enable_web_search | boolean | 可选 | false |
| image_urls | array | 可选 | — |
| num_images | integer | 可选 | 1 |
| output_format | string | 可选 | png |
| resolution | string | 可选 | 1K |
| seed | integer | 可选 | — |
| system_prompt | string | 可选 | |
| thinking_level | string | 可选 | medium |
返回结果
接口会返回生成结果,或返回可轮询的异步任务;具体响应方式与结果字段见下方示例和 Schema。
异步任务
调用示例
异步任务提交后返回任务 ID,轮询至 status 为 completed 后,按返回结果获取生成内容。API Key 在控制台获取。
# Use a new directory for each new generation. Rerunning here continues this task.
set -eu
test -s model-task-id.txt || python3 -c "import uuid; print(uuid.uuid4())" > model-task-id.txt
REQUEST_ID=$(cat model-task-id.txt)
# Idempotent: resending the same bytes with the same ID never charges twice.
curl --fail-with-body --retry 3 --retry-connrefused --request POST 'https://api.musespan.com/v1/model-tasks' \
--header "Authorization: Bearer $MUSESPAN_API_KEY" \
--header "X-Request-Id: $REQUEST_ID" \
--header "Content-Type: application/json" \
--data '{"model":"google/nano-banana-2.1/image-to-image","input":{"prompt":"Replace the iced oolong milk tea with a hot matcha latte in a white ceramic cup, change the headline to \"MATCHA MOMENTS\", and keep the layout, caption and lighting unchanged.","aspect_ratio":"auto","enable_web_search":false,"num_images":1,"output_format":"png","resolution":"1K","system_prompt":"","thinking_level":"medium","image_urls":["https://pub-a7287c8d5de944d984e22a5bd3ab9bbe.r2.dev/uploads/capability-demo-30948c557586d13e777bfe3cf3454b1e.png"]}}'
# Poll every 5 seconds for up to 25 minutes until status is completed or failed.
# Still queued (with queue_position) 5 minutes after submission: failed with queue_timeout, not charged.
# No result 15 minutes after acceptance (or no confirmation 15 minutes after submission): failed with generation_timeout, not charged.
# Any failure is final: generate again in a new directory (a new X-Request-Id).
# A 404 means the POST did not arrive: rerun this script to resend it with the same ID.
curl --fail-with-body 'https://api.musespan.com/v1/model-tasks/'"$REQUEST_ID"'' --header "Authorization: Bearer $MUSESPAN_API_KEY"