← 论文解读

Code Video Model:用代码确定镜头,让视频模型补充外观

代码可以精确指定物体轨迹、相机和事件时间,但程序渲染往往缺少真实感。Code Video Model 用 Three.js 生成代理视频,再仅在前 25% 的采样步骤中施加它的条件,让冻结的视频模型兼顾结构与参考图外观。本文拆解条件调度、22 个案例上的实验,以及程序可控与成片精确一致之间的边界。

作者: Zhiyang Liang、Jiawei Zhang、Gordon Guocheng Qian、Dongdong Chen、Ziyu Wan(Project Lead)
单位: Microsoft Research

1. Motivation:怎样把想要的镜头变成可以修改的规格?

“让机器人从桌子左边绕过去,再把相机转到它身后”是一段容易理解的描述,却没有唯一确定路径、距离、转弯时刻与镜头速度。视频生成模型需要在内部补齐这些决定。成片不符合预期时,用户通常继续修改提示词并重新采样,很难只调整一个明确的参数。

物理行为也有类似问题。画面中的摆锤可以看起来合理,但摆动周期不一定符合设定;碰撞可以具有视觉冲击力,却未必遵守给定的动力学。视频的真实感与运动是否满足指定方程,是两项不同的要求。

图形程序提供了可检查的控制方式:物体的位置、相机轨迹、事件时刻都能写成变量和函数,已有数学模型的运动也可以显式计算。不过,简单几何体与平面材质生成的画面通常像预演动画。手工把它打磨成真实视频,需要大量建模、材质和灯光工作。

Code Video Model 将这两种能力组合起来:先让编码 Agent 写出可执行的镜头,再让预训练视频模型把它转化为具有目标外观的成片。 程序渲染的代理视频(proxy video)承担电影制作中 previs,即拍摄预演的作用,使结构可以先被检查和修改。

参考图、Three.js 代理视频与 Code Video Model 成片对比,展示相同场景结构下的外观变化

图 1. 左侧参考图提供目标外观,中间代理视频表达镜头结构,右侧为生成结果。对应原报告 Figure 1。图源:Code Video Model。

2. Insight:需要控制的不只是条件内容,还有条件出现的时机

2.1 代理视频同时携带有用结构和不想保留的外观

代理视频包含物体布局、遮挡、运动与相机路径,但这些信息和粗糙材质共同存在于像素中。直接把代理视频交给 reference-to-video(R2V)模型,并要求它生成真实画面,模型仍可能沿用低多边形、平面着色的视觉风格。参考图和提示词并不一定能覆盖这种影响。

因此,难点不仅是“把代码渲染给模型看”,还包括如何保留代理视频的结构约束,同时让参考图决定材质、光照和细节。作者没有为此训练一个新控制模块,而是考察冻结模型在不同采样阶段对条件的依赖。

2.2 早期建立结构,后期减少代理外观的影响

报告的消融发现,在最初几个采样步骤中使用代理视频,已经能够形成较强的布局、运动和相机控制;持续使用则更容易把代理的合成外观带入成片。把同样数量的条件步骤移到采样末尾,结构控制又明显下降。

据此,early-step conditioning 只在前 KK 步提供代理视频,之后移除它,提示词与外观参考图则贯穿全部采样。默认共采样 20 步,前 5 步使用代理,后 15 步由文字、参考图与预训练先验继续生成。

这里的 25% 指采样步骤比例,不是只约束视频开头四分之一的帧,也不是把一段视频分成两种生成模式。每一步处理的都是正在形成的完整视频表示。

2.3 精确控制首先发生在程序中

改动程序中的路点,能够明确改变代理里的机器人路线;冻结物体的物理时间,同时推进相机时间,就能构造“动作停住、镜头环绕”的子弹时间效果。这些控制具有明确的程序语义。

最终视频仍由生成模型合成,可能偏离代理中的边界、姿态或空间关系。因而需要区分两层能力:程序是否正确表达了镜头,视频模型是否忠实实现了这个镜头。论文的综合分数提升,并不意味着这两层之间已经达到逐帧、逐像素的一致。

3. Method:从可执行镜头到分阶段条件生成

Code Video Model 流程图:提示词生成 Three.js 程序,渲染代理视频并重绘参考帧,代理仅在前 25% 的采样步骤提供条件

图 2. 程序、代理视频、参考图与冻结视频模型之间的关系。摩托车示例通过分离物理时间与相机时间实现子弹时间。对应原报告 Figure 3。图源:Code Video Model。

3.1 Agent 编写的是一段完整镜头

