AI Tools
教程8 分钟2026年10月4日作者:AIGCDev

Gemini 2.5 Flash Image 迁移指南:选对正式版,验收旧请求

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 已核对
  • 新模型在实际使用的项目与服务入口完成验证
  • 原应用支持的编辑、格式和失败恢复路径均有测试记录
  • 已记录计费口径、尝试次数和业务验收结果
  • 已设失败时的降级方案:暂停任务、返回明确提示,或使用另外验收过的候选

如果旧模型已经不可用,回滚代码不会让旧服务恢复。保留上一版适配代码有助于定位问题,但生产降级必须指向仍可用且已验收的路径。

gemininano-bananaimage-generationapi-migrationdeveloper-tools