Skip to main content
用同一个 Gemini 原生接口完成文字生图、参考图编辑和连续编辑。下文示例使用 nano-banana-2.1;调用另外两款时,替换路径或 SDK 中的模型 ID。
BetterToken API 不支持搜索生图,包括 Google 网页搜索和图片搜索增强。不要添加搜索工具。

接入信息

创建 BetterToken API Key · 模型广场 · Nano Banana 系列上线介绍
三款 Nano Banana 模型不支持 POST /v1/images/generations 或 POST /v1/images/edits,调用会返回 400 unsupported_endpoint。不要套用 GPT Image 的 multipart、image[] 或 data[].b64_json 示例。

先生成一张图片

在终端设置 BETTERTOKEN_API_KEY 后执行。该请求会等待生成结束,将完整 JSON 响应保存为 response.json。
将 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 的中间内容。
使用下面的 Python 代码保存 curl 返回的结果。根据 mimeType 选择文件后缀;返回的图片可能是 JPEG,不要一律命名为 .png。

Python SDK 完整示例

使用 Python 3.10 或更新版本。以下示例按 google-genai==2.30.1 编写。请在项目虚拟环境中安装;旧版 SDK 可能不发送 image_size。
SDK Base URL 为域名根地址,不要附加 /v1 或 /v1beta。timeout 单位为毫秒;attempts=1 关闭自动重试。示例的 save_images 会保存全部最终图片。

传入参考图片

在上方 Python 示例后运行以下代码,会发送一次新的编辑请求。把 reference.jpg 换成你的本地图片。PNG 请改为 mime_type="image/png";多个参考图可依次加入同一条用户消息的 parts。
原生 JSON 对应 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。
如需 Python OpenAI SDK 示例,可在同一虚拟环境安装 openai==1.66.2 后运行:
Chat 图片在 choices[0].message.content 的 Markdown Data URL 中,不在 Images API 的 data[] 内。不要从 Chat 的图片文本重建连续编辑的签名历史,连续编辑使用原生示例。

常见调用错误

生成结果随当前响应返回,不提供本页请求的后台取图或任务轮询。成功后及时保存图片。SDK 及代理都应预留足够等待时间,并关闭自动重试。

官方来源