给定提示词 pp,编码 Agent 生成 Three.js 程序 PP,执行后得到代理视频 VcV_c:

P=Agent⁡(p),Vc=Render⁡(P).P=\operatorname{Agent}(p),\qquad V_c=\operatorname{Render}(P).

程序同时指定几何、物体运动、相机、事件顺序、帧率和时长。实验使用 GPT-6 作为编码 Agent,先生成完整场景,再渲染关键帧和多帧拼图,检查构图、遮挡、轨迹与时间,针对最明显的偏差继续修改。

生成提示还要求场景在任意时间戳都具有确定状态:即使按乱序查询时间,也应得到一致的物体、相机、姿态与可见性。这使渲染不依赖实时运行速度或未经控制的随机状态。代理场景由程序构建,不使用外部图像或视频充当纹理、背景或覆盖层。

已有数学描述的运动可以通过方程计算;未指定的视觉细节则允许简化。报告称代理视频渲染耗时少于一分钟,这个说法针对代理渲染环节,没有给出包含编码迭代、参考图生成和最终视频采样的完整延迟与成本统计。

3.2 用代表帧建立外观参考

用户可以直接提供参考图 IrI_r。默认流程从程序中渲染一个代表帧,再用图像模型将其改为目标外观;主实验使用 GPT-Image-2。

参考图生成提示要求保留物体数量、位置、轮廓、相机和遮挡,只改变材质、光照与真实感。对于场景编辑、机器人形态替换或路线变化的成对案例,第二张参考图以第一张为基础,仅编辑目标差异,减少无关内容变化。

这些是输入构造时的约束,不能保证图像模型始终严格遵守。参考图中的主体与代理主体越对应,后续视频模型越容易把外观附着到正确对象上;主体拓扑差异较大时,条件之间会发生冲突。

3.3 保留两条原生条件通路

主实验冻结 MiniMax-H3 的 R2V 模型。它通过两条通路接收视觉参考:基于 Qwen3-VL 的多模态编码器 QQ,以及视觉 VAE 编码器 EE。提示词 cc 在原始描述之外,简要声明参考图负责外观、代理视频负责时空结构。

由于多模态编码器联合处理文字和视觉输入,加入代理视频会改变整体编码结果:

q−=Q(c,Ir),q+=Q(c,Ir,Vc).q^-=Q(c,I_r),\qquad q^+=Q(c,I_r,V_c).

对应的两套条件为:

Cbase=(q−,E(Ir)),Cfull=(q+,E(Ir),E(Vc)).C_{\mathrm{base}}=(q^-,E(I_r)), \qquad C_{\mathrm{full}}=(q^+,E(I_r),E(V_c)).

这一点关系到如何实现“移除代理”:后半程不仅需要去掉代理视频的 VAE 条件,还要切换到不含代理的联合编码状态 q−q^-。只删除其中一路,并不等价于论文定义的调度。

两条通路并非完全独立的“语义”与“几何”开关。实验发现 VAE 对运动和结构影响更强,编码器对外观影响更明显,但它们仍会共同影响结果。论文保留两条原生通路,并对代理条件使用相同的时间安排。

3.4 在前五步之后切换条件

以从噪声走向成片的采样顺序编号 i=1,…,Ni=1,\ldots,N,条件调度为:

