微软开源 Code Video Model 模型:用代码生成视频

先用代码搭场景、排动作和运镜,再让视频模型生成材质与光影。像拍电影做动态预演一样,让 AI 视频多一个可查看、可修改的中间环节。

作者:Microsoft Research · Code Video Model10-13 · 9 分钟

微软研究院推出了一套新的视频生成方案:Code Video Model(代码视频模型)。

它让 AI 生成视频少一些“开盲盒”,可以先用写代码的方式,明确画面布局、动作轨迹和物理运动。

官方完整演示 · 2 分 18 秒
先看代码预演与最终视频的效果。点击播放,可开启声音。项目来源

现在的视频生成模型(比如主流的视频扩散模型),在直接用文字生成视频时,就像一个黑盒子:

  • 物理规律更多靠“猜”:模型主要根据训练中学到的视觉规律推测运动,没有逐项按重力、速度等物理量计算,容易出现穿模、反重力等诡异动作。
  • 过程难以精确控制:镜头怎么转、物体怎么摆、轨迹怎么走,仅靠提示词很难在生成前看清这些安排。如果不满意,改一个细节可能得把整个视频重抽一遍。

Code Video Model 的主要功能特点

Code Video Model 在正式生成前增加了一个可以查看和修改的代码预演环节,主要带来四种能力:

场景布局、物体轨迹可以直接修改。AI 写出的程序会把物体放在指定坐标上,并设定它随时间变化的移动路径。想要改变一个角色的行进路线,或者调整场景中桌椅家具的相对间距,可以直接修改对应的坐标参数,先在预览中确认效果。

还可以基于同一场景做局部替换。论文展示了拱门改门洞、人形机器人换四足机器人、左侧路线改右侧路线。程序和参考图都基于原件对应修改,目标是只改变指定因素,保持无关的环境、镜头与时序一致。最终成片仍可能出现额外变化。

左右滑动查看完整图,或点击下方打开高清原图。

论文图 13:在同一场景中做定向修改。左侧为粗模,右侧为生成视频;从上到下分别是拱门改门洞、人形换四足机器人、左侧路线改右侧路线。对照展示修改效果,成片并非逐像素保持不变。
论文图 13:在同一场景中做定向修改
左侧为粗模,右侧为生成视频;从上到下分别是拱门改门洞、人形换四足机器人、左侧路线改右侧路线。对照展示修改效果,成片并非逐像素保持不变。
打开高清原图 · 论文第 14 页

镜头运镜与场景动作独立规划。镜头的推拉摇移、环绕旋转可以单独通过代码控制,与物体自身的运动分别设定。例如,让主体停在某个动作上,同时让镜头继续围绕它转动。

引入物理方程作为运动参考。遇到弹簧振动、双摆运动等可以用数学描述的场景,程序可以按相应方程计算运动,给后续生成提供物理参照。例如,双摆由两个相连的摆杆组成,两者运动相互影响。程序根据耦合动力学方程计算它们随时间变化的角度和位置,再把结果渲染成粗模运动。方程约束的是代码预演,成片仍要检查是否跟上了这些运动。

先看预览再生成,且无需重新训练大模型。先看简易三维预览,调整好动作和镜头,再交给视频模型生成材质与光影。论文使用现成的 MiniMax-H3,通过改变粗模输入的时机来引导生成,保持模型权重不变。

核心原理:像拍电影做“动态预览”一样写代码

这套技术借鉴了传统电影工业中的前期可视化预览(Previs)机制:先用简易三维场景预演机位、演员走位和镜头节奏,确认安排后,再投入正式拍摄与后期制作。

Code Video Model 把这个工业流程搬进了 AI 视频生成:

左右滑动查看完整图,或点击下方打开高清原图。

论文图 3:从代码预演到最终成片。文字生成程序,程序渲染粗模视频,并从代表帧制作参考图。蓝线表示粗模只参与前 25% 的采样步骤;文字和参考图贯穿整个生成过程。
论文图 3:从代码预演到最终成片
文字生成程序,程序渲染粗模视频,并从代表帧制作参考图。蓝线表示粗模只参与前 25% 的采样步骤;文字和参考图贯穿整个生成过程。
打开高清原图 · 论文第 5 页

