Nano Banana 2 的当前稳定模型 ID 是 gemini-3.1-flash-image。它的思考级别只有 minimal 和 high 两档,默认是 minimal。如果你只是想让请求正常出图,可以先保留默认值;如果画面有多个人物关系、文字排版或复杂布局,再用同一任务比较 High 是否减少返工。
需要分清的是:Minimal 不等于完全关闭思考,High 也不等于每张图必然更好。 Google 的模型文档确认了档位与设置方式,但不能据此推算你这次请求要多等几秒、会多花多少费用,或能提高多少成功率。以下参数与价格按 2026 年 9 月 8 日的官方文档核对;文中的比较方法是操作建议,没有附带 API 实测成绩。模型说明、思考级别说明
先确认你调的是哪个模型、哪一种接口
“思考模式”“思考级别”和“Thinking”可能出现在不同界面里。真正要落到代码时,先确认模型 ID,再看请求发往哪个接口。把其他 Gemini 文本模型的参数直接复制过来,或者只看界面上有没有 Thinking 按钮,都不足以确定 Nano Banana 2 的实际设置。
| 使用入口 | 设置位置 | 使用时要分清什么 |
|---|---|---|
| Gemini Interactions API | generation_config.thinking_level | 当前图片指南给出的写法,支持 minimal、high |
Gemini generateContent REST | generationConfig.thinkingConfig.thinkingLevel | 字段层级与 Interactions 不同,返回结构也不同 |
Python SDK 的 generate_content | config.thinking_config.thinking_level | 属于 generateContent 的配置,不能放进 Interactions 的请求体 |
| ComfyUI 的 Nano Banana 2 合作伙伴节点 | 节点中的思考级别选项 | 根据该节点提供的选项操作;界面名称不代表所有 API 都有同名枚举 |
| Gemini 消费者应用或第三方生图平台 | 由产品界面决定 | 不能仅凭模式名称判断它对应哪个 API 档位 |
Google 发布介绍和 ComfyUI 文档中可以看到 High/Dynamic 的表述;当前模型专属 API 指南列出的可选值仍是 minimal 与 high。因此,写请求时不要自行增加 dynamic,也不要借用其他模型的 low、medium、off 或 thinkingBudget=0 来当作 Nano Banana 2 的选档方式。Google 发布说明、generateContent 图片指南
Minimal 和 High 应该怎样选
最实用的起点是看画面中需要同时满足多少关系和约束,而不是单看提示词长短。
| 你的当前任务 | 建议起点 | 下一步看什么 |
|---|---|---|
| 尝试产品背景、配色或构图方向 | Minimal | 能否快速拿到值得继续修改的方案 |
| 修改一个清楚、局部的元素 | Minimal | 修改是否到位,其他部分是否保持可用 |
| 多主体有明确位置、动作或对应关系 | 比较 Minimal 与 High | 是否减少对象遗漏、关系混乱和重复修改 |
| 同时包含文字、分区和复杂布局要求 | 比较 Minimal 与 High | 文字与布局是否达到你的交付条件 |
| 批量生成某类固定素材 | 先建立 Minimal 基线 | High 能否降低每张可用素材的综合成本 |
这张表是选档建议,不是质量排名。ComfyUI 官方文档也把 Minimal 用于探索、High/Dynamic 用于复杂布局;是否适合你的素材仍要看实际结果。ComfyUI 中文文档
例如,你要做一张包含“三种包装、各自标签、统一光线”的商品说明图。如果 Minimal 反复把标签放错位置,High 值得加入对照。若问题只是“背景还不够蓝”,先把颜色要求写清楚往往更方便判断。不要同时换提示词、尺寸和档位,否则很难知道结果变化来自哪里。
用 Interactions API 设置 High,并取出最终图片
当前官方图片指南使用 Interactions API。下面把响应先保存到文件,便于检查是否真的返回图片。运行前需要已有的 Gemini API Key,并将其保存在环境变量 GEMINI_API_KEY 中。执行请求会产生相应 API 用量。
bashcurl --fail-with-body \ 'https://generativelanguage.googleapis.com/v1beta/interactions' \ -H "x-goog-api-key: ${GEMINI_API_KEY}" \ -H 'Content-Type: application/json' \ -d '{ "model": "gemini-3.1-flash-image", "input": "生成一张商品说明图:白色桌面上并排放置三个不同颜色的茶叶罐,每个罐子下方保留独立的标签区域,整体采用柔和的自然光。", "generation_config": { "thinking_level": "high" } }' \ -o response.json
换成 "thinking_level": "minimal" 就能用同一请求测试另一档。这里没有额外设置分辨率,模型默认输出为 1K;正式对照时,应明确固定自己实际使用的分辨率、画幅和参考图。官方 Interactions 示例
官方示例通过 interaction.output_image.data 取得 Base64 图片。直接请求 REST 时,可以先检查对应的 output_image 对象,再按 MIME 类型保存,避免把缺失图片或非图片响应当成成果:
pythonimport base64 import json from pathlib import Path response = json.loads(Path("response.json").read_text(encoding="utf-8")) image = response.get("output_image") if not isinstance(image, dict): raise SystemExit("未找到 output_image,请查看 response.json 中的返回内容。") extensions = { "image/png": ".png", "image/jpeg": ".jpg", "image/webp": ".webp", } mime_type = image.get("mime_type") data = image.get("data") if mime_type not in extensions or not isinstance(data, str) or not data: raise SystemExit("图片 MIME 类型或 Base64 数据不符合预期,请检查原始响应。") try: image_bytes = base64.b64decode(data, validate=True) except (ValueError, base64.binascii.Error) as exc: raise SystemExit("图片数据无法解码。") from exc if not image_bytes: raise SystemExit("图片数据为空。") output = Path("nano-banana-2" + extensions[mime_type]) output.write_bytes(image_bytes) print(f"已保存 {output},请打开图片确认能否使用。")
HTTP 请求成功只是第一步。还要确认响应中有最终图片、Base64 能解码、文件能够打开,并检查画面是否完成了你的任务。如果没有图片,先读返回内容和错误信息;单纯把 Minimal 改成 High 不是通用的报错修复办法。

