首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Nano Banana 2.1 API 接入实战:图内文字、10 张参考图融合与 15 种画幅,每张 $0.022 起

Nano Banana 2.1 API 接入实战:图内文字、10 张参考图融合与 15 种画幅,每张 $0.022 起

原创
作者头像
用户7679731
发布于 2026-10-25 19:38:24
发布于 2026-10-25 19:38:24
1430
举报

说明:本文在 AI 辅助下生成。文中的接口参数来自服务端源码和公开文档,价格核对于 2026-10-25,测试结论来自作者在 2026-10-07 和 10-08 的小规模自测。

做电商主图、活动海报这类图时,最常见的三个问题是:图里的字拼错,几张参考图里的人物或商品对不上,画幅选项不够用,网页横幅和手机长图都得自己裁。Google 在 2026 年 10 月推出的 Nano Banana 2.1 针对的正是这几点:按 Google 模型卡的评测,它在信息图文字准确度和多人物编辑上都比上一代 Nano Banana 2 有提升,还新增了 1:4、1:8 这类长条画幅。

Nano Banana 2.1 是 Google 的图像生成与编辑模型。同一个模型既能文生图,也能带参考图做编辑和多图融合,适合图内文字要准、多张图要保持一致、画幅不固定的批量出图场景。本文用一个 OpenAI 兼容的 HTTP 接口,把文生图、多参考图编辑、15 种画幅、三档分辨率、回调和成本估算逐个走一遍,代码可以直接复制运行。

先说利益关系:下文的调用示例走的是我们自己的平台 apimodels.app,模型名是 nano-banana-2-1。

准备工作

  • 一个 API key,下文写作 YOUR_API_KEY。
  • Python 3.9 以上并装好 requests,或者直接用 curl。
  • 统一端点:https://api.apimodels.app/v1/images/generations,文生图和改图都走这一个地址。

一、文生图:先提交任务,再轮询结果

接口是异步的:POST 提交后立刻返回一个 taskId,再用 GET 查询,直到 state 变成 completed,从 resultUrls 里取图。下面的提示词是示例,结构和参数与官方文档一致:

代码语言:python
复制
import requests, time

API_KEY = "YOUR_API_KEY"
ENDPOINT = "https://api.apimodels.app/v1/images/generations"
H = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

# 第 1 步:提交任务,立即返回 taskId
res = requests.post(ENDPOINT, headers=H, json={
    "model": "nano-banana-2-1",
    "prompt": "竖版咖啡店开业海报,暖色调,顶部大字标题写着「秋日限定 桂花拿铁」,"
              "画面中央是一杯拿铁和几枝桂花,底部一行小字写着「10 月 26 日开业」",
    "aspect_ratio": "3:4",
    "resolution": "2K",       # 1K(默认)/ 2K / 4K,决定价格
})
task_id = res.json()["data"]["taskId"]

# 第 2 步:每 3 秒查一次,直到完成或失败
while True:
    data = requests.get(ENDPOINT, headers=H, params={"task_id": task_id}).json()["data"]
    if data["state"] == "completed":
        print(data["resultUrls"][0])
        break
    if data["state"] == "failed":
        raise RuntimeError(data.get("failMsg", "generation failed"))
    time.sleep(3)

state 只有四种取值:pending 和 processing 表示还在生成,completed 表示完成,failed 表示失败、原因写在 failMsg 里。一次请求只出一张图,要多张就并发多发几单,每单各自计费、各自可查。

出图时间在我们的自测里波动不小:10 月 7 日一张 16:9 的 1K 图大约 20 秒;10 月 8 日同样是 2K 的图,上午 25 到 28 秒,下午 65 到 77 秒。轮询循环最好留出几分钟的超时,不要按十几秒去写死。

二、让图里的字写对

在我们的自测里,16:9 招牌上的英文、信息图里的每一个标签都拼写正确;编辑一张带字的截图时,屏幕上的原有文字也原样保留了下来。中文长段落我们没有做过系统测试,所以下面几条是结合 Google 模型卡里写明的限制整理的经验:

  • 要出现在图里的字,用引号或书名号原样写进提示词,并说清楚它在什么位置、多大字号。
  • 标题尽量短。Google 的模型卡提到,长段落文字和 1K 下的小字容易糊。
  • 有小字的图直接用 2K 或 4K。也可以先用 1K 调提示词,满意了再用高档出正式图;注意这是一次新的生成,画面会有变化。
  • 出图后一定人工核对一遍文字,尤其是数字、日期和品牌名。

三、多参考图融合:image_urls 最多 10 张

改图和融合用的是同一个端点、同一个模型名。传 image(单张)或 image_urls(数组),请求就自动进入编辑模式,两者合计最多 10 张。每张可以是 URL、data URI 或裸 base64,格式支持 JPEG、PNG、WebP。提示词里用「图 1、图 2」指代参考图即可:

代码语言:bash
复制
curl -X POST https://api.apimodels.app/v1/images/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-2-1",
    "prompt": "把图 1 的保温杯放在图 2 的木质桌面上,杯身印上图 3 的品牌标志,自然光,电商主图风格",
    "image_urls": [
      "https://example.com/bottle.png",
      "https://example.com/desk.jpg",
      "https://example.com/logo.png"
    ],
    "aspect_ratio": "4:5",
    "resolution": "2K"
  }'

返回同样是 taskId,轮询方式和第一节完全一样。有三点要注意:

  • 多图字段名是 image_urls,不是 images。
  • 两个字段合计超过 10 张会直接返回 400,不会悄悄截断。
  • 参考图张数不影响价格,只有分辨率决定价格。

我们在 10 月 8 日做过一次改图自测:把一张带标题的截图放进客厅场景,屏幕上的文字原样保留,倒影里的镜像字母也是对的;但提示词里的几条要求,它漏了一条。所以复杂的编辑指令最好拆成两步来做。

