微软开源 Code Video Model 模型:用代码生成视频
先用代码搭场景、排动作和运镜,再让视频模型生成材质与光影。像拍电影做动态预演一样,让 AI 视频多一个可查看、可修改的中间环节。
微软研究院推出了一套新的视频生成方案:Code Video Model(代码视频模型)。
它让 AI 生成视频少一些“开盲盒”,可以先用写代码的方式,明确画面布局、动作轨迹和物理运动。
先看代码预演与最终视频的效果。点击播放,可开启声音。项目来源
现在的视频生成模型(比如主流的视频扩散模型),在直接用文字生成视频时,就像一个黑盒子:
- 物理规律更多靠“猜”:模型主要根据训练中学到的视觉规律推测运动,没有逐项按重力、速度等物理量计算,容易出现穿模、反重力等诡异动作。
- 过程难以精确控制:镜头怎么转、物体怎么摆、轨迹怎么走,仅靠提示词很难在生成前看清这些安排。如果不满意,改一个细节可能得把整个视频重抽一遍。
Code Video Model 的主要功能特点
Code Video Model 在正式生成前增加了一个可以查看和修改的代码预演环节,主要带来四种能力:
场景布局、物体轨迹可以直接修改。AI 写出的程序会把物体放在指定坐标上,并设定它随时间变化的移动路径。想要改变一个角色的行进路线,或者调整场景中桌椅家具的相对间距,可以直接修改对应的坐标参数,先在预览中确认效果。
还可以基于同一场景做局部替换。论文展示了拱门改门洞、人形机器人换四足机器人、左侧路线改右侧路线。程序和参考图都基于原件对应修改,目标是只改变指定因素,保持无关的环境、镜头与时序一致。最终成片仍可能出现额外变化。
左右滑动查看完整图,或点击下方打开高清原图。
左侧为粗模,右侧为生成视频;从上到下分别是拱门改门洞、人形换四足机器人、左侧路线改右侧路线。对照展示修改效果,成片并非逐像素保持不变。
打开高清原图 · 论文第 14 页
镜头运镜与场景动作独立规划。镜头的推拉摇移、环绕旋转可以单独通过代码控制,与物体自身的运动分别设定。例如,让主体停在某个动作上,同时让镜头继续围绕它转动。
引入物理方程作为运动参考。遇到弹簧振动、双摆运动等可以用数学描述的场景,程序可以按相应方程计算运动,给后续生成提供物理参照。例如,双摆由两个相连的摆杆组成,两者运动相互影响。程序根据耦合动力学方程计算它们随时间变化的角度和位置,再把结果渲染成粗模运动。方程约束的是代码预演,成片仍要检查是否跟上了这些运动。
先看预览再生成,且无需重新训练大模型。先看简易三维预览,调整好动作和镜头,再交给视频模型生成材质与光影。论文使用现成的 MiniMax-H3,通过改变粗模输入的时机来引导生成,保持模型权重不变。
核心原理:像拍电影做“动态预览”一样写代码
这套技术借鉴了传统电影工业中的前期可视化预览(Previs)机制:先用简易三维场景预演机位、演员走位和镜头节奏,确认安排后,再投入正式拍摄与后期制作。
Code Video Model 把这个工业流程搬进了 AI 视频生成:
左右滑动查看完整图,或点击下方打开高清原图。
文字生成程序,程序渲染粗模视频,并从代表帧制作参考图。蓝线表示粗模只参与前 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 步开始,系统撤掉代理视频,继续根据参考图片和文本提示生成材质、光影与细节。参考图片和文字在整个过程中一直保留。
视频模型还会补充粗模省略的形体和关节动作细节。因此,前面的程序无需精细制作所有三维资产,只需把主要结构和运动交代清楚。
前 5 步在这组实验中取得最高综合分;结构分低于全程粗模,外观风格分更高。
这里的“前 5 步”是模型生成整段视频时的前 5 轮计算,每一轮都会更新整段视频,并不是视频时间轴上的前 5 秒。
前 5 步是作者这组实验采用的默认配置,实际可以调整。实验中,延长粗模参与的时间,通常能让成片更贴近原有结构,但也更容易带入粗模外观;缩短则会削弱结构约束。这是在调节控制力度与画面质感之间的取舍。
具体能用来做什么?
这种分工尤其适合需要反复修改动作、路线和镜头的制作任务。下面三组对照来自项目的官方演示。
1. 子弹时间:动作停住,镜头继续转
在经典的电影“子弹时间”镜头中,需要同时满足两件事:主体动作瞬间停滞,而摄像机继续顺畅地围绕主体环绕推进。只用文字描述,很难准确指定动作停在哪一刻、镜头此后转多远。
在代码中,可以将物理时间与相机时间拆为两个独立变量分别计算。
代码先让摩托车和骑手在特定帧冻结在世界坐标中,同时驱动虚拟相机继续围绕骑手旋转。视频扩散模型接收到这段粗模后,以其中的动作与运镜为引导,生成更丰富的路面反光、车身材质和场景细节。
机位环绕暗色地面的简易摩托模型旋转,物理时间在峰值定格。
成片较好地跟随了粗模的环绕轨迹,同时由参考图引导渲染出湿滑路面反光与骑手服饰质感。
2. 机器人改路线:先改路径,再看效果
在机器人动作模拟中,用户往往需要针对具体场景反复调试行进方案。如果只改提示词重新生成,路径之外的场景细节也可能跟着变化。
有了代码中间层,修改就变得非常明确。如果需要让机器人改变折返走向,创作者只要打开程序,调整路径点列表(route=[v(-0.75, 6.75), ...])中的几个坐标数值,就能在不到一分钟内渲染出新的预览视频。确认路径无误后,再交给视频模型生成成片。
在下面的案例中,代码预演安排了人形机器人走向实验室大门的运动,而成片在此基础上补齐了室内光照、金属反光与机械关节细节。
机器人从实验室内部朝门口移动,运动由程序中的动画与相机设置决定。
跟随了粗模的前行方向与镜头推进构图,并呈现出金属关节与室内灯光质感。
3. 室内建筑运镜与产品摄影
在空间结构复杂的室内漫游镜头中,创作者既要安排家具的位置,也要让镜头连贯地穿行其中。
Three.js 程序可以明确沙发、楼梯与窗户的位置,并设定相机经过的路径。先看粗模,就能检查镜头是在靠近沙发、抬升视角,还是转向楼梯,再决定最终画面的材质与光线。
镜头自橘色简易沙发抬升并巡览二层悬挑楼梯。
成片在构图与运镜走向上较好呼应了粗模,并将简易表面转化为皮革沙发与木质台阶的写实视觉质感。
在产品摄影中也是同样的道理:比如拍摄一辆跑车,代码可以先安排从车身外观转到车轮近景的镜头;粗模把视线轨迹和透视变化定好之后,视频模型负责补齐金属车漆的流光倒影和轮毂上的机械纹理。
评测数据:更平衡的结构与质感
为了系统衡量生成效果,研究团队构建了包含 22 个案例的评测基准 CodeVideoBench,涵盖场景编辑、机器人仿真、轨迹变化、游戏、产品摄影、建筑运镜、物理规律和子弹时间 8 大应用类别。
评测围绕三个核心维度展开:
- 结构分(Structure):画面中的空间布局、主体动作与镜头运镜与代码粗模有多接近;
- 风格分(Style):材质、光影与摄影质感是否充分贴合参考图,还是残留了粗模的塑料感;
- 画质分(Quality):画面的连续性与运动自然度,是否存在闪烁、撕裂或伪影。
| 生成方法 | 基座模型 | 结构分 (Structure) | 风格分 (Style) | 画质分 (Quality) | 综合分 (Overall) |
|---|---|---|---|---|---|
| VACE | Wan | 78.74 | 57.59 | 86.55 | |
| Go-with-the-Flow | CogVideoX | 48.36 | 55.93 | 41.16 | |
| Diffusion as Shader | CogVideoX | 50.71 | 62.69 | 64.43 | |
| Text-to-Video | MiniMax-H3 | 43.47 | 58.50 | 89.43 | |
| R2V (全程粗模) | MiniMax-H3 | 87.67 | 57.07 | 80.91 | |
| SDEdit (加噪粗模) | MiniMax-H3 | 93.92 | 10.34 | 88.86 | |
| Code Video Model | MiniMax-H3 | 81.98 | 80.33 | 93.20 |
与同样使用 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 模型:用代码生成视频
直接用文字生成视频,镜头怎么转、物体怎么走,往往很难提前看清;改一个细节,也可能连带改变其他画面。
微软这套方案借鉴电影的前期可视化预览(Previs):先用简易三维场景排演走位与机位,确认后再生成成片。它组合现有编程、图像和视频模型,增加了一层看得见、改得动的镜头安排。
先搭骨架:代码负责什么?
为什么不让粗模一直参与?
全程参考粗模,模型容易连同简陋几何与平坦材质一起模仿,留下“塑料感”。团队于是调整粗模参与的时机,保持 MiniMax-H3 权重不变,无需重新训练。
以论文默认的 20 步去噪迭代为例:
参考图片 + 文字提示:全程保留
“步”是更新整段视频的一轮计算,不是视频的前 5 秒。5 步是默认配置,可调整。
质感更好,结构也有取舍
作者自建 CodeVideoBench:22 例、8 类场景。下面比较 Code Video Model 与全程保留粗模的 R2V,二者均使用 MiniMax-H3。
Code Video Model / R2V
Code Video Model / R2V
Code Video Model / R2V
提早撤掉粗模,提升了外观贴合,也损失了部分结构贴合。不能据此说所有动作都更精准。人类盲测未披露人数与统计显著性。
边界:代码参数可以精确设定,最终视频仍可能偏离;参考图与粗模冲突时,也可能出现额外主体。严格物理精度需要另行验证。
仓库提供代码、样例与基准;本地还需准备 MiniMax-H3 与 NVIDIA GPU 环境,尚不是开箱即用的一键视频工具。
Code Video Model — Conditioning Video Generation on Code
Code Video Model — Conditioning Video Generation on Code.

