Google 的 Gemini 2.5 Flash Image 是旧版 Nano Banana 图像生成模型,用于通过 API(应用程序编程接口)生图和改图。截至 2026-10-04,Gemini Developer API 的停服时间表已列出 2026-10-02 这个日期;表头同时说明日期是最早可能退役时间,因此不能只凭日历断言每个项目的旧请求都已失败。仍在调用 gemini-2.5-flash-image 的应用,应立即检查实际响应并准备迁移。
按官方图像生成指南分清迁移任务:单轮、1K 出图且成本敏感,先验证 Nano Banana 2 Lite;需要多轮编辑或更高分辨率,先验证 Nano Banana 2。把候选模型的最小请求跑通,再回放旧业务样例,最后切换流量。不要直接复制停服表里的 preview 替代名,也不要在新路径未验收时批量重跑失败任务。
这里限定的是 Gemini Developer API。Gemini 网页版和 Google Cloud 上的模型生命周期、权限与计费需要分别核对,不能套用同一张停服表。尚未决定用哪家图像服务,可以先看AI 图像生成工具对比。
停服表里的替代项为什么不能直接用?
截至 2026-10-04,Google 停服表存在一条需要继续追踪的替代链:gemini-2.5-flash-image 指向 gemini-3.1-flash-image-preview,但同页又把这个 preview 的停服日期列为 2026-06-25,替代项是 gemini-3.1-flash-image。当前模型页也把不带 preview 后缀的名称列为 Stable。
因此,准备迁移到 Nano Banana 2 时,候选 ID 应写成 gemini-3.1-flash-image。这是交叉核对停服链和当前模型页得到的选择,不代表仅替换字符串就完成了兼容性验证。
先在应用中检查三个位置:
- 发请求的代码和环境配置:实际发送的模型 ID 是否仍然是旧名称
- 队列、定时任务与重试任务:模型名是否已经固化在待执行的任务记录中
- 代理或网关:界面显示的别名最终被映射到哪个模型、哪个服务入口
只改服务启动配置,未必会改变已经入队的任务。把任务记录中的旧模型单独列出来,确认处理方案后再恢复队列。
Nano Banana 2 和 Lite,按什么条件选择?
需要保留多轮编辑、输出 2K/4K 或搜索辅助生图时,先验证 Nano Banana 2;只需要单轮 1K 图片时,可以先验证 Lite。以下是截至 2026-10-04 的官方功能范围,用于筛选候选,不是画质、速度或成功率排名。
| 你的需求 | 首个验证对象 | 必须检查的条件 |
|---|---|---|
| 单轮 1K 配图,优先控制输出费用 | gemini-3.1-flash-lite-image |
Lite 只支持 1K;不要顺手把应用内其他 2K/4K 请求一起迁过去 |
| 连续改图,或需要 0.5K、2K、4K | gemini-3.1-flash-image |
回放完整编辑过程,检查后一次修改是否破坏已确认部分 |
| 生图要结合 Google Search | gemini-3.1-flash-image |
模型页列出支持 Search grounding;Lite 不支持 |
分辨率和多轮编辑限制见图像生成指南;搜索能力分别见 Nano Banana 2 模型页和 Lite 模型页。Google 明确说 Lite 未针对多参考输入和连续多轮编辑优化,不能仅凭名字里都有 Nano Banana 就当作等价替换。
如果你的旧流程依赖复杂参考图,先保留参考图数量、输入顺序和提示词,验证同一个任务。迁移阶段同时改模型、素材和提示词,会让失败原因更难定位。
先用独立小脚本验证新请求
在测试项目中确认计费、模型访问权限和现有 API key 可用,再运行单次请求。Google 当前推荐 Python 的 google-genai SDK(软件开发工具包),安装方式见官方 SDK 文档;密钥用环境变量或现有密钥管理机制提供,不写进脚本、前端包或日志,配置方式见API key 文档。
在独立虚拟环境中安装 SDK,避免直接升级生产项目的依赖:
python -m venv .venv
# macOS / Linux;Windows 请使用虚拟环境对应的激活命令
source .venv/bin/activate
python -m pip install -U google-genai
下面是根据 2026-10-04 官方图像生成示例整理的最小示意脚本,走 Interactions API。将它保存为 migration_check.py;确认当前进程已取得 GEMINI_API_KEY 后,运行 python migration_check.py。示例未执行付费 API 调用,也不提供实测输出或兼容性保证。运行会产生 API 费用。
import base64
import os
from pathlib import Path
from google import genai
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
result = client.interactions.create(
model="gemini-3.1-flash-image",
store=False,
input="生成一张白底蓝色陶瓷杯图片,不要文字、标志或其他物品。",
response_format={
"type": "image",
"mime_type": "image/png",
"aspect_ratio": "1:1",
"image_size": "1K",
},
)
image = result.output_image
if image is None or not image.data:
raise RuntimeError("本次响应没有可保存的图片,请检查响应状态和诊断信息")
path = Path("migration-check.png")
path.write_bytes(base64.b64decode(image.data, validate=True))
print(f"已保存 {path},请检查文件能否打开、尺寸与内容是否符合要求")
示例用 store=False 关闭 Interactions 的会话状态存储。截至 2026-10-04,官方接口说明写明它默认存储请求,以便通过 previous_interaction_id 延续会话;关闭后不能依赖这项服务端历史。它也不等于关闭所有服务日志或免除数据处理条款,使用敏感素材前仍须核对数据政策。
如果现有应用用的是 GenerateContent API,不要把上述请求和响应字段直接粘进原来的解析器。官方仍支持 GenerateContent;先把小脚本作为独立连通性检查,再决定是在现有接口上验证新模型,还是单独做接口迁移。模型迁移和接口迁移应分开记录、分开验收。
截至 2026-10-04,官方接口限制说明 Interactions API 仍不支持 Batch API。已有批处理应保留基于 GenerateContent 的 Batch API 路径,单独验证请求格式和结果解析,不要把本节的单次示例当成批量替代。下文的小批量回归指应用侧的一组测试任务,不代表已经使用或验证了 Batch API。
最小请求通过后,把输出路径换成测试专用目录,再接入一条真实但不敏感的业务输入。文件能保存,只证明这次拿到了图片,不能替代对尺寸、内容、后续上传和展示流程的检查。
用旧任务验收,别只看一张样图
从你已经允许用于测试的业务素材中取样,至少覆盖应用实际支持的入口。没有历史结果时,先写明验收条件,不要补造“旧模型基准”。下面是可复制的测试记录格式,内容是待填项,不是本站测试数据。
任务编号:
模型 ID / SDK 版本 / 接口名称:
提示词版本 / 输入素材编号:
画幅 / 分辨率 / 返回格式:
请求次数 / 失败原因 / 是否重试:
输入和输出用量 / 实际费用:
必需保留的文字、物体或品牌元素:
验收结果 / 人工修正内容:
| 应用原有能力 | 必须回放的任务 | 不通过时的处理 |
|---|---|---|
| 纯文字生图 | 一条常用提示词和一条边界输入 | 分开检查模型响应、图片解码和业务规则 |
| 参考图编辑 | 同一张已授权素材,只改一个明确位置 | 对照未要求修改的区域;出现不可接受变动就保留人工编辑路径 |
| 连续编辑 | 先改背景,再改颜色等实际操作链 | 确认上下文传递方式正确,不把独立请求当连续会话 |
| 带文字的图 | 真实需要的标题、价格或标签 | 逐字核对;必要时把文字移到精确排版工具里完成 |
| 批处理 | 一小组任务和其中一条失败任务 | 检查失败能否单独恢复、是否会重复保存或交付 |
“边界输入”指业务允许但容易暴露适配问题的输入,例如接近应用上传上限的图片、长提示词或缺少可选字段的任务,不是绕过安全限制的测试。
先明确你的合格标准,再观察结果。例如,电商图必须保留包装文字,文章题图可能只要求画幅和主体正确;这两种任务不能用同一个“看起来不错”标准。未经核验的文字、品牌或客户素材不要自动交付。
预算按完整任务计算,别只比较每张标价
截至 2026-10-04,Google 的Gemini Developer API 定价页列出的美元 Standard 付费层图像输出折算价为:Nano Banana 2 的 1K 图片约 $0.067,Lite 的 1K 图片约 $0.0336;两者 API 均未提供免费层。这些是图像输出部分,不包含输入、文字/思考输出、重试和适用的搜索费用。
作为预算示意,1,000 张 1K 图片仅输出部分约为 $67 或 $33.60。这个乘法没有考虑失败、重做和人工修正,不能直接当作交付 1,000 张合格图片的总成本。
为同一批任务记录完整 API 费用、合格图片数量和人工修正时间。只对业务验收通过的候选比较成本;低输出单价无法弥补缺失的必需能力。初次迁移先设小批量和应用侧费用上限,不在尚未知道重试率时恢复所有积压任务。
报错时,先决定该修配置还是该重试
模型不可用、参数不匹配、计费未开通和暂时限流,应分别处理。以下检查顺序依据截至 2026-10-04 的官方排错指南整理;具体原因以实际响应为准。
- 模型或接口不匹配:核对正式版 ID、服务入口、API 版本和调用方法,不要因模型名相似就换到另一个 preview
- 参数错误:先退回最小请求,再逐项恢复画幅、分辨率、参考图和其他选项,定位是哪一项超出候选模型范围
- 权限或计费问题:检查项目、密钥权限和余额;重复发送同一请求不能修复这些配置
- 429 或暂时性服务错误:在错误适合重试时使用有上限的指数退避,并核对 SDK 已有的重试逻辑,避免应用层再次叠加无限重试
- 响应没有图片:检查返回状态、诊断信息和解析字段,不要把文本内容保存成图片,也不要默认所有无图响应都是故障
切换生产前,再确认以下事项:
- 代码、网关、队列和定时任务中的模型 ID 已核对
- 新模型在实际使用的项目与服务入口完成验证
- 原应用支持的编辑、格式和失败恢复路径均有测试记录
- 已记录计费口径、尝试次数和业务验收结果
- 已设失败时的降级方案:暂停任务、返回明确提示,或使用另外验收过的候选
如果旧模型已经不可用,回滚代码不会让旧服务恢复。保留上一版适配代码有助于定位问题,但生产降级必须指向仍可用且已验收的路径。