Gemini Omni Flash 把文生视频、图生视频和多轮有状态编辑统一到 Interactions API,适合创意原型与内部工具接入。
Gemini Omni Flash 是什么模型
Gemini Omni Flash 是 Google 面向视频生成与视频编辑的多模态预览模型,核心特点是把文生视频、图生视频和多轮有状态视频编辑放进同一套 Interactions API 流程里。
预览版使用须知
gemini-omni-flash-preview 仍是预览版。它适合实验、原型验证、创意工作流和内部工具接入,但不适合在没有兜底方案的情况下直接承担关键生产流程。
核心能力
- 文生视频:通过文字提示生成带音频的视频。
- 图生视频:上传参考图片,再用文本描述动作、镜头、场景和氛围。
- 有状态编辑:基于上一轮生成结果继续修改,通过
previous_interaction_id延续上下文。 - 上传视频编辑:用户视频可通过 Files API 上传,再把文件 URI 传给模型处理。
- URI 传送:对较大的视频文件,推荐使用 URI 而不是直接塞 base64。
最小调用方式
基础思路是创建一个 interaction,指定模型和输入文本,然后从返回结果中取出视频数据。
import base64
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-omni-flash-preview",
input="A marble rolling fast on a chain reaction style track, continuous smooth shot.",
)
with open("marble.mp4", "wb") as f:
f.write(base64.b64decode(interaction.output_video.data))
开发时应重点处理:
- 请求耗时和超时。
- 返回格式是否稳定。
- 视频文件落盘或对象存储策略。
- 生成失败、内容安全拦截和重试机制。
控制画幅和输出
短视频、广告素材和移动端内容通常需要明确画幅。文章建议把横屏、竖屏等画幅做成产品层选项,而不是完全依赖提示词描述。
示意:
interaction = client.interactions.create(
model="gemini-omni-flash-preview",
input="A futuristic city with neon lights and flying cars, cyberpunk style",
response_format={
"type": "video",
"aspect_ratio": "9:16",
},
)
图生视频接入
图生视频的输入通常由图片和文本两部分组成。图片可以作为主体参考、动作参考、风格参考或起始帧。
示意结构:
interaction = client.interactions.create(
model="gemini-omni-flash-preview",
input=[
{
"type": "image",
"data": base64_image,
"mime_type": "image/jpeg",
},
{
"type": "text",
"text": "Use this image as a reference and generate a cinematic product shot.",
},
],
generation_config={
"video_config": {
"task": "image_to_video",
},
},
)
提示词不要只写「让它动起来」。更可靠的写法应说明:
- 主体应保持哪些特征。
- 动作如何发生。
- 镜头如何移动。
- 场景、背景和光效如何变化。
- 哪些元素不能改变,比如产品外观或品牌标识。
有状态视频编辑
有状态编辑依赖上一轮 interaction。创建新 interaction 时传入 previous_interaction_id,即可基于前一次视频继续修改。
first = client.interactions.create(
model="gemini-omni-flash-preview",
input="A woman playing violin outdoors.",
)
second = client.interactions.create(
model="gemini-omni-flash-preview",
previous_interaction_id=first.id,
input="Make the violin invisible. Keep everything else the same.",
)
编辑提示要明确保留项。比如只想改一个局部,就应写清楚「其他部分保持不变」,否则模型可能顺手改掉构图、人物、光线或风格。
编辑用户上传视频
如果要编辑用户上传的视频,推荐先用 Files API 上传,再把文件 URI 作为输入传给 Gemini Omni Flash。这样比直接把大段 base64 放进请求体更稳定,也更适合后端任务队列和异步处理。
产品侧应提前设计:
- 文件大小、分辨率和时长限制。
- 上传、处理、生成、失败、过期等状态。
- 内容审核和地区限制。
- 失败后的降级方案。
- 原始文件与生成文件的存储生命周期。
大视频用 URI 传送
对大视频、长视频或高分辨率素材,URI 传送比 base64 更适合生产环境。后端可以通过 interaction id 轮询任务状态,例如:
GET /v1beta/interactions/{id}
这种方式更适合接入队列、对象存储、日志和前端进度条。
提示词写法
视频生成提示词要把「镜头」说清楚。一个更完整的提示通常包含:
- 主体:谁或什么物体。
- 动作:主体做什么。
- 镜头:单镜头、多镜头、推拉摇移、特写或全景。
- 场景:地点、时间、背景元素。
- 光线:自然光、霓虹、电影感、柔光等。
- 风格:真实拍摄、广告片、纪录片、动画等。
- 保留项:产品、人物、标识、构图或颜色。
- 排除项:不要改变、不出现、不生成的内容。
如果需要单镜头,应明确说明。若视频中需要文字,也要直接写出文字内容,否则模型可能生成不稳定或不可读的文本。
当前限制
文章列出的重要边界包括:
- 欧洲经济区、瑞士和英国不支持上传和编辑包含未成年人的图片。
- 欧洲经济区、瑞士和英国用户目前不能编辑上传视频,但可以编辑模型生成的视频。
- 不支持把 YouTube 视频作为媒体来源。
- 上传视频编辑与模型生成视频编辑不是同一类能力,产品上要区分。
这些限制会影响产品设计,尤其是面向全球用户或企业用户时,需要把地区、素材类型、审核策略和失败提示做进流程。
开发者接入建议
建议按从简单到复杂的顺序接入:
- 先接文生视频,跑通生成、状态、下载和错误处理。
- 加入画幅选项,比如 16:9、9:16、1:1。
- 接入图生视频,并限制图片格式、大小和数量。
- 加入提示模板,让用户围绕具体任务生成内容。
- 对大视频启用 URI 传送。
- 把地区限制、内容安全、文件失败和超时做成明确状态。
- 最后再开放多图片参考、时间码、文字渲染和复杂镜头模板。
产品形态建议
Gemini Omni Flash 更适合「创意工作流工具」,而不是单一聊天框。更自然的产品入口包括:
- 生成短广告。
- 让产品图动起来。
- 替换背景或光效。
- 把横屏素材改成竖屏版本。
- 给视频加字幕或屏幕文字。
- 基于上一版继续局部修改。
总结
Gemini Omni Flash 的价值在于把视频生成、图片参考和多轮编辑统一到 Interactions API 中。它还不是最稳妥的生产级视频管线,但已经适合用于创意原型、素材生成、内部自动化和面向任务的视频编辑工具。