Nano Banana Pro
根据文本和最多 14 张参考图生成或编辑图片,支持 1K、2K 或 4K,以 PNG 或 JPEG 交付。
- 异步:创建调用会立即返回任务 ID;任务成功后才能拿到图片。
- 每个任务生成一张图片。需要多张图片时,请创建多个任务。
- 文生图,或编辑、合成最多 14 张以公网 HTTPS 链接给出的参考图。
- 按
resolution对每张图片计价:宽高比、参考图数量和提示词长度都不影响价格。 - 失败的任务不收费:预扣金额会全额退回。
在 output_format 中,Nano Banana Pro 用 jpg 表示 JPEG;其他 Nano Banana 模型用 jpeg。
在调试窗口里打开本模型,填入你的 BeatAPI API 密钥即可创建任务。调用是真实的,费用从你自己的余额中扣除。
模型 ID
这五个模型使用同一个接口和同一组字段,区别在于各自接受的取值。下方的取值直接来自网关契约。
接口与鉴权
POST https://api.beatapi.io/v1/images/tasks
Authorization
string
必需
你的 BeatAPI API 密钥,以 Bearer <BEATAPI_API_KEY> 形式发送。在控制台创建密钥。密钥只能保存在你的服务端,不要放进浏览器或移动端应用。
请求体使用 JSON,并设置 Content-Type: application/json。Idempotency-Key 为可选:每个逻辑请求发送一个唯一值(最长 255 个字符),仅在重试完全相同的请求体时复用。24 小时内,用相同的键和请求体重试会再次返回第一次的响应,并带上 Idempotent-Replayed: true;相同的键搭配不同的请求体则返回 409 idempotency_conflict。非 2xx 的响应不会被保存,因此 400 或 402 之后的重试会重新执行。
请求流程
等待任务完成
调用 GET /v1/tasks/{task_id},两次调用之间等待 data.poll_after_seconds 秒(图片 5 秒,视频 8 秒),直到 status 为 succeeded 或 failed。也可以为 task.succeeded 和 task.failed 注册 Webhook;仍需保留轮询作为兜底,因为因处理超时而终止的任务不会发送事件。
输入模式
请求参数
model
string
必需
要运行的模型。
取值:nano-banana-pro
取值有误时
- 缺失:
"model" is required - 未知的模型 ID:
"model" nano-banana-9 is not catalogued - 把视频模型发到了这个接口:
"model" seedance-2.5 is served by POST /v1/videos/tasks, not this endpoint
prompt
string
必需
要画什么,或要修改参考图中的什么。用平实的语言效果最好:主体、风格、光线、构图,以及必须出现在图片中的文字。
长度:1–5000 个字符
- 长度按字符计算(一个中日韩文字算一个字符)。
- 传了
images时,请说明每张图的作用,例如 “Use the first image for the product and the second for the background”。
取值有误时
- 缺失:
"prompt" is required - 为空或超过长度上限:
"prompt" has an unsupported length - 不是字符串:
"prompt" must be a string
images
string[]
可选
要编辑或合成的参考图。传入该字段会把请求从文生图切换为图片编辑。
数量:1–14
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 每个链接必须通过公网 HTTPS 直接返回图片文件本身(PNG、JPEG 或 WebP),且不超过 50 MB。网关在创建任务之前会下载每个链接开头的若干字节。
- 指向网页、登录页、已过期的签名链接或有防盗链的主机的链接会被拒绝,因为它们返回的不是图片。
- 错误信息中的位置从 0 开始:
images[0]是第一个链接。
取值有误时
- 超过数量上限:
"images" accepts at most 14 items - 空数组:
"images" requires at least 1 item - 不是 https:// 链接:
"images[0]" must be a public HTTPS URL - 私有或不安全的地址:
"images[0]" must be a publicly reachable HTTPS image URL - 主机返回 4xx 错误:
"images[0]" could not be downloaded: the URL returned HTTP 404 - 链接返回的不是 PNG、JPEG 或 WebP:
"images[0]" is not a PNG, JPEG or WebP image: the URL returned text/html - 大于 50 MB:
"images[2]" is 63.4 MB; images must be 50 MB or smaller
示例
aspect_ratio
string
可选默认值: 1:1
图片的形状,以 宽:高 表示。
可选值:1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9, auto
默认值:1:1
auto把形状交给模型决定。传了images时,输出通常会沿用参考图,但并非所有线路都能保证;如果形状很重要,请直接指定比例。- Nano Banana Pro 不接受超高和超宽的横幅比例
1:4、4:1、1:8和8:1;Nano Banana 2、2.1 和 2 Lite 接受。
编辑图片时,auto 通常会保持参考图的形状。如果不传该字段,会使用默认的 1:1,结果是正方形。
取值有误时
- 取值不在列表中:
"aspect_ratio" must be one of: [1:1 2:3 3:2 3:4 4:3 4:5 5:4 9:16 16:9 21:9 auto]
resolution
string
可选默认值: 1K
图片的尺寸档位。档位越高,图片越大;4K 的价格是 1K 和 2K 的两倍,1K 与 2K 价格相同。具体像素尺寸取决于 aspect_ratio,由模型决定。
可选值:1K, 2K, 4K
默认值:1K
- K 必须大写:
2k会被拒绝。
取值有误时
- 取值不在列表中:
"resolution" must be one of: [1K 2K 4K]
output_format
string
可选默认值: png
结果的文件类型。
可选值:png, jpg
默认值:png
- 如果模型返回的是这两种类型中的另一种,BeatAPI 会在保存前转换图片,使文件通常与你要求的格式一致;如果转换失败,文件会按原样保存。透明区域在 JPEG 中会变成白色。无法转换的过大图片(超过 64 百万像素)会按原样保存。
output.media[].mime_type始终标明实际保存的类型(要求jpg时为image/jpeg)。 - 请写
jpg,不要写jpeg:Nano Banana Pro 是唯一使用jpg的 Nano Banana 模型。
取值有误时
- 取值不在列表中(例如
jpeg或webp):"output_format" must be one of: [png jpg]
输入素材限制
网关会在创建任务之前读取每一项输入,超出这些限制的输入会被拒绝,并返回点名该输入的 400 bad_request。不扣费。
- 参考图:PNG、JPEG 或 WebP,按文件内容识别,而不是按文件名或
Content-Type;每张不超过 50 MB(十进制 MB;仅在主机声明大小时检查);1 到 14 个链接。GIF、HEIC 和 SVG 会被拒绝。 - 该模型不检查像素或宽高比限制。
- 如果主机未在时限内响应,创建任务时不会拒绝该链接;若之后仍无法获取,任务会以
bad_request失败,并退款。 - 有本地文件?先用
POST /v1/files上传,再传入返回的data.url。
该模型不接受的字段
图片接口认识一些其他图片模型使用的字段。在这里传入其中任何一个都会被拒绝,而不是被忽略,这样你不会为一个没有效果的设置付费:
quality、seed、background、size、enhance_prompt→field "quality" is not supported by model nano-banana-pro(其中是你所传的字段)。- 其他任何未知字段,例如
n→unknown field: n。没有n这个字段:一个任务只生成一张图片。
请求示例
文生图
根据提示词生成一张 2K 横版图片。
编辑一张图片
更换背景并保留商品。auto 通常沿用参考图的形状。
合成多张图片
在提示词中按位置指明每张参考图。
4K JPEG 海报
以 JPEG 交付的竖版海报。该模型用 jpg 表示 JPEG。
响应
创建任务(201)
任务对象。任务成功之前 output 为 null。标注“运行中”的字段会在任务结束后消失。
任务完成
GET /v1/tasks/{task_id} 返回 HTTP 200 和 status: "succeeded",结果在 data.output 中。
输出字段
任务失败
失败的任务在 GET /v1/tasks/{task_id} 上仍然是 HTTP 200:失败信息在响应体里。预扣金额会全额退回,因此不会扣费。
完整示例
创建任务,按服务端给出的轮询提示等待,然后打印结果链接。请在环境变量中设置 BEATAPI_API_KEY 并安装 requests。
计费
- 每个任务一张图片,仅按
resolution计价(见下表)。宽高比、参考图数量和提示词长度都不影响价格。 - 1K 和 2K 价格相同;4K 的价格是它们的两倍。
- 价格在创建任务时预扣,从你的余额中扣除;若密钥设有额度,也从密钥额度中扣除。在任务生成之前被拒绝的请求不收费。
- 成功的任务保留预扣金额。失败的任务全额退回:此时
credits_refunded等于credits_reserved。
当前牌价,与价格页一致。享有协商折扣的账户实付更低;任务的 data.usage 始终显示实际扣费金额。
常见错误
HTTP 错误速查
任务生成之前的错误会以非 2xx 响应返回,不扣费。请根据 error.code 或 error.retryable 判断处理方式;message 会指出问题所在。完整列表和重试策略见错误码。
身份验证
Send your API key as Authorization: Bearer <BEATAPI_API_KEY>.
请求头
请求体使用 JSON,并设置 Content-Type: application/json。Idempotency-Key 为可选:每个逻辑请求发送一个唯一值(最长 255 个字符),仅在重试完全相同的请求体时复用。24 小时内,用相同的键和请求体重试会再次返回第一次的响应,并带上 Idempotent-Replayed: true;相同的键搭配不同的请求体则返回 409 idempotency_conflict。非 2xx 的响应不会被保存,因此 400 或 402 之后的重试会重新执行。
请求
要运行的模型。
取值:nano-banana-pro
取值有误时
- 缺失:
"model" is required - 未知的模型 ID:
"model" nano-banana-9 is not catalogued - 把视频模型发到了这个接口:
"model" seedance-2.5 is served by POST /v1/videos/tasks, not this endpoint
要画什么,或要修改参考图中的什么。用平实的语言效果最好:主体、风格、光线、构图,以及必须出现在图片中的文字。
长度:1–5000 个字符
- 长度按字符计算(一个中日韩文字算一个字符)。
- 传了
images时,请说明每张图的作用,例如 “Use the first image for the product and the second for the background”。
取值有误时
- 缺失:
"prompt" is required - 为空或超过长度上限:
"prompt" has an unsupported length - 不是字符串:
"prompt" must be a string
图片的形状,以 宽:高 表示。
可选值:1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9, auto
默认值:1:1
auto把形状交给模型决定。传了images时,输出通常会沿用参考图,但并非所有线路都能保证;如果形状很重要,请直接指定比例。- Nano Banana Pro 不接受超高和超宽的横幅比例
1:4、4:1、1:8和8:1;Nano Banana 2、2.1 和 2 Lite 接受。
说明:编辑图片时,auto 通常会保持参考图的形状。如果不传该字段,会使用默认的 1:1,结果是正方形。
取值有误时
- 取值不在列表中:
"aspect_ratio" must be one of: [1:1 2:3 3:2 3:4 4:3 4:5 5:4 9:16 16:9 21:9 auto]
要编辑或合成的参考图。传入该字段会把请求从文生图切换为图片编辑。
数量:1–14
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 每个链接必须通过公网 HTTPS 直接返回图片文件本身(PNG、JPEG 或 WebP),且不超过 50 MB。网关在创建任务之前会下载每个链接开头的若干字节。
- 指向网页、登录页、已过期的签名链接或有防盗链的主机的链接会被拒绝,因为它们返回的不是图片。
- 错误信息中的位置从 0 开始:
images[0]是第一个链接。
取值有误时
- 超过数量上限:
"images" accepts at most 14 items - 空数组:
"images" requires at least 1 item - 不是 https:// 链接:
"images[0]" must be a public HTTPS URL - 私有或不安全的地址:
"images[0]" must be a publicly reachable HTTPS image URL - 主机返回 4xx 错误:
"images[0]" could not be downloaded: the URL returned HTTP 404 - 链接返回的不是 PNG、JPEG 或 WebP:
"images[0]" is not a PNG, JPEG or WebP image: the URL returned text/html - 大于 50 MB:
"images[2]" is 63.4 MB; images must be 50 MB or smaller
示例
"images": [
"https://media.beatapi.io/samples/smart-bottle.png",
"https://media.beatapi.io/samples/neon-singer.png"
]
结果的文件类型。
可选值:png, jpg
默认值:png
- 如果模型返回的是这两种类型中的另一种,BeatAPI 会在保存前转换图片,使文件通常与你要求的格式一致;如果转换失败,文件会按原样保存。透明区域在 JPEG 中会变成白色。无法转换的过大图片(超过 64 百万像素)会按原样保存。
output.media[].mime_type始终标明实际保存的类型(要求jpg时为image/jpeg)。 - 请写
jpg,不要写jpeg:Nano Banana Pro 是唯一使用jpg的 Nano Banana 模型。
取值有误时
- 取值不在列表中(例如
jpeg或webp):"output_format" must be one of: [png jpg]
图片的尺寸档位。档位越高,图片越大;4K 的价格是 1K 和 2K 的两倍,1K 与 2K 价格相同。具体像素尺寸取决于 aspect_ratio,由模型决定。
可选值:1K, 2K, 4K
默认值:1K
- K 必须大写:
2k会被拒绝。
取值有误时
- 取值不在列表中:
"resolution" must be one of: [1K 2K 4K]
响应
任务对象。任务成功之前 output 为 null。标注“运行中”的字段会在任务结束后消失。

