nano-banana-2.1;调用另外两款时,替换路径或 SDK 中的模型 ID。
接入信息
创建 BetterToken API Key · 模型广场 · Nano Banana 系列上线介绍
先生成一张图片
在终端设置BETTERTOKEN_API_KEY 后执行。该请求会等待生成结束,将完整 JSON 响应保存为 response.json。
- macOS / Linux
- Windows PowerShell
imageSize 改为 2K 或 4K 可请求更高分辨率。先从 1K、1:1 和一张图片开始;不要加 --retry 自动重发生图。
常用参数
生成商品图时,描述主体、材质、光线和背景;制作海报时,明确画面中的文字和版式;编辑图片时,分别说明需要修改和需要保留的内容。 原生 HTTP 请求使用以下字段;Python SDK 对应使用 snake_case 名称。将图片设置放在generationConfig.imageConfig 内。
Google 官方支持的比例
Nano Banana 2 和 2.1 支持 14 种比例,Pro 支持 10 种。首次调用可先使用1:1。
Google 比例与尺寸说明
图片数量上限不是生成数量承诺。即使提示词要求多张,也可能只返回一张;需要固定多张时,逐张发送独立请求。
读取响应并保存图片
图片位于candidates[].content.parts[].inlineData。下面只展示结构,BASE64_IMAGE_DATA 不是实际图片。遍历所有最终图片 part,并跳过 thought: true 的中间内容。
mimeType 选择文件后缀;返回的图片可能是 JPEG,不要一律命名为 .png。
Python SDK 完整示例
使用 Python 3.10 或更新版本。以下示例按google-genai==2.30.1 编写。请在项目虚拟环境中安装;旧版 SDK 可能不发送 image_size。
/v1 或 /v1beta。timeout 单位为毫秒;attempts=1 关闭自动重试。示例的 save_images 会保存全部最终图片。
传入参考图片
在上方 Python 示例后运行以下代码,会发送一次新的编辑请求。把reference.jpg 换成你的本地图片。PNG 请改为 mime_type="image/png";多个参考图可依次加入同一条用户消息的 parts。
inlineData: {"mimeType": "image/jpeg", "data": "BASE64_IMAGE_DATA"}。传入文件原始字节的 base64,不要带 data:image/...;base64, 前缀。本接入方式不使用 multipart、Files 上传或 fileData。
连续编辑同一张图片
在上一次成功生成或参考图编辑之后继续运行。保留完整的模型响应content,包括 part 顺序和 thoughtSignature;不要只提取图片重新拼接,也不要手写或修改签名。
history,加入新的用户指令,再加入新返回的模型 content。不要把 Interactions 的 previous_interaction_id 用在这个接口中。
接口支持范围
- 本接入方式使用非流式
generateContent。不支持 Files /fileData、Batch、Interactions 或流式调用。 - 不支持
responseMimeType、responseSchema和自定义图片压缩格式。imageConfig仅使用上方列出的两个字段。 - 不要添加
cachedContent、函数调用、代码执行、文件搜索、Maps、URL context 或音频输入与生成配置。
已有 OpenAI Chat 客户端时
可以使用POST /v1/chat/completions,Base URL 为 https://bettertoken.ai/v1。新接入、参考图和连续编辑推荐使用上面的 Gemini 原生接口。Chat 请求中的 n 省略或设为整数 1。
直接 HTTP 请求把 google.image_config 放在 JSON 根级。使用 Python OpenAI SDK 时,通过 extra_body 传入,SDK 会将其合并到根级;不要把它误写为 generationConfig。
openai==1.66.2 后运行:
choices[0].message.content 的 Markdown Data URL 中,不在 Images API 的 data[] 内。不要从 Chat 的图片文本重建连续编辑的签名历史,连续编辑使用原生示例。
常见调用错误
生成结果随当前响应返回,不提供本页请求的后台取图或任务轮询。成功后及时保存图片。SDK 及代理都应预留足够等待时间,并关闭自动重试。