1. 先用代码搭骨架:快速预览,直接修改

输入文本提示词后,编程 Agent(论文中使用 GPT-6)先编写一段可执行的 Three.js 程序。

Agent 写完代码,还会渲染关键帧和覆盖整段视频的抽帧图,对照提示词检查构图、遮挡、运动与时序,再修改代码、重新渲染。代码生成和修改可以交给 AI 完成,创作者也能进一步调整程序中的参数。

这段代码明确承担了“场景搭建与运镜导演”的工作:它负责在三维空间中摆放几何体、设定物体的空间位移、规划虚拟相机的运动轨迹,并在需要时通过数学方程计算力学动态。

论文报告,渲染这段程序不到一分钟就能得到一段低精度的代理视频(Proxy Video),也就是粗模预览。接着,系统会提取代理视频中的代表帧,调用图像大模型(如 GPT-Image-2)重新绘制为一张具备目标光影、质感与真实摄影风格的参考图片(Reference Image),也可以由用户直接上传现成的风格参考图。

这种做法带来的好处非常直接:速度快、所见即所得。如果对桌子的摆放位置或小车的行驶速度不满意,调整代码里对应的坐标或速度参数,就能重新渲染粗模复查。简单的参数修改可能只涉及一行代码。这里的“不到一分钟”仅指粗模渲染,不包含 AI 写代码、制作参考图和生成最终视频的时间。

配套的浏览器查看器支持拖动时间轴、逐帧查看和阅读源码。创作者还能自由环绕、平移或缩放三维视角,显示网格、相机轨迹与视锥(相机能够拍摄到的空间范围),检查物体之间的位置关系,以及镜头会从哪里经过、拍到什么。

2. 解决“塑料感”难题:早期步数条件注入

有了低精度的代码视频后,怎样把它变成逼真的最终成片?

这里存在一个关键挑战:如果直接把代码视频作为参考条件全程输入给视频扩散模型,AI 容易连同它的简陋几何和平坦材质一起模仿,导致成片仍有“塑料感”。

为了解决这个问题,研究团队提出了一种无需重新训练的调度机制:早期步数条件注入(Early-step Conditioning)。

团队的实验观察到,粗模在不同生成阶段的影响有所不同:

  • 前期采样阶段:粗模主要帮助建立画面布局、镜头变化和主体运动;
  • 后期采样阶段:继续参考粗模,容易把它简陋的外观带入材质与纹理细节。

基于这个特性,团队设计了一个分工时序:以默认的 20 步去噪迭代为例,系统仅在最前 5 步(前 25%)将低精度的代理视频作为条件输入给模型,让它迅速把画面的空间构图和动作骨架“立住”;从第 6 步开始,系统撤掉代理视频,继续根据参考图片和文本提示生成材质、光影与细节。参考图片和文字在整个过程中一直保留。

视频模型还会补充粗模省略的形体和关节动作细节。因此,前面的程序无需精细制作所有三维资产,只需把主要结构和运动交代清楚。

粗模看多久,结构与外观怎样变化?
有粗模的采样步 · 文字与参考图始终保留
1234567891011121314151617181920
从噪声开始整段视频逐步成形
彩色条:当前配置 细线:全程输入粗模(固定参照)
结构贴合81.98
全程粗模:87.67
外观风格80.33
全程粗模:57.07
三项综合85.17
全程粗模:75.22

前 5 步在这组实验中取得最高综合分;结构分低于全程粗模,外观风格分更高。

论文表 6 · Qwen-27B 裁判 · 0–100 分,越高越好。综合分是结构、风格与画质的均值。这里切换已有测量,不运行视频模型。

这里的“前 5 步”是模型生成整段视频时的前 5 轮计算,每一轮都会更新整段视频,并不是视频时间轴上的前 5 秒。