Ci={Cfull,i≤K,Cbase,i>K.C_i= \begin{cases} C_{\mathrm{full}}, & i\leq K,\\ C_{\mathrm{base}}, & i>K. \end{cases}

默认 N=20N=20、K=5K=5。模型权重不更新,不增加控制网络,也不对代理输入加噪。与 SDEdit 从加噪代理潜变量初始化生成不同,这里将干净代理作为外部参考,只改变模型能够使用它的采样阶段。

“无需额外训练”描述的是这套控制方法:它仍依赖预训练编码、图像和视频模型的能力。KK 也仍是需要选择的参数,默认 5 步的有效性来自当前模型与实验设置,尚不能推广为所有采样器都适用的固定比例。

4. Experiments:收益来自怎样的结构与外观取舍?

4.1 22 个案例、三类评分与统一生成设置

CodeVideoBench 包含 22 个案例,覆盖八类应用:游戏、产品摄影、建筑镜头、物理行为、子弹时间各 2 例,场景编辑、机器人仿真、轨迹变化各 4 例。主实验生成分辨率为 960 × 544、时长 5 秒的视频,采用默认 guidance 和 20 个采样步骤。

学习式基线包括使用深度条件的 VACE、使用光流的 Go-with-the-Flow,以及使用三维跟踪信号的 Diffusion as Shader,控制信号均从相同底层程序导出。无需额外训练的基线与本文方法共用冻结的 MiniMax-H3,包括纯文字生成、全程代理 R2V 和 SDEdit。

三个裁判分别是 QwenVL-3.8-27B、GPT-5.6 与 GPT-6,独立评价以下维度,每项为 0–100 分:

维度 主要检查什么 不能直接说明什么
Structure 与代理的构图、相机、物体运动、事件及时间是否一致 不是三维轨迹或像素位置的直接误差
Style 摄影真实感,以及材质、光照等是否符合参考图 不是任意艺术风格的对称相似度
Quality 运动连续性、物体持续性、闪烁与形变等 平滑运动也可能走错指定路线

Style 尤其需要结合评分细则理解:其最终值为 min⁡(r,0.7r+0.3s)\min(r,0.7r+0.3s),其中 rr 是摄影真实感,ss 是参考风格匹配。即使成片忠实匹配一张风格化参考图,分数仍受摄影真实感上限约束。Structure 和 Quality 则对严重失败设置分数上限,避免其他子项掩盖核心缺陷。

每个裁判的 Overall 是三大维度的算术平均;论文不对不同裁判做标定或跨裁判平均。因此,下列数字是各自评分协议下的综合评价,不能解释成任务成功率。

4.2 综合分数最高,结构分数并非最高

下表摘录原报告 Table 1,保留两位小数。Qwen-27B 是表中对 QwenVL-3.8-27B 裁判的简称。

方法 视频基座 Qwen-27B GPT-5.6 GPT-6
VACE Wan 74.29 73.10 80.59
Go-with-the-Flow CogVideoX 48.48 55.23 65.84
Diffusion as Shader CogVideoX 59.28 67.66 72.90
Text-to-video MiniMax-H3 63.80 67.59 69.09
全程代理 R2V MiniMax-H3 75.22 78.72 80.94
SDEdit MiniMax-H3 64.37 68.66 69.22
Code Video Model MiniMax-H3 85.17 82.09 85.82

Code Video Model 在三个裁判下均取得最高 Overall。相对最强学习式基线 VACE,提升分别为 10.88、8.99、5.23 分。不过,两者的视频基座和控制表示不同,这个比较反映完整系统表现,无法把差异全部归因于 early-step conditioning。

更直接的证据是与同基座全程代理 R2V 的比较。以 GPT-6 裁判的 Table 4 分项为例:

方法 Structure Style Quality Overall
全程代理 R2V 83.88 69.13 89.82 80.94
前 5 步代理条件 78.74 88.34 90.39 85.82

缩短代理条件后,Structure 降低 5.14 分,Style 提高 19.21 分,Quality 变化较小。其他两个裁判也给出相同方向的结构与外观取舍。SDEdit 的结构分数甚至更高,但风格分数很低,说明忠实保留代理也可能保留它不想要的视觉外观。

所以论文支持的结论是:早期条件获得了更好的综合平衡,而不是在结构、外观和质量上同时全面领先。 如果任务优先要求像素对齐或几何精度,Overall 的等权平均未必符合实际需求。

代理视频与 VACE、Go-with-the-Flow、Diffusion as Shader、文字生成、全程 R2V、SDEdit 和本文方法的成片比较

图 3. 每个案例选取中段与后段画面,比较不同方法的结构和外观。R2V 与 SDEdit 容易保留代理的合成风格,本文方法增加了外观变化。静态选帧仅用于观察示例,不能据此判断完整运动质量。对应原报告 Figure 9。图源:Code Video Model。

4.3 同样五步,放在开头与末尾差别很大

以下摘录 Table 6 的 GPT-6 裁判结果;“条件加噪”是对代理条件加噪并全程使用,与 Table 1 的 SDEdit 初始化方式不同。

代理条件安排 Structure Style Quality Overall
前 3 步 72.88 88.10 90.30 83.76
前 5 步 78.74 88.34 90.39 85.82
前 7 步 79.88 85.50 89.57 84.98
最后 5 步 45.58 86.83 90.34 74.25
全部 20 步 83.88 69.13 89.82 80.94
条件加噪,σ=0.6\sigma=0.6,全部 20 步 69.80 87.99 89.61 82.47

最有说服力的是把同样 5 步从开头移到末尾:Structure 从 78.74 降到 45.58,Style 与 Quality 则相对接近。这说明结构控制不仅取决于代理被使用多少次,还取决于使用时机。

前 3、5、7 步和全程条件体现了不同的约束强度,但并非每个裁判、每个分项都随 KK 单调变化。默认前 5 步在三个裁判的 Overall 上最好,支持它作为当前设置的选择,不构成跨模型、跨时长的普遍最优结论。

去掉代理或参考图也都会降低综合分数。需要注意,“去掉代理”仍保留参考图,和主结果中只有文字输入的 Text-to-video 不是同一个基线。

4.4 通路消融与敏感性分析支持了什么?

Table 5 中,GPT-6 裁判对仅编码器通路、仅 VAE 通路、双通路的 Overall 分别给出 74.42、82.91、85.82。双通路在三个裁判下均优于单通路,说明直接删除一条通路会丢失有用条件;VAE-only 优于编码器-only,也与其更强的运动控制作用一致。

作者还缓存全条件采样轨迹中的状态 xtx_t,在同一状态临时移除某一组条件,比较模型预测的相对变化:

St,g=∥vθ(xt,t;Cfull)−vθ(xt,t;Rg(Cfull))∥2∥vθ(xt,t;Cfull)∥2.S_{t,g}=\frac{\|v_\theta(x_t,t;C_{\mathrm{full}})-v_\theta(x_t,t;R_g(C_{\mathrm{full}}))\|_2} {\|v_\theta(x_t,t;C_{\mathrm{full}})\|_2}.

其中 RgR_g 表示移除指定条件组。探针结果不推进采样器,因此测量的是同一状态下的即时影响。代理 VAE 通路的敏感性在早期较强,随后逐渐减弱;编码器通路的影响在第一次更新后迅速下降。这为早期使用代理提供机制层面的线索,但不能单靠局部敏感性证明后续生成永远不会丢失结构。

条件冲突实验也显示分工不完全:参考主体与代理主体不匹配时,模型可能保留合成的代理主体,同时添加参考图主体;将参考图改成蓝色的编辑,也可能被原有暖色外观覆盖。参考图可以引导风格,但没有提供逐项编辑都被执行的保证。

4.5 人工评价支持相同取舍,应用演示仍有边界

原报告 Table 3 的盲评均值如下,数值按原表呈现,与自动评分表的 0–100 分数分别理解。

方法 Structure Style Quality Overall
VACE 6.08 6.30 8.62 7.00
全程代理 R2V 7.81 6.02 9.10 7.64
SDEdit 8.64 2.85 9.08 6.85
Code Video Model 6.92 8.46 9.12 8.17

人工结果同样更偏好本文方法的综合表现与外观,但它的结构分数低于 R2V 和 SDEdit。报告没有交代志愿者数量、评分方差或置信区间,因此这些均值可以作为补充证据,不能进一步声称差异具有统计显著性。

物理示例包括弹簧回弹、牛顿摆与双摆。程序可以计算设定方程下的轨迹,生成视频则受到该轨迹的视觉引导;当前报告没有提供最终成片的能量守恒、碰撞参数或轨迹误差等物理量评测。较高视觉评分尚不能证明成片严格遵守方程,程序采用的物理模型本身也需要验证。

机器人形态替换、路线修改和场景编辑展示了程序的可操作性,但没有报告机器人策略训练或真实部署的收益。报告另外给出通过 Seedance 2.5 公开 API 生成的定性示例;它没有说明在该 API 内执行了相同的逐步条件开关,也没有对应量化比较。因此,这部分支持代码代理可用于其他视频模型,尚不足以证明 early-step conditioning 已在闭源接口中复现。

5. Conclusion

Code Video Model 将镜头控制前移到可执行程序中:先明确物体、相机与事件,再利用冻结视频模型补充外观。其方法贡献在于识别代理视频条件的双重作用,并用采样时间调度减少粗糙外观的持续影响。对已有多模态参考接口而言,条件“何时参与”本身就是一个无需额外训练的控制手段。

22 个案例上的结果支持这套方法在结构与外观之间取得更好的综合平衡,但证据仍受小样本、主要依赖视觉裁判和固定短视频设置限制。尤其需要区分程序中的精确状态、生成视频中的近似对应,以及真实世界的物理正确性。三者之间仍存在误差,严格合成、配对监督与几何敏感编辑会直接受到影响。

后续值得验证的是:能否在保持外观改善的同时,用物体轨迹、相机位姿和关键事件时间检查生成偏差,并据此调整条件持续时间;也可以在不同视频基座、更长镜头和更多随机种子下检验默认 25% 的稳定性。这些是由结果引出的研究方向,仍需独立实验。只有将精度和成本一起纳入评价,才能判断程序化预演何时足以支持可靠的视频生产与训练数据构建。

References

  • Code Video Model Team. Code Video Model. Microsoft Research, technical report, 24 pages.
— END —浏览论文解读 →