Gemini Omni Flash 是 Google 在 Gemini API 中提供的预览版多模态视频模型,模型名为 gemini-omni-flash-preview。它面向高速视频生成、视频编辑和镜头控制,重点不只是“根据一句话生成视频”,而是把文本、图片、音频、视频和多轮交互放进同一个工作流里。
这类能力最值得关注的地方,是视频生成开始从一次性输出走向可迭代编辑。开发者可以先生成一段视频,再用后续提示修改光效、背景、物体、文字或风格,并通过 previous_interaction_id 让模型沿用上一轮视频状态。对短视频工具、广告素材、产品演示、教育内容和创意原型来说,这比每次重新生成更接近真实工作流。
需要先明确一点:Gemini Omni Flash 目前仍是预览版。它适合实验、原型验证和内部工具接入,但不应该在没有兜底方案的情况下直接承担关键生产流程。
Gemini Omni Flash 能做什么
官方文档把 Gemini Omni Flash 定位为高性能多模态模型,核心能力可以概括为三类:
- 文生视频:输入文字提示,生成带音频的视频。
- 图生视频:上传参考图片,再用提示描述动作、镜头和氛围。
- 有状态视频编辑:基于上一轮生成的视频继续修改,不必完整重述所有画面细节。
它和传统视频模型的差异主要在“交互”。通过 Gemini API 的 Interactions API,一次生成或编辑会成为一个 interaction。后续请求可以引用之前的 interaction,让模型理解上下文,并尽量保留未被要求修改的内容。
最小调用方式
Gemini Omni Flash 使用 interactions.create 调用。最简单的文生视频请求只需要模型名和提示词:
|
|
如果直接走 REST API,请注意响应结构和 SDK 有差异。SDK 会提供 interaction.output_video 这样的便捷字段;REST 响应里通常需要从 steps 数组里的 model_output 找到视频内容。
控制画幅和输出
默认输出是横屏 16:9。如果要生成竖屏视频,可以在 response_format 中设置 aspect_ratio:
|
|
这对短视频、广告素材和移动端内容尤其重要。建议在产品层把横屏和竖屏作为明确选项,而不是让用户只在提示词里描述,因为参数比自然语言更稳定。
图生视频怎么接入
图生视频的输入是图片加文本。图片可以作为动作参考、主体参考、风格参考或起始帧。最基本的输入结构是:
|
|
实际使用时,不要只写“让它动起来”。更好的提示应说明动作、镜头、场景、光效和需要保留的元素。例如产品图生成短视频时,可以写清楚产品应保持外观一致、镜头如何移动、背景如何变化,以及不要改变品牌标识。
如果输入里有多张图片,建议用 video_config.task 指明任务类型,减少模型猜测:
|
|
task 可用于区分 text_to_video、image_to_video、reference_to_video 和 edit。对应用开发来说,这是一个值得暴露给高级用户或内部模板系统的参数。
有状态视频编辑
有状态编辑是 Gemini Omni Flash 更像“创作工具”而不是“单次生成接口”的地方。第一轮生成视频后,第二轮可以用 previous_interaction_id 引用上一轮结果:
|
|
这里的关键不是写长提示,而是写准改动。官方提示指南也强调,视频编辑通常更适合短指令。要修改某个局部元素时,可以追加 Keep everything else the same.,减少模型把其他画面也一起改掉的概率。
编辑自己的视频
如果要编辑用户上传的视频,官方建议先通过 Files API 上传视频,再把文件 URI 作为输入传给 Gemini Omni Flash。原因很简单:视频文件可能很大,直接塞 base64 不利于请求体大小和稳定性。
接入这类功能时,产品层至少要处理四件事:
- 上传后轮询文件状态,确认不再是
PROCESSING。 - 处理
FAILED状态,并给用户可理解的失败原因。 - 对大文件、长视频和高分辨率素材设置明确限制。
- 在不支持上传视频编辑的地区隐藏或降级该功能。
官方文档也提醒,并非所有地区都支持编辑上传视频。面向全球用户时,不要把“可编辑模型生成视频”和“可编辑用户上传视频”混为一谈。
大视频建议使用 URI 传送
如果生成视频超过 4MB,建议在 response_format 里使用 delivery: "uri"。这样响应返回的是 Google 托管 URI,客户端再轮询状态并下载视频,而不是在 JSON 里直接返回一大段 base64。
这对 Web 应用很实用:前端可以先显示任务进度,后端负责轮询和下载,避免浏览器处理巨大的内嵌响应。需要注意的是,官方文档提到 GET /v1beta/interactions/{id} 目前可能仍会在 data 字段返回内嵌 base64,uri 字段只保证在初始创建响应或 SSE 流里提供。因此如果你的流程依赖 URI,最好在创建请求的响应阶段就保存好相关信息。
提示词写法:把镜头说清楚
Gemini Omni Flash 默认可能生成多个镜头。如果你需要单镜头,要明确写:
- 单个不间断场景;
- 连续镜头;
- 不要场景剪辑。
如果你需要控制节奏,可以用自然语言描述时间点,例如“3 秒后人物进入画面”,也可以写成 [0-3s]、[3-6s] 这样的时间段。对广告、教程和产品展示来说,这比只描述画面更可控。
视频里需要文字时,也应该把文字内容直接写清楚。模型可以尝试渲染可读文字,但如果提示里没有定义招牌、字幕或屏幕文字,它可能会生成不稳定或无意义的文本。
当前限制
Gemini Omni Flash 预览版还有不少边界,接入前需要认真看一遍:
- 欧洲经济区、瑞士和英国不支持上传和编辑包含未成年人的图片。
- 某些可识别人物的图片不支持上传和编辑。
- 欧洲经济区、瑞士和英国用户目前不能编辑上传视频,但可以编辑模型生成的视频。
- 当前 API 不支持上传音频参考。
- 不支持跨多个视频进行引用或推理。
- 不支持视频扩展、视频插值和语音编辑。
- 不支持预配吞吐量。
- 不支持系统指令、温度、
top_p、停止序列和负面提示等常见生成参数。 - 不支持把 YouTube 视频作为媒体来源。
这些限制会直接影响产品设计。比如面向企业用户时,要把地区、人物素材、上传视频、审核策略和失败提示都放进流程,而不是只做一个输入框和生成按钮。
开发者接入建议
如果你准备把 Gemini Omni Flash 接进自己的应用,可以按这个顺序做:
- 先做文生视频 MVP,只支持
16:9和9:16两种画幅。 - 增加图生视频,限制上传图片格式和大小,并提供提示模板。
- 再做有状态编辑,把每轮
interaction.id存到任务记录里。 - 对大视频启用 URI 传送,避免 base64 响应拖垮前后端。
- 把地区限制、内容安全失败、文件处理失败和超时都做成明确状态。
- 最后再开放多图片参考、时间码、文字渲染和更复杂的镜头模板。
它现在更适合“创意工作流工具”而不是普通聊天接口。好的产品体验应该围绕任务来组织:生成短广告、让产品图动起来、替换背景、修改光效、加字幕、做竖屏版本,而不是把所有能力都塞进一个自由文本框。
小结
Gemini Omni Flash 的价值在于把视频生成、图片参考和多轮编辑放进同一个 Interactions API 流程里。它不是最稳妥的生产级视频管线,但已经很适合做创意原型、素材生成工具和内部自动化流程。
真正接入时,重点不只是会调用 gemini-omni-flash-preview,而是要把任务状态、文件上传、地区限制、提示模板和失败处理一起设计好。视频模型越强,产品层越需要把边界说清楚。