Demo Video
TL;DR: We turn prompts into code-driven video previews, then use early-step conditioning to generate videos that follow their structure and the reference appearance—without additional training.
Abstract
Video diffusion models generate realistic videos in a black box. Physics is imagined rather than computed; object placement, motion, and camera trajectories are resolved internally and only visible in the final clip. Inspired by film production, we present Code Video Model, which gives video generation an executable previs, with code as the engine. Given a prompt, Code Video Model writes a program that lays out a scene, animates objects, places a camera, and computes dynamics from equations; rendering the program yields a proxy video and a reference image. Rendering the resulting proxy video takes less than a minute, making it fast to preview; it is grounded, since dynamics are computed, and directly and precisely controllable, because code can modify each element. A pretrained video model is then conditioned on the proxy video and reference image to generate the final clip. However, we observe that existing video models tend to copy the flat appearance of the proxy video into the generated clip. To address this issue, Code Video Model further introduces early-step conditioning, a training-free schedule that attends to the proxy video only during early sampling steps when structure is established, and drops this conditioning thereafter. As a result, Code Video Model is able to generate a final clip that follows the proxy video's structure while preserving the reference image's appearance. We introduce CodeVideoBench to evaluate controllable video generation across diverse applications including gaming, scene editing, world-model data, physics grounding, bullet time, and 3D/4D reconstruction. On CodeVideoBench, Code Video Model with MiniMax-H3 achieves overall scores of 85.2, 82.1, and 85.8 under QwenVL-3.8-27B, GPT-5.6, and GPT-6, respectively, versus 74.3, 73.1, and 80.6 for VACE, the strongest learned baseline.
Gallery
↔
↔
↔
↔
↔
↔
↔
↔
↔