前 5 步是作者这组实验采用的默认配置,实际可以调整。实验中,延长粗模参与的时间,通常能让成片更贴近原有结构,但也更容易带入粗模外观;缩短则会削弱结构约束。这是在调节控制力度与画面质感之间的取舍。

具体能用来做什么?

这种分工尤其适合需要反复修改动作、路线和镜头的制作任务。下面三组对照来自项目的官方演示。

1. 子弹时间:动作停住,镜头继续转

在经典的电影“子弹时间”镜头中,需要同时满足两件事:主体动作瞬间停滞,而摄像机继续顺畅地围绕主体环绕推进。只用文字描述,很难准确指定动作停在哪一刻、镜头此后转多远。

在代码中,可以将物理时间与相机时间拆为两个独立变量分别计算。

代码先让摩托车和骑手在特定帧冻结在世界坐标中,同时驱动虚拟相机继续围绕骑手旋转。视频扩散模型接收到这段粗模后,以其中的动作与运镜为引导,生成更丰富的路面反光、车身材质和场景细节。

Three.js 粗模预演视频。
机位环绕暗色地面的简易摩托模型旋转,物理时间在峰值定格。
Code Video Model 最终生成。
成片较好地跟随了粗模的环绕轨迹,同时由参考图引导渲染出湿滑路面反光与骑手服饰质感。

2. 机器人改路线:先改路径,再看效果

在机器人动作模拟中,用户往往需要针对具体场景反复调试行进方案。如果只改提示词重新生成,路径之外的场景细节也可能跟着变化。

有了代码中间层,修改就变得非常明确。如果需要让机器人改变折返走向,创作者只要打开程序,调整路径点列表(route=[v(-0.75, 6.75), ...])中的几个坐标数值,就能在不到一分钟内渲染出新的预览视频。确认路径无误后,再交给视频模型生成成片。

在下面的案例中,代码预演安排了人形机器人走向实验室大门的运动,而成片在此基础上补齐了室内光照、金属反光与机械关节细节。

实验室内人形机器人走向门洞粗模。
机器人从实验室内部朝门口移动,运动由程序中的动画与相机设置决定。
写实最终成片。
跟随了粗模的前行方向与镜头推进构图,并呈现出金属关节与室内灯光质感。

3. 室内建筑运镜与产品摄影

在空间结构复杂的室内漫游镜头中,创作者既要安排家具的位置,也要让镜头连贯地穿行其中。

Three.js 程序可以明确沙发、楼梯与窗户的位置,并设定相机经过的路径。先看粗模,就能检查镜头是在靠近沙发、抬升视角,还是转向楼梯,再决定最终画面的材质与光线。

挑高 Loft 室内 Three.js 预演。
镜头自橘色简易沙发抬升并巡览二层悬挑楼梯。
最终写实漫游视频。
成片在构图与运镜走向上较好呼应了粗模,并将简易表面转化为皮革沙发与木质台阶的写实视觉质感。

在产品摄影中也是同样的道理:比如拍摄一辆跑车,代码可以先安排从车身外观转到车轮近景的镜头;粗模把视线轨迹和透视变化定好之后,视频模型负责补齐金属车漆的流光倒影和轮毂上的机械纹理。

评测数据:更平衡的结构与质感

为了系统衡量生成效果,研究团队构建了包含 22 个案例的评测基准 CodeVideoBench,涵盖场景编辑、机器人仿真、轨迹变化、游戏、产品摄影、建筑运镜、物理规律和子弹时间 8 大应用类别。

评测围绕三个核心维度展开:

  • 结构分(Structure):画面中的空间布局、主体动作与镜头运镜与代码粗模有多接近;
  • 风格分(Style):材质、光影与摄影质感是否充分贴合参考图,还是残留了粗模的塑料感;
  • 画质分(Quality):画面的连续性与运动自然度,是否存在闪烁、撕裂或伪影。
