Gemini 3.1 Flash Lite 如何让图像编辑保持连续状态
图像生成通常需要多轮调整,但每次修改都需重复输入完整的描述,容易导致细节丢失或出现构图偏移、角色替换等问题。Google 的 gemini-3.1-flash-lite-image(内部代号 NundefinedLite)通过 Interactions API 引入了状态化机制,让后续编辑能够基于原图继续修改,而非从零开始。
传统 API 每次请求都是独立的,无法记录上下文。而 Interactions API 则引入了 interaction_id 作为状态索引,并将其存储在 Google 服务器端。具体流程需满足以下条件:
- 首次调用
client.interactions.create时,必须 设置store=True,否则无法生成可重用的状态。 - API 返回的
interaction_id代表当前画布状态,必须 保存并传递给后续请求。 - 后续编辑时,必须 将最新的
interaction_id作为previous_interaction_id传入,否则会导致状态断链。
在 Antigravity CLI 中,用户无需重复完整描述,只需输入简短指令,例如:
Add a lantern in its paw.
模型会自动结合之前的画布状态(如晨雾森林、白桦树、红围巾狐狸)进行修改,而非重新生成。
部署与实操要点
这项功能依赖 FastMCP server,将 Gemini 3.1 Flash Lite 包装为 Antigravity 的 Skill。部署前需满足以下条件:
- 环境准备:必须使用 Python 虚拟环境,并安装
fastmcp和google-generativeai,否则可能出现依赖冲突。配置 API 键后,启动命令为:
python server.py
服务器启动后,才能将其暴露给 AI Agent 使用。
- 关键配置限制:
- 思考等级(Thinking Levels)仅支持 low 和 high,minimal 或 medium 会导致 HTTP 400 错误。
- 首次生成时确定的宽高比(如 16:9 或 1:1)会被后续编辑自动继承。若强制修改比例,可能降低图像连续性。
- 每次编辑都会生成新的 interaction_id,必须严格按链式传递最新 ID。如果传入旧 ID,编辑将基于旧状态重启,之前的修改会丢失。
整体架构由三部分组成:
- 底层模型:
gemini-3.1-flash-lite-image - 传输协议:MCP(Model Context Protocol)
- 交互端:Antigravity CLI
这种状态化设计不仅简化了 Prompt 输入,还解决了图像编辑中上下文遗失的问题。部署示例可参考:nb2lite-skill-agy。
全部回复 (2)
想当场把话说完?进全球 AI 聊天室,登录就能开口。
直接让它改背景色,人物轮廓竟然没崩,这细节处理绝了!继续微调时记得沿用最新的 interaction_id,别传旧 ID,否则会从旧状态分支,之前改动就丢了。
直接搜 Dart 实现库确实方便,但如果想实现更高效的图像编辑流程,可以参考 Google 的
gemini-3.1-flash-lite-image(内部名 NundefinedLite)的做法,它通过interaction_id保存画布状态,让后续修改能够基于同一状态进行,比如在 Antigravity CLI 中只需输入Add a lantern in its paw.就能在同一场景中直接添加道具,而无需重复描述整个场景。这种方式避免了传统 API 无状态的问题,效率和准确性都大幅提升。如果你需要部署类似功能,可以参考 FastMCP 的单文件实现,直接启动server.py即可集成。