已经在用 generateContent,应该改哪里
现有项目不一定需要为了选档立即更换接口。如果调用的是 generateContent,应修改它自己的 thinkingConfig。下面是该接口的 REST 请求体片段,不能放进上面的 Interactions 请求:
json{ "generationConfig": { "thinkingConfig": { "thinkingLevel": "high" }, "responseModalities": ["IMAGE"] } }
在 Python SDK 中,对应配置是 types.GenerateContentConfig 内的 thinking_config=types.ThinkingConfig(thinking_level="High");JavaScript 则使用 config.thinkingConfig.thinkingLevel。具体调用仍保留原本的模型和内容参数。generateContent 的官方配置示例
返回图片时也别混用解析器:generateContent 从返回的候选内容及 parts 中处理图片,官方示例会跳过标记为 thought 的部分,再保存最终图片;Interactions 的示例使用 output_image。因此,从旧代码迁移时不能只改 URL 和字段名,仍用原来的图片提取逻辑。
另一个常见误解是把 includeThoughts 当作思考开关。它控制的是是否返回思考内容,并不代表关闭思考,也不能决定是否收取相关 token 费用。没有看到思考摘要,不足以证明模型没有思考。思考内容与签名说明
ComfyUI 里怎么操作,第三方平台又该怎么判断
在 ComfyUI 中,按官方教程使用 Nano Banana 2 合作伙伴节点或对应模板,先设置提示词、参考图、分辨率与画幅,再选择节点提供的思考级别。先用 Minimal 探索方案,需要复杂布局时再比较 High/Dynamic。界面以实际安装版本为准,节点里的显示名称不能直接作为 REST 请求值。ComfyUI 操作说明
如果你用的是第三方 API 或代理平台,应确认两件事:它是否提供 gemini-3.1-flash-image,以及文档是否明确说明支持并传递思考级别参数。有的平台使用自己的请求格式,照搬 Google 原生字段未必生效。请求被接受,也不自动证明参数传到了模型;这需要平台说明或可核验的调用记录支持。
同样,Gemini 应用里的模式按钮不能直接替代 API 配置说明。如果你的目标是稳定复用某一档位,应以能够明确提交该模型参数的入口为准。
High 多花多少钱:不要把单张图像价格当总价
Google 标准 Gemini API 的 Nano Banana 2 价格包含不同部分。按当前价表,文本与图像输入为每百万 token 0.50 美元,文本和思考输出为每百万 token 3 美元,图像输出为每百万 token 60 美元;价表列出的 1K 图像输出约 0.067 美元只是图像输出部分。Google 官方价格表
你可以这样理解一次请求的费用:
“输入费用 + 文本与思考输出费用 + 图像输出费用 + 适用时的工具费用。
假设某次 High 请求比 Minimal 多用了 1,000 个计费思考 token,仅这部分增量就是:
“1,000 ÷ 1,000,000 × 3 美元 = 0.003 美元。
这是说明计价方法的算例,不是 High 每次固定多收 0.003 美元。实际思考用量、文本输出及重试次数可能不同;换用第三方服务时,还要看它自己的结算规则。需要比较更多分辨率和接入费用,可继续看 Nano Banana 2 API 价格说明。
对于批量任务,单次价格还不够。更有意义的是“获得一张最终可用图片,共花了多少请求费用、等待时间和人工修改时间”。如果 High 单次更贵,但减少了重试,它仍可能更合算;如果两档结果都能直接使用,就没有必要仅因为名字叫 High 而默认升级。

用一组固定任务决定是否长期开启 High
挑选你日常确实会交付的提示词,先写好验收条件。例如,上面的商品图可以要求:三个茶叶罐均出现、颜色能区分、每个标签区域与罐子一一对应、整体光线一致。验收条件应在看结果之前确定。
随后固定模型、提示词、参考图、分辨率、画幅和搜索设置,只改变思考级别。每档保留多次结果,避免把单次随机表现当成稳定结论。建议记录以下几项:
| 记录项 | 用途 |
|---|---|
| 最终图片能否正常打开 | 区分请求完成与实际交付成功 |
| 是否满足预先写好的画面条件 | 判断哪一档减少了关键缺陷 |
| 从发出请求到结果可用的时间 | 比较你的真实等待成本 |
| 返回用量与实际结算费用 | 比较包含思考在内的成本 |
| 重试次数与人工修改时间 | 判断哪一档更接近直接交付 |
如果 High 主要改善了你最难满足的条件,就把它留给这类任务;如果差异不稳定,继续使用 Minimal,优先整理提示词和参考图。你最终需要的是适合自己素材的默认设置,而不是一个脱离任务的“最高档”。



