论文链接:VideoCoCo: Code-as-CoT for Physically-Consistent Video Generation via an Agentic Dual-Engine System 发表时间:2026年7月 机构:香港中文大学(Pheng-Ann Heng, Feng Zhao)+ 中国科学技术大学 + 武汉大学等多校合作(26位作者) 领域标签:cs.CV / cs.AI / 文生视频 / 物理一致性
一、论文背景
1.1 文生视频的物理一致性困境
文生视频模型(如Sora、Wan2.2、Kling)已经能生成视觉质量惊人的视频。然而,一个持续困扰的问题是:生成的视频经常违反物理定律。
球穿过固体桌面、液体凭空消失、物体碰撞后不反弹——这些"物理幻觉"的根本原因在于:视频的时间演化必须从高度压缩的文本提示中隐式推断。一句"球从管道滚出撞击鸭子"包含的物理信息(球的质量、管道角度、撞击力度、鸭子材质)远远超出了文本能编码的精度。
1.2 现有链式思维方法的局限
为解决物理不一致问题,研究者尝试在文本到视频之间引入"中间表示"作为链式思维(Chain-of-Thought):
| 中间表示类型 | 代表做法 | 关键问题 |
|---|---|---|
| 文本动作计划 | 先用LLM生成逐步文本描述再生成视频 | 非可执行,无法控制完整时空过程 |
| 稀疏关键帧 | 预测中间关键帧再插值 | 时间稀疏,帧间物理过程无法控制 |
| 物理参数 | 预测物体位置、速度等参数 | 需要预定义物理引擎,泛化性差 |
这些方法的共同问题是:中间表示要么不可执行(文本计划),要么时间稀疏(关键帧),要么需要预定义引擎(物理参数),无法实例化和控制完整的连续时空过程。
1.3 VideoCoCo的灵感:代码是最精确的物理描述
VideoCoCo的核心洞察是:可执行的程序代码是描述物理过程最精确的语言。Blender(开源3D建模软件)的Python API可以精确指定场景中每个物体的几何、材质、位置,以及它们随时间的完整演化——这正是生成物理一致视频所需的全部信息。
更重要的是,Blender内置了确定性物理仿真引擎:代码运行的结果是确定的、可检查的、可修改的。如果物理过程不对,可以直接修改代码重新运行,而非盲目调整视频生成器的参数。
二、论文定位和关联工作
2.1 文生视频物理一致性研究脉络
| 方向 | 代表工作 | 核心思想 | 与VideoCoCo的区别 |
|---|---|---|---|
| 像素空间直接生成 | Sora 2, Wan2.2 | 扩散模型从文本直接预测像素 | 无中间表示,物理隐式 |
| 文本计划CoT | VideoDirectorGPT | 先生成文本场景计划 | 非可执行,时间稀疏 |
| 关键帧+插值 | 逐帧生成+插值 | 预测稀疏关键帧 | 物理过程不可控 |
| 物理引擎约束 | Physics-driven生成 | 将物理方程嵌入生成器 | 需预定义方程,泛化差 |
| VideoCoCo | 可执行Blender代码CoT | 代码→仿真→渲染 | 确定性可执行全过程控制 |
2.2 代码生成在AI中的应用趋势
VideoCoCo处于"代码作为中间推理表示"这一更大趋势中:
- AlphaCode/Codeforces:代码作为算法竞赛的推理中间表示
- ViperGPT:代码作为视觉问答的推理中间表示
- VideoCoCo:代码作为视频生成的物理推理中间表示
这一趋势的核心理念是:代码的可执行性和确定性使其成为比自然语言更精确的推理语言。
2.3 VideoCoCo的定位突破
VideoCoCo是首个将可执行仿真引擎代码用作视频生成过程级CoT的工作。它的突破不在于更好的视频生成器,而在于用确定性仿真引擎分离过程级推理与高保真视觉实现。
| 维度 | 传统文生视频 | 文本计划CoT | VideoCoCo |
|---|---|---|---|
| 中间表示 | 无 | 文本 | 可执行代码 |
| 可执行性 | ✗ | ✗ | ✓(确定性仿真) |
| 时空完整性 | 模糊 | 稀疏 | 完整连续 |
| 可检查性 | ✗ | 部分 | ✓(代码可审) |
三、问题定义
3.1 从具体场景到抽象问题
具体场景:给定文本提示"球从管道滚出撞击鸭子",生成物理一致的视频。
核心洞察:问题的本质不是"如何生成更好的视频",而是**“如何将物理过程的推理与视觉渲染分离,使物理一致性由确定性引擎保证,视觉保真度由生成器优化”**。
3.2 形式化定义
VideoCoCo将文生视频分解为两个子问题:
过程级推理:给定文本提示 $T$,合成可执行程序 $P$,使得 $P$ 在仿真引擎中运行产生的时空草稿 $D = \text{Simulate}(P)$ 的物理过程与 $T$ 描述一致。
草稿条件渲染:给定时空草稿 $D$,生成式视频引擎 $G$ 将其转化为逼真视频 $V = G(D, T)$,使 $V$ 在保持 $D$ 物理过程的同时拥有照片级真实感。
约束:
- $P$ 必须是可执行的(在Blender仿真引擎中运行不报错)
- $D$ 必须是确定性的(同一程序多次运行产生相同草稿)
- $G$ 必须在保持 $D$ 物理过程的同时提升视觉质量
3.3 抽象的精妙之处
这个定义将"什么需要确定性"和"什么需要创造性"清晰分离——物理过程需要确定性(由仿真引擎保证),视觉外观需要创造性(由生成器优化)。就像建筑中的结构计算需要精确(由工程师保证),而外立面设计需要创意(由建筑师发挥)。
四、问题解法
VideoCoCo由两个"引擎"构成,形成"推理→仿真→渲染"的完整管线。
4.1 引擎一:编码智能体(Coding Agent)
目标:将文本提示转化为可执行的Blender程序。
机制:
| 步骤 | 做法 | 输出 |
|---|---|---|
| 场景理解 | LLM理解文本提示中的物体、空间关系、时间演化 | 场景描述 |
| 代码合成 | 生成Blender Python API代码 | 可执行程序 $P$ |
| 代码验证 | 在Blender中运行检查是否报错 | 通过/报错反馈 |
代码指定内容:
- 场景物体(几何形状、材质、初始位置)
- 物理参数(质量、摩擦系数、弹性)
- 时间演化(运动轨迹、速度曲线、碰撞关系)
- 相机参数(视角、运动路径)
4.2 仿真引擎
目标:运行Blender程序产生确定性时空草稿。
关键特性:
- 确定性:同一程序产生相同草稿
- 物理正确:Blender内置刚体、流体、碰撞物理引擎
- 可检查:草稿可视化检查物理过程是否正确
输出:时空草稿 $D$——一个低视觉保真但物理正确的视频。
4.3 引擎二:生成式视频引擎(Generative Video Engine)
目标:将物理正确但视觉粗糙的草稿转化为照片级逼真视频。
机制:草稿条件编辑(Draft-Conditioned Editing)——以草稿视频作为条件,引导扩散模型在保持物理过程的同时提升视觉质量。
训练数据:VideoCoCo-3K数据集——精心策划的草稿-指令-目标三元组,用于训练视频编辑器适应仿真草稿。
输入:时空草稿 $D$ + 文本提示 $T$
输出:照片级逼真视频 $V$
4.4 全景流程总结
输入:文本提示 T = "球从管道滚出撞击鸭子"
↓
[编码智能体] → Blender程序 P
↓
[仿真引擎] → 确定性时空草稿 D(物理正确,视觉粗糙)
↓
[生成式视频引擎] → 逼真视频 V(物理正确 + 视觉逼真)
关键特性:
- 可执行代码作为过程级CoT,提供可检查、可控的中间表示
- 确定性仿真保证物理一致性
- 草稿条件编辑分离物理与视觉两个优化目标
五、评估指标与实验证据
5.1 评估基准
| 基准 | 衡量什么 | 为什么选它 |
|---|---|---|
| PhyGenBench | 视频生成的物理一致性 | 专门评估物理合理性的基准 |
| VBench-2.0 | 视频生成的综合质量 | 行业标准综合视频评估 |
5.2 核心实验结果
PhyGenBench(物理一致性,越高越好):
| 方法 | 分数 |
|---|---|
| OmniWeaving(baseline) | 0.475 |
| VideoCoCo | 0.558 |
VBench-2.0(综合质量,越高越好):
| 方法 | 分数 |
|---|---|
| OmniWeaving(baseline) | 52.18 |
| VideoCoCo | 77.88 |
VideoCoCo在两个基准上均获最佳平均分。
5.3 VideoCoCo-3K数据集
为训练生成式视频引擎适应仿真草稿,构建了VideoCoCo-3K数据集:
- 内容:草稿-指令-目标三元组
- 草稿:Blender仿真产生的低视觉保真视频
- 目标:对应的真实/高质量视频
- 作用:训练视频编辑器学习"如何从物理正确的粗糙草稿生成视觉逼真的视频"
5.4 实验如何证明核心主张
- PhyGenBench从0.475提升至0.558:证明可执行代码CoT显著改善物理一致性——因为物理过程由确定性仿真引擎保证
- VBench-2.0从52.18提升至77.88:证明草稿条件编辑在保持物理一致性的同时大幅提升综合视觉质量
- 两个基准同时最佳:证明VideoCoCo没有在物理一致性和视觉质量之间做妥协——两者同时提升
六、效果优势的根源解释
6.1 baseline的根本局限
OmniWeaving等baseline的根本局限在于:物理过程必须从文本提示中隐式推断,且推断结果与视觉渲染纠缠在一起。
这导致三个不可逾越的障碍:
- 物理推断不可靠:文本"球撞击鸭子"无法编码碰撞力度和角度,模型只能猜测
- 错误不可定位:物理不一致时,无法知道是推断错了还是渲染错了
- 物理与视觉耦合:修改物理过程必然影响视觉质量,反之亦然
6.2 VideoCoCo的根本性改变
方法差异:文本隐式推断物理 → 可执行代码确定性仿真物理
机制变化链:
- 物理过程从隐式推断变为确定性仿真 → Blender物理引擎保证刚体碰撞、流体运动等完全遵循物理定律
- 过程推理与视觉渲染解耦 → 编码智能体专注物理正确性(不受视觉质量干扰),生成引擎专注视觉保真度(受草稿物理约束)
- 中间表示可检查可修改 → 如果物理过程不对,直接修改Blender代码重新运行,而非盲目调参
因果验证:
- PhyGenBench从0.475提升至0.558 → 因为物理过程由确定性仿真引擎保证而非隐式猜测
- VBench-2.0从52.18提升至77.88 → 因为生成引擎在草稿物理约束下可专注视觉质量提升
6.3 反事实推理
如果去掉仿真引擎,直接从Blender代码的文本描述生成视频(跳过确定性仿真),物理一致性将退化至baseline水平——因为失去了确定性物理保证。
如果去掉生成式视频引擎,直接使用Blender仿真输出作为最终视频,物理一致性最高但视觉质量极低(Blender渲染远不如扩散模型)——这反证了双引擎分离的必要性。
七、必要知识反推
7.1 领域知识层
- 视频物理一致性的本质:理解什么使视频"物理一致"(运动轨迹合理、碰撞响应正确、材质行为准确)——不理解这点无法设计评估基准
- Blender仿真引擎的能力边界:理解Blender能模拟什么(刚体、流体、布料、碰撞)和不能模拟什么——这是代码生成的约束
7.2 方法论知识层
- 链式思维(CoT)原理:理解中间推理步骤如何帮助复杂任务——这是"代码作为CoT"的理论基础
- 扩散模型视频编辑:理解如何用条件视频引导扩散生成——这是草稿条件编辑的基础
- 代码生成与验证:理解LLM如何生成可执行代码及验证流程——这是编码智能体的基础
7.3 工程知识层
- Blender Python API:理解如何用代码控制Blender的场景构建和物理仿真——这是代码合成的具体技术
- 视频编辑训练数据构建:理解如何构建草稿-目标对训练视频编辑器——这是VideoCoCo-3K构建的关键
7.4 知识融合的关键节点
创造性洞察:“代码作为过程级CoT"概念的提出——将链式思维的推理范式与仿真引擎的确定性物理保证融合。代码不仅是推理的中间表示,更是可执行、可验证的确定性过程——这使得物理一致性从"生成器尽力而为"变为"仿真引擎确定性保证”。
八、论文中可以提取的通用性灵感
灵感一:确定性引擎分离推理与生成的范式
核心思想:当某个维度(如物理一致性)需要确定性保证时,将其交给确定性引擎处理,生成器只负责需要创造性的维度(如视觉质量)。
论文证据:VideoCoCo将物理过程交给Blender确定性仿真,将视觉质量交给扩散模型——两者解耦后同时提升。
推广场景:
- 代码生成:将语法正确性交给编译器(确定性),将功能正确性交给LLM(创造性)
- 数学证明:将证明检查交给Lean/Coq(确定性),将证明构造交给LLM(创造性)
- 数据库查询:将查询计划交给SQL引擎(确定性),将自然语言转SQL交给LLM(创造性)
灵感二:可执行中间表示优于描述性中间表示
核心思想:当代码可以执行并产生确定性结果时,它比任何文本描述都更适合作为推理中间表示——因为它自带验证机制(运行检查)。
论文证据:Blender代码可运行产生确定性草稿,文本计划无法运行验证——可执行性使物理一致性可控可查。
推广场景:
- Agent规划:用可执行的API调用序列替代文本计划,运行验证可行性
- 实验设计:用可执行的实验协议代码替代自然语言描述,确定性地验证设计合理性
- 流程自动化:用可执行的工作流定义替代文档描述,运行时自动验证
灵感三:草稿条件编辑——从粗糙到精细的两阶段生成
核心思想:先生成低保真但结构正确的草稿,再用生成器提升保真度——比直接生成高保真内容更可控。
论文证据:Blender草稿(低保真物理正确)→扩散模型编辑(高保真保持物理)——两阶段比一阶段效果更好。
推广场景:
- UI设计:先生成低保真线框图(结构正确),再生成高保真视觉稿
- 写作:先生成大纲(逻辑正确),再扩展为完整文章
- 3D建模:先生成低多边形模型(拓扑正确),再细分生成高精度模型