作者的 22 例测试;自动评分为 0–100 分,人类评分使用报告原分值,两者不直接比较。窄屏可横向滚动查看全部指标。
生成方法基座模型结构分 (Structure)风格分 (Style)画质分 (Quality)综合分 (Overall)
VACEWan78.7457.5986.55
74.29
Go-with-the-FlowCogVideoX48.3655.9341.16
48.48
Diffusion as ShaderCogVideoX50.7162.6964.43
59.28
Text-to-VideoMiniMax-H343.4758.5089.43
63.80
R2V (全程粗模)MiniMax-H387.6757.0780.91
75.22
SDEdit (加噪粗模)MiniMax-H393.9210.3488.86
64.37
Code Video ModelMiniMax-H381.9880.3393.20
85.17
关键发现:SDEdit 的结构分最高 (93.92),但风格分暴跌至 10.34,体现了保留粗模结构与改善外观之间的取舍;全程 R2V 同样因粗模风格泄漏导致风格分仅 57.07;本项目在保住结构 (81.98) 的同时,风格跃升至 80.33,在这组测试中综合分最高。

与同样使用 MiniMax-H3、全程保留粗模的 R2V 相比,Code Video Model 在作者的测试中取得了更高的综合分。以 Qwen-27B 自动裁判为例,两者分别为 85.17 和 75.22。

但更能说明取舍的是人类盲测:Code Video Model 的结构分为 6.92,低于全程 R2V 的 7.81;风格分为 8.46,高于 R2V 的 6.02。综合分则为 8.17,对比 R2V 的 7.64。

也就是说,提早撤掉粗模,让成片更接近参考图的外观,但也损失了部分对原有结构的贴合。它的优势是控制与质感之间的平衡,不能据此说所有动作都更精确。

这些分数来自作者自建的 22 例测试,人类盲测未披露参与人数与统计显著性,结论适用于这组实验配置。

使用边界与当前怎么体验

代码预演可以精确设定参数,最终成片却仍由视频模型生成,布局、姿态和运动都有可能偏离。用于需要严格物理精度或逐帧对齐的任务时,仍要单独验证成片。

参考图也要与粗模相配。论文中,给人形机器人粗模配上狗的参考图,结果可能是在保留原主体的同时,额外生成一只狗。把室内参考图整体改成蓝色,成片又可能大体回到原来的暖色日光,只保留部分蓝色。代码与参考图分别表达了创作者的意图,但模型未必能完全按要求组合。

开发者当前如何上手

目前公开的入口是 GitHub 仓库,包含代码、预制样例和评测基准。

开发者可以先从 sports_car、tank_boarding、loft_tour 等样例起步。这些样例已经准备好提示词、代理视频与参考图,可以跳过代码编写和粗模渲染,先运行后半段的视频生成。

本地运行需要准备 MiniMax-H3 模型与 NVIDIA GPU 环境;仓库建议使用 Ubuntu 22.04 和兼容 CUDA 12.6 的驱动。若要从提示词开始跑完整流程,还涉及 GitHub Copilot CLI 的代码生成及图像模型调用。仓库未给出最低显存和完整流程耗时的实测值,因此还不能把它当作开箱即用的一键视频工具。

报告也展示了用代码粗模引导 Seedance 2.5 的例子,说明这种预演思路可以尝试接入其他视频模型。但这些例子没有证明能通过闭源 API 操作相同的“前 5 步”调度。

Code Video Model 值得关注的地方,是让创作者在最终生成之前,多了一份看得见、改得动、能重新运行的镜头安排。先用代码确认“物体怎么动、镜头怎么拍”,再让视频模型实现目标质感,这给反复修改视频提供了更具体的抓手。

来源
Code Video Model 技术报告Microsoft Research · Code Video Model Team·查看主材料
↑ 正文结束
✓ 本篇全文免费开放

会员可复制、下载全文 Markdown,还能让你的 AI 订阅和提问。

阅读原文 ↗
📮 新解读第一时间进邮箱

读完觉得有用?留个邮箱,每篇新解读发布就送达,随时退订。