你在图生视频里写“镜头缓缓推近”,跑三次得到三件不同的东西:一次像手机变焦,画面均匀放大但空间变扁;一次几乎不动;还有一次推到第三秒脸开始变形,第五秒已经贴满画面。

这都不是词写错了。镜头运动在生成模型里不是一个动作,而是一种要猜的视觉效果。猜这个效果,和真正执行“把摄像机往前推”这个动作,是两码事;工具自带的镜头参数只解决了其中一半。

先接受一件事:模型里没有摄像机

三维动画里摄像机是真的:场景由带坐标的物体组成,镜头有位置、朝向、焦距,渲染就是从这个位置往外看。所以“摄像机往前挪两米、推到特写”是一条能被执行的计算指令,走了两米就是两米。

生成视频的模型里没有这套东西。它拿到的是训练视频里“像素怎么随时间变化”的统计规律。上一篇讲过,跨帧注意力和时间压缩处理的对象全是潜空间里的数值——里面没有三维坐标,也没有一个叫“摄像机”的变量。

所以提示词里出现“推近”,模型收到的不是一条路径,而是一句关于 画面会怎么变 的描述。它在做的是:想起“被标注为推镜的片段通常长什么样”,再合成一段看起来像那样的像素变化。

模仿结果,而不是执行原因。后面几节说的毛病,基本都是这句话的分支。即使工具给你一条可拖动的镜头路径,那条路径也只是作为额外条件喂进同一个去噪过程,它规定得了“往哪走”,仍然规定不了“走过去会看到什么”。

它偏爱变焦,因为变焦不用造新东西

推轨(dolly in)和变焦(zoom in)在单帧上几乎一样:主体都变大。区别在动起来之后。推轨是机位真的前进,近处的东西移动快、远处的慢——这叫视差;前景物体一路冲出画面边缘,原来被它挡住的背景一块块露出来。变焦是焦距变了、机位没动,画面像被均匀放大,没有视差,也不会有新东西露出来。

对模型来说这两件事成本差得很远。变焦近似于把已有画面按半径放大,每个像素的来源大致还在原处附近。推轨要在每一帧补上刚露出来、此前从未出现过的背景——一次一次地补全,每一次都可能编错。而时间压缩又逼着相邻几帧必须高度相似,这种“每帧都要新造遮挡区”的运动正好撞在最吃力的地方。

于是有个一致的经验现象:你写 dolly in,多数模型仍给你偏变焦的整体放大3。这不一定是它不认识这个词,而是那条路对它更省力。要真的推出视差,得把差别写成它能用的排除项:摄像机物理前进、焦距保持不变、背景透视随之改变2。

一个短语,缺了一整串属性

“slow dolly in”听起来完整,其实只给了方向和一点模糊的速度。一次真实的镜头运动还有:从什么景别到什么景别、几秒内完成、匀速还是缓入缓停、路径直还是带弧、结束停不停住、焦距变不变、这期间主体在不在动。

这些没说出口的,每一项都是模型要填的空4。填法来自它见过的素材——影视和商业素材里最常见的推镜是中等幅度、几秒内走完、结尾轻轻停住。所以默认输出常常是:幅度中等、比你想的快、没有明确终点。你觉得“我都说了缓缓”,它觉得“你已经给了方向和大概”。

这也是提示词作为约束的性质:它缩小采样范围,不指定唯一的点,而镜头运动的自由度恰恰不在“做什么”,而在“多快、到哪停、中间怎么走”。

时长会把这件事放大到肉眼可见:同一句 slow push in,放在 5 秒和 10 秒里不是一回事。10 秒版本要么慢到看起来在漂,要么沿用 5 秒的节奏,推到第 7 秒脸已贴满画面。文字条件是整段共用、没有时间表的,怎么分配由模型自己定。

还有第二种错法:谁在动

像素层面,“主体变大”至少有三个来源:机位前进、主体走近、镜头变焦。模型必须决定把这个变化记在谁头上,这个决定叫运动归属(motion ownership)2。

主语不清时,它自己选。写了“镜头向女人推近”,出来的可能是女人朝镜头走来——画面上的运动没差,叙事全错。修法不是加形容词,是把角色写死:镜头动,主体保持不动2。镜头和主体同时动时,用一个动词说出两者关系:“镜头跟着骑车的人”,比“推近,人物在骑车”清楚,因为前者规定了镜头相对主体的职责1。

工具自带的镜头参数,管的和不管的

正因为文字留白太多,主流工具都把一部分运动搬到了生成前的显式设置:方向(左摇、右摇、升、降、推、拉、环绕)和幅度(强度滑杆)。

以 Kling 的接口为例,六个数值各管一件事:水平位移、垂直位移、摇、俯仰、滚转、变焦,范围 −10-10 到 1010,正负表示方向;并且 simple 模式下要求只有一个非零5——它承诺的是单方向、整段一致的一种运动,不是一个有时间表的调度。

它买到的是 方向明确、可复现:同一组参数跑十次走同一条路,这正是文字给不了的。它买不到的是运动为什么发生、移动过程中画面里该出现什么——参数不知道你摇过去是为了让门后的人入画。还有一个实际限制:同一个请求里,尾帧、运动笔刷和镜头参数只能选一个5,因为它们都在规定“整段画面该怎么变”,同时给会互相打架。

分工怎么写

一句原则:参数管怎么动,提示词管为什么动、动的时候画面里出现什么。

绘制中

检查一段镜头时按这几条走:

  1. 需要对得上剪辑、要能重跑,就用参数定方向和幅度。
  2. 把目的写成画面结果,别写情绪词。“推近到能看清他手里的照片”比“推近,营造紧张感”有用,因为前者给了模型一个终点,它才知道该停在哪1。
  3. 速度写死:慢、稳、几秒内完成。模型没有默认镜头速度,不写就按它自己的节奏来1。
  4. 一段给一个主运动。堆三个动词(推+摇+升),模型多半挑一个,或者混成一团漂移1;要两个运动就拆成两段生成再接。新一些的模型对分阶段描述宽容得多——与其并列动词,不如说清每个阶段画面里出现了什么1。
  5. 排除最容易混的那个(写推轨就加“不要变焦、焦距不变”),也别双重指挥:参数设了往右摇,提示词里就别再写往左摇,两层冲突会出扭曲的运动1。

最后两条判断能省很多试错:画面几乎不动 时先别加词,图生视频里起始帧这根锚会把运动压住,文字常常喊不动它,调运动强度比改句子有效——管“动多少”的本来就是一个数值,不是一个词;画面在动但动错了人 时,改主语,别改速度。