Gemini Omni prompting:Google 写在文档里、却没人引用的 tag 语法
本周发表的 Omni prompt 建议,大多数是编的。
那个被六七篇指南引用的「出自 Google 官方文档的五要素框架」,我们在任何一个 Google 页面上都找不到,而引用它的那些指南连到底是五个要素还是六个都对不上。至于说把对白放进引号里会让模型切换到某种对口型模式,这个说法同样不在任何一份 Google 文档里——引号在 Google 的示例里只出现在需要渲染到画面上的文字那里。
Google 确实写进文档的东西更有用,而且几乎没有人写过:一套让一条 prompt 能按名字指向特定图像和片段的 tag 语法。这份指南就从这里开始。

关于下文的两点说明
这里引用的一切都出自 Google 自己的页面——Gemini Omni API 文档里的 prompt 指南章节,以及那份同时覆盖 Omni 和 Veo 的共用 prompting 指南。凡是 Google 没有说的地方,我们就说没有,而不是用一句听起来很权威的话把空缺填上。
下面这些片子是用Veo 3.1 Fast在我们自己的 API 上生成的,不是用 Omni。Gemini Omni 1.1 Flash 还没上 E2X,而我们不打算拿一个模型的画面去给另一个模型的指南做插图然后假装它出自后者。它们所演示的技巧——相机词汇、单镜头指令、声音的写法——来自 Google 为这两个模型共同发布的那份 prompt 指南,所以是可以迁移的。下一节的 tag 语法则不行:那部分是 Omni 独有的,我们只把它作为语法展示,而不是作为输出。
tag 语法
Omni 接受指向特定输入的内联标签。这是文档里第三方覆盖最少、而读一读收获最大的部分。
针对帧:
<FIRST_FRAME> a woman is walking
<LAST_FRAME> 标记要落到的那一帧,而 Google 明确说它*「必须与」*<FIRST_FRAME>一起使用。当一条 prompt 复杂到位置变得含糊时,还有一种显式的声明写法:
[# Sources <FIRST_FRAME>@Image1 <LAST_FRAME>@Image2]
把两个标签指向同一张图像,您就得到一个循环。Google 直接把这一点写进了文档——片子会回到它开始的地方:
[# Sources <FIRST_FRAME>@Image1 <LAST_FRAME>@Image1]
针对参考,标签是带编号的,而且从零开始:
in the style of <IMAGE_REF_0> a woman <IMAGE_REF_1> is walking
那一行同时从一张图像里取风格、从另一张里取主体。视频的对应写法是 <VIDEO_REF_0>,同样从零开始编号,并带一条硬限制:「视频参考最多支持 3 段片段,每段最长 3 秒」,而且参考片段里的任何音频都会被忽略。
这里的失败模式是模型把一个参考当成了字面上的开场帧。Google 给的办法是在 prompt 后面追加一条指令:
Use the given image(s) as references for video generation.
The images should not be used as literal initial frames.
在您围绕它做设计之前,有一条边界值得知道:*「不支持跨多个视频进行引用或推理。」*多张图像参考没问题——Google 自己的示例就用了六张——但多视频的 prompt 会退化。
除非您拦住它,Omni 会把您的片子切成好几个镜头
这是文档里最出人意料的一句话,而它解释了很多让人困惑的输出:
「默认情况下 Omni Flash 会尝试制作一个含有几个不同镜头的视频。它会试图根据 prompt 编排一段有意思的叙事。如果您需要输出视频只包含单个场景,您必须在 prompt 里明确要求」
要八秒的一个人走过门口,您可能会拿到它的三个剪辑。模型不是误读了您。它是在做它默认会做的事。
解法是一个从句,而 Google 给了三种说法:「In a single unbroken scene」、「In a single continuous shot」,或者*「No scene cuts」*。
下面就是这条指令在起作用,同时挂上了一个文档里写明的运镜和一句声音描述:
In a single continuous shot, no scene cuts. Slow dolly in on a battered
enamel coffee pot sitting on a cast-iron stove in a dim cabin kitchen.
Steam rises and catches a hard shaft of morning light from a window to the
left. Medium shot, shallow depth of field, warm amber and deep green
palette. Sound design: the low hiss of steam and a wood fire ticking.
No dialogue.
四秒,720p,用 Veo 3.1 Fast 以每秒一分钱生成。请注意那条 prompt 里形容词占的比例有多小,而模型可以照着执行的指令占了多少。
声音要用它自己的句子来指挥
音频是与画面一起生成的,而 Google 的建议是把它单独描述:*「我们建议您在 prompt 中使用单独的句子来描述音频。」*文档把它分成三类——音效、环境声和对白——每一类都有各自的示例。
对白正是民间传说搞错的地方。文档写明的写法是一个冒号,不带引号:
the man in the red hat says: Where is the rabbit?
Google 那个更长的示例在一条 prompt 里用了两位说话者,并以环境声收尾:
A medium shot in a dimly lit interrogation room. The seasoned detective
says: Your story has holes. The nervous informant, sweating under a single
bare bulb, replies: I'm telling you everything I know. The only other
sounds are the slow, rhythmic ticking of a wall clock and the faint sound
of rain against the window
Omni 自己的示例会在非语音音频前面加上 Sound design:,比如*「Sound design: Gentle breeze, distant bird chirps. No dialogue.」而当您明确想要音乐时,就要说出来——Google 特别标出这是最容易被漏掉的情况:「如果您想让视频里有音乐,这一点尤其重要」*。
有两条约束要围绕着设计:不支持语音编辑,而且*「当前版本的 API 不支持上传音频参考」*。您要么用词语来指挥声音,要么就没得指挥。
时间码可以用,而且在延伸时会重新计起
时间不需要特殊语法——「不需要精确的语法,您可以使用自然语言」,所以*「At 5s the chorus starts in the background audio」*是一条有效的指令。此外还有一种带方括号的时间码写法:
[0-3s] A person is walking
[3-6s] They stop and turn around
[6-10s] They start running
现在说那个陷阱,而它是真的会坑人。当您延伸一段已有的片子时,0s 不再表示视频的开头。它表示延伸部分的开头。Google 把这一点讲得很明白:
「如果使用时间戳或时间码语法,0s 指的是视频被延伸的那一部分的开头。如果延伸的是一段 10s 的视频,那么这条 prompt 里的场景切换会发生在 12s 之后」
所以 After 2s cut to a new scene 落在成片的第十二秒。任何按绝对时间码去做分镜表的人,都会在这上面错一次,然后再也不会错。
顺带说一句:延伸用的 prompt 应该描述续接的内容,而不是把整个场景重述一遍。Google 建议的写法短到只是*「Extend this video」或「The scene continues」,只在有东西变化时才补充——音频用「The music continues into the chorus」,要切镜头用「Show the same characters in the next scene」*。延伸只做追加;您不能在前面接,也不能往中间插。

编辑要的是更少的词,不是更多
上面说的一切都奖励细节。编辑把这一点反了过来:「简单的 prompt 在视频编辑上效果最好。过于描述性的 prompt 会导致意料之外的改动。」
Google 公布了它自己的前后对照,而它们值得当作一种模式来读,而不只是两个例子:
Avoid: In the video of the man sitting on the sofa, please add a small
black cat that runs from the right side of the screen, jumps onto
his lap, and then he starts to stroke its head while looking down.
Simplify: Add a cat that jumps onto his lap, he begins to pet it.
Keep everything else the same.
Avoid: Please remove the cell phone that the person is holding in their
hand and fill in the background so it looks like they are just
holding their hand empty.
Simplify: Make the phone invisible. Keep everything else the same.
两个例子里真正干活的那个从句是 「Keep everything else the same」,Google 建议只要您在编辑一个镜头的某一个方面,就把它带上。您多提供的每一处细节,都是模型可能决定重新生成的又一样东西。
图生视频又反过来:*「像『make it move』这样含糊的 prompt,效果不如对镜头运动、主体动作和环境效果的详细描述。」*生成要细节,编辑要简短。
Google 真正点了名的相机词汇
Google 公布了一份词汇表,它比在 prompt 技巧帖里流传的那些术语更可靠。它点名的运动方式有:static、pan、tilt、dolly in 和 out、truck left 和 right、pedestal up 和 down、zoom、crane、aerial 或 drone、handheld、whip pan、arc。角度有:eye-level、low、high、bird's-eye、worm's-eye、Dutch、close-up 和 extreme close-up、medium、full、wide 或 establishing、over-the-shoulder、point-of-view。光学效果有:wide-angle、telephoto、shallow 和 deep depth of field、lens flare、rack focus、fisheye,以及 vertigo effect——也就是 dolly zoom。
Google 还明确区分了 zoom 和 dolly,因为模型会把这两者搞混:zoom 改变的是焦距,而*「这和 dolly 不同,因为相机本身没有移动。」*
不过要把 Google 说了两遍的那条提醒带上:*「某些高级的相机角度并未获得官方支持。结果和可靠性可能会随整条 prompt 和您的具体用例而变化。」*点名一个运镜是一次请求,不是一份保证。
下面是一个 arc 镜头,属于文档里写明的运动之一,prompt 写得很朴素:
Slow arc shot travelling left around a weathered brass sextant resting on
an unrolled nautical chart on a scuffed wooden table. Low winter sunlight
rakes in from the right and the brass catches moving highlights as the
camera travels. Single continuous shot, no scene cuts, shallow depth of
field. Sound design: faint harbour ambience, rigging tapping in wind.
No dialogue.
电影和剪辑术语也写进了文档——match cut、jump cut、establishing shot sequence、montage、split diopter effect。而那些您可能见过、被安在 Google 头上、但并不在这两个页面上的术语有:oner、push in 和 natural smartphone zoom。
负面 prompt:两个 Google 页面互相打架
Omni 没有负面 prompt 参数。API 文档说得很直白:「不支持系统指令、temperature、top_p、停止序列和负面 prompt(您可以把否定内容放进普通 prompt 里:例如『Do not do X』)。」
而 Omni 的 prompt 指南推荐的正是这一套,它建议写*「No dialogue」、「No embellishments」、「No extra sound effects」*。
Google 那份 Omni 与 Veo 共用的指南,在措辞上说的却是反话:
「不推荐:使用指令性的语言,或者『no』『don't』这类词。例如,避免写『no walls』或者『don't show walls』这样的 prompt。推荐:描述您不想看到的东西。例如,『wall, frame』」
我们不打算假装能把这一处理清楚。最可能的解释是,第二个页面描述的是 Veo 专门的 negativePrompt 字段——而 Omni 并没有这个字段——同时 Omni 页面描述的是散文式的否定,也就是 Omni 唯一提供的东西。这是推断,不是 Google 说过的话。实操上:给 Omni 用 Omni 页面的措辞,而如果某个否定被忽略了,先试试另一种写法,再去断定模型做不到。
还有一处诚实的自相矛盾,因为它会影响您能对客户承诺什么。Omni 的 prompt 指南说模型渲染画面上的文字*「以一种正确且可读的方式」。DeepMind 的模型卡则把「渲染完全准确的文字」列进了「仍然是一项挑战」*的东西里。两份都是 Google。在承诺之前先测。
一份真的能用的清单
从上面这些整理出来,一条尊重模型实际行为方式的 prompt 通常带着:
- 一条关于镜头数量的指令,因为多镜头是默认行为,而这多半不是您想要的
- 主体和它的动作,写具体——不是「make it move」
- 一个文档里写明的运镜,从 Google 的列表里点名
- 光:方向、质地、颜色
- 声音单独一句,如果不是对白就加
Sound design:前缀 - 对白写成
speaker says: line,冒号,不带引号 - 任何否定都作为简短的散文从句放在结尾
- 只针对编辑:把上面这些大部分删掉,然后加上「Keep everything else the same」
Google 自己对结构的总结更长——主体、动作、场景、机位角度、相机运动、镜头、视觉风格、时间元素、音频、电影术语、否定——同时带着一句宽慰:「您不需要在每条 prompt 里用上所有元素」。
今天在哪里跑这些
prompting 是一门靠反复失败才学得会的手艺,这就让每一次失败的价格成了最要紧的那个数字。在Veo 3.1 Fast上做一次四秒的测试要花四美分。同样的测试在Gemini Omni 1.1 Flash上要花三十六美分——它自 2026 年 8 月 28 日起就在我们这里上线了,每秒九美分;如果先在 360p 上打草稿,大约十二美分,而这一档正是 1.1 这次发布为此加进来的。用一个下午去摸清一条相机指令从哪里开始不再被执行,那个差价决定了您能错上多少次。
所以把可迁移的那一半便宜地练透——镜头数量、相机词汇、声音的写法、否定——这些全都出自 Google 为两个模型共同发布的那份指南。上面那两段片子正是这么做出来的。等到您需要只有 Omni 家族才做得到的东西时再往上走:tag 语法、延伸,以及由参考驱动的一致性。关于本文着墨最多的那些帧标签,有一点要说:它们现在有了自己的端点,首尾帧生视频改成把那两张帧当作字段来传,而图生视频对单张开场静图也是同样的做法。一路上,Veo 3.1 Fast 仍然能覆盖图生视频和首尾帧的练习。以上为截至 2026 年 8 月 28 日的现行价格。
1.1 到底发布了什么和榜单对它究竟怎么说我们分别写了两篇。按活儿从文生视频浏览,或者如果您宁愿 diff 参数而不是读散文,去读机器可读的规格。
价格和产品条款都可能变化。在做采购决定之前,请核对各家服务商当前的定价。
常见问题
该怎么给 Gemini Omni 1.1 Flash 写 prompt?
先写明镜头数量,因为 Omni 默认产出多个镜头,而您通常只想要一个。然后描述主体和它的动作、一个点了名的运镜,以及光线。把音频放进它自己的句子里,非语音的加上「Sound design:」前缀,对白写成「speaker says: line」,用冒号,不带引号。任何否定作为简短从句放在结尾。
Gemini Omni 里的 FIRST_FRAME 标签是什么?
它是一个内联标签,告诉 Omni 把您提供的某张图像用作开场帧,写法是标签后面跟上您的描述。它的搭档 LAST_FRAME 标记要结束在哪一帧,而按照 Google 的文档,它必须与 FIRST_FRAME 一起使用。把两个标签指向同一张图像,会产出一段循环的片子。
Gemini Omni 支持负面 prompt 吗?
不作为一个参数支持。Google 的 API 文档写明不支持负面 prompt,并让您把否定内容放进普通 prompt 里,比如「Do not do X」。Omni 的 prompt 指南建议写「No dialogue」或「No extra sound effects」这样的简短从句。Google 那份 Omni 与 Veo 共用的指南则不建议这种措辞,而那看起来描述的是 Veo 独立的负面 prompt 字段,而不是 Omni。
为什么 Gemini Omni 会加上我没要过的场景切换?
因为多镜头是默认行为。Google 的文档说,除非另有交代,Omni 会尝试制作一个含有若干镜头的视频,并从您的 prompt 里编出一段叙事。往 prompt 里加上「In a single continuous shot」或者「No scene cuts」,就是文档给出的解法。
延伸一段 Omni 视频时,时间戳是怎么算的?
它们会重新计起。一旦您延伸了一段片子,0s 指的是延伸部分的开头,而不是原片的开头。Google 的例子是:延伸一段 10 秒的视频,在 2s 处给一条指令,那一刻会落在成片的第 12 秒。延伸只做追加——您不能在前面接内容,也不能编辑片子的中间部分。
Gemini Omni 的对白该放进引号里吗?
不该。Google 写进文档的形式是「speaker says: line」——一个冒号,不带引号。那个被广为转述的、说引号会触发对口型模式的说法,在任何 Google 文档里都没有出现过。引号在 Google 的示例里只出现在打算渲染到画面上的文字那里,混淆很可能就是从这里开始的。
练习 Omni prompting 要花多少钱?
在我们的 API 上,Gemini Omni 1.1 Flash 在 720p 下是每秒 0.09 美元,所以一次四秒的测试是 0.36 美元,如果先在 360p 上打草稿则约 0.12 美元,截至 2026 年 8 月 28 日。Veo 3.1 Fast 是每秒 0.01 美元,同样的测试是四美分。既然相机、镜头数量和音频这些技巧来自 Google 为这两个模型共同发布的那份 prompt 指南,在更便宜的那个上练习花的钱是九分之一,练的却是同一批习惯。