四、15 种画幅和三档分辨率

aspect_ratio 支持 15 个值:

代码语言:plaintext
复制
auto(默认), 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9, 1:4, 4:1, 1:8, 8:1

其中 21:9 适合网页横幅,1:4 和 1:8 适合长条详情图或手机长图。传了列表以外的值会直接返回 400,不会被悄悄换成别的比例,排查起来比较省事。

resolution 分 1K、2K、4K 三档,不传按 1K 处理。以 16:9 为例,三档实际出图分别是 1376×768、2752×1536、5504×3072。我们 10 月 9 日实测过,4K 是原生出图,不是放大来的。

五、不想轮询:回调或 OpenAI SDK 同步写法

第一种办法是加 callback_url。在请求体里带上一个公网可访问的地址,任务结束后会回调这个地址,适合放在队列或服务端批处理里用:

代码语言:json
复制
{
  "model": "nano-banana-2-1",
  "prompt": "……",
  "resolution": "1K",
  "callback_url": "https://your-app.example.com/webhook/image"
}

回调地址必须是公网 http(s);填 localhost 或内网 IP 会在提交时直接返回 400。本地调试可以用内网穿透工具。

第二种办法是用 OpenAI 官方 SDK 同步调用。请求里带上 size(形如 1536x1024)且没有 callback_url 时,接口会等到出图后再按 OpenAI 的格式返回。下面是示例代码:

代码语言:python
复制
from openai import OpenAI

client = OpenAI(base_url="https://api.apimodels.app/v1", api_key="YOUR_API_KEY")
resp = client.images.generate(
    model="nano-banana-2-1",
    prompt="极简风格的耳机产品图,浅灰背景,右下角写着「NEW」",
    size="1536x1024",                      # 换算成 3:2、2K 档
    response_format="url",                # 只要链接;不传默认还会带 b64_json
)
print(resp.data[0].url)

size 的换算规则是:比例取 1:1、2:3、3:2、4:5、5:4、4:3、3:4、16:9、9:16、21:9 中最接近的一个;分辨率按像素数分档,不超过 130 万像素算 1K,不超过 500 万像素算 2K,再大算 4K。1:4、1:8 这类长条比例换算不出来,需要在 extra_body 里直接传 aspect_ratio。显式传入的 aspect_ratio 和 resolution 优先于 size 的换算结果。

六、成本怎么算

价格只看分辨率,参考图张数、画幅、提示词长短都不影响:

分辨率

apimodels.app 每张

Google 官方标准价每张

差额

1K

$0.022

$0.0336

低约 35%

2K

$0.036

$0.0504

低约 29%

4K

$0.06

$0.113

低约 47%

Google 官方价取自其定价页 2026-10-07 版的标准档。按这个价格,1K 出 100 张是 $2.20,2K 是 $3.60,4K 是 $6.00。控制成本的常见做法是:先用 1K 把提示词调好,再用 2K 或 4K 出正式图。

每一单的实际扣费都可以免费查询,用创建任务时拿到的 task_id 调用:

代码语言:bash
复制
curl https://api.apimodels.app/v1/records/TASK_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

返回里的 credits 就是这一单从余额里扣掉的美元数,失败的单是 0,方便和自己的业务记录逐单对账。

apimodels.app 在这里解决什么

apimodels.app 是一个多模型 API 网关:用一个 API key、一个 OpenAI 兼容端点调用图像、视频、语音和语言模型。对 Nano Banana 2.1 来说,它在调用链路上做了这几件事,先说稳定性:

  • 多条上游线路自动切换。 当前线路报错、超时,或者交付不合格时,同一单会自动换下一条线路继续出图。换线路不改价格,调用方什么都不用改。
  • 交付前核对尺寸。 主力线路在交付前会量一下图的实际像素,像素不足所选档位的 80%,或者比例偏差超过 5%,这张图就判为失败,不交付、不收费,再换线路重出。
  • 失败不扣费,每单可查。 任务失败不扣钱;/v1/records 能查到每一单的实际扣费;结果文件保留 30 天。

价格方面,三档单价都低于 Google 官方标准价,按美元计费,不需要单独开 Google Cloud 账号。

不适合的情况也说清楚:

  • 写实人像特写不建议用它。我们 10 月 8 日的自测里,它把皮肤毛孔渲染成了均匀的细密点阵,不如 Nano Banana Pro 自然。
  • 需要透明背景、蒙版局部重绘,或者一次请求出多张图的场景,这个接口不支持。
  • 依赖 Google 原生的 thinking 等级、搜索 grounding 等参数的项目,这里没有开放这些参数,直接用 Google 官方 SDK 更合适。

常见报错

  • 400,aspect_ratio 不合法:值不在上面 15 个之内,改成列表里的值即可。
  • 400,参考图超过 10 张:image 和 image_urls 合计不能超过 10 张。
  • 400,callback_url 不可达:回调地址必须能从公网访问,不能是 localhost 或内网 IP。
  • state: failed:原因写在 failMsg 里,这一单不扣费,可以修改提示词后重新提交。

你在用 Nano Banana 2.1 做图内文字时,遇到过哪些写不对的情况?欢迎在评论区交流。


接口文档:Nano Banana 2.1 API 文档(apimodels.app);逐单扣费查询:请求记录与实扣查询文档。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 准备工作
  • 一、文生图:先提交任务,再轮询结果
  • 二、让图里的字写对
  • 三、多参考图融合:image_urls 最多 10 张
  • 四、15 种画幅和三档分辨率
  • 五、不想轮询:回调或 OpenAI SDK 同步写法
  • 六、成本怎么算
  • apimodels.app 在这里解决什么
  • 常见报错
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档