OmniDirector:无需跨配对数据的通用多镜头相机轨迹克隆 OmniDirector: General Multi-Shot Camera Cloning without Cross-Paired Data
用"相机栅格视频"作为视觉化的相机表征,实现无需跨配对数据的多镜头相机运动克隆。
前置知识
扩散变换器 (Diffusion Transformer / DiT)
DiT 是将 Transformer 架构引入扩散模型,用注意力机制替代传统 U-Net 作为去噪骨干网络的一类生成模型。它把图像/视频的潜变量切成 patch 序列,再通过多层自注意力迭代去噪,可天然扩展到大规模训练。
OmniDirector 是在 MMDiT(多模态版本)上做相机控制的条件微调,读者需要理解 Transformer 是如何把视觉 patch 与文本 token 拼接并在联合注意力层中交互的,否则无法把握相机栅格被注入的位置与方式。
MMDiT (Multi-Modal Diffusion Transformer)
MMDiT 是 Stable Diffusion 3 提出的多模态扩散变换器架构,它把文本和视觉 token 放在两条独立的注意力流中,通过联合注意力 (joint attention) 块实现跨模态信息交换。Esser 等 2024 年的工作展示了这种架构在文本-图像对齐上的优越性。
OmniDirector 把参考图像、视频噪声潜变量、相机栅格沿帧维度拼成一个时空张量,再与文本 token 做联合注意力。理解 MMDiT 是如何把多路视觉 token 与文本 token 融合,是看懂 OmniDirector 注入策略的前提。
相机内外参与 Plücker 坐标
相机外参是 3×4 的 [R|t] 矩阵,描述相机在世界坐标系中的位置和朝向;相机内参如焦距、主点描述相机如何把 3D 投影到像素平面。Plücker 坐标是一种用 6 维向量同时表达 3D 直线位置和方向的方法,CameraCtrl 等工作把它当作视觉化的相机 token 注入 DiT。
文章里 OmniDirector 用 DPA-V3 估计外参、用 $f=a\cdot\max(H,W)$ 近似焦距、再把得到的位姿渲染成"空房间网格"。读者必须先理解原始相机参数为什么难以直接注入视频扩散模型,才能体会"相机栅格"这一表征的必要性。
多镜头 (multi-shot) 视频生成
多镜头视频指由多次"切镜头" (shot transition / cut) 组成的视频序列,每个镜头内部有连贯的相机运动,镜头之间会有跳切、淡入淡出、转场等离散事件。多镜头生成要求模型既能生成连续运动,又能精确控制离散切点的位置与语义。
现有相机控制方法几乎都假设单镜头连续运动,碰到切镜头就失效。本文声称 OmniDirector 是首个无需跨配对数据就能处理多镜头的通用框架,这是其核心卖点。
Classifier-Free Guidance (CFG) 与自适应变体
CFG 在推理时同时跑条件预测与无条件预测,再用系数放大条件信号,是扩散模型提升条件遵从度的标准技巧。自适应 CFG 指对不同信号分支在不同噪声强度阶段注入,例如高噪声阶段先建立全局结构,低噪声阶段再补充细节。
OmniDirector 提出 Adaptive CFG:在高噪声阶段注入相机栅格特征、在低噪声阶段注入其他控制信号,并把无条件分支设为"黑屏+静态相机描述"。理解这一点对看懂消融实验中 AdaCFG 的作用至关重要。
研究动机
相机运动是视频生成中决定氛围、情绪与叙事节奏的关键,但现有的相机控制手段存在两难:文本描述(如"向左摇")过于粗糙、无法精确刻画电影级的复杂运动;而显式相机参数(如 6DoF 外参、Plücker 坐标)虽然精准,却对普通用户门槛极高。更棘手的是"相机克隆"(直接复刻参考视频里的相机轨迹)这条最直观的路线被两个瓶颈卡住:基于显式参数的方法(MotionCtrl、CameraCtrl、AC3D 等)只能表达单镜头基础运动,碰到切镜头就崩溃,并且参数表征和图像、视频这种视觉信号之间存在语义鸿沟,模型很难端到端优化;基于隐式学习的方法(CamCloneMaster、MotionClone)则依赖"跨配对数据"——内容不同但相机轨迹完全相同的视频对,这种数据天然稀缺,合成又难以覆盖复杂电影场景,模型泛化能力很差。此外,强行用参考视频整体当条件还会带来"信息泄露"——参考视频里的外观、人物动作会泄漏到生成结果中,破坏新场景的独立性。
本文的目标是本文的目标是构建一个统一的视频生成框架 OmniDirector,让用户只要提供一张源图像和一段参考视频,就能精确克隆其中的相机轨迹(包括多镜头切镜头),并且克隆结果与参考视频在内容、分辨率、空间尺度上完全解耦,从而实现"导演级"的多模态控制。
与已有工作不同的是,本文的独特切入角度是引入"相机栅格 (Camera Grid)"作为通用的视觉化相机表征:把参考视频里估计出的相机位姿渲染成一个在空 3D 房间中运动的彩色网格视频。这条路线从三个维度同时解决了现有方法的痛点:①通用性——任意相机运动(含特殊效果如鱼眼、Hitchcock zoom)都能统一编码为网格视频;②解耦性——空房间里没有任何场景元素,从源头杜绝了外观/动作泄漏;③可扩展性——任何视频都能自动生成对应的相机栅格,使百万级训练对的构建变成流水线。在此基础上,再设计一个层次化 Prompt Expansion (PE) Agent,把用户提示、参考图像、相机轨迹三路信号融合成一段统一的文本条件,解决多模态信号之间的语义冲突。
核心方法
OmniDirector 的整体思路可以拆成三块:先用一个"空房间+网格线"的几何抽象把任意相机运动编码成一段短视频,叫相机栅格;再把这套相机栅格作为控制信号通过 token 拼接注入到 MMDiT 视频扩散模型中;最后在推理时用一个 PE Agent 把用户提示、参考图像和相机运动描述融合成统一文本,引导模型协同生成。具体技术上,模型训练数据来自自建的 180 万互联网视频,每个视频用 TransNet-V2 检测切镜头、DPA-V3 估计相机外参、按 $f=0.8\cdot\max(H,W)$ 近似焦距,再把相机位姿渲染成网格运动视频作为对应标签;架构上则把参考图像、相机栅格、目标视频三者的潜变量沿帧维度拼接成一个 $(2T+1)\times H\times W\times C$ 的时空张量,再走 3D 卷积 Patchify 进入 MMDiT 与文本 token 做联合注意力。
本文的核心创新是把相机运动从"数值参数"重新表示为"视觉视频"——相机栅格 $G$。和 Plücker 坐标、6DoF 外参这些数字表征不同,相机栅格本身就是一段和视频同形态的视觉信号,可以直接用同一个 3D VAE 编码,可以直接做 token 拼接,避开了跨模态对齐的难题。和 CamCloneMaster 这种"端到端隐式学习跨配对视频对"的方案相比,相机栅格允许任意单一视频就能产生 (V, G) 训练对,从根本上解决了数据稀缺。更进一步,30% 的训练样本被设计成"自重建"任务:目标视频被替换成相机栅格本身,迫使模型真正解析栅格的几何与时序结构,而不是把它当辅助提示忽略。
方法步骤详情
方法的具体步骤分四阶段。 第一步是相机栅格的构建。给定参考视频,先用 TransNet-V2 检测切镜头帧 $F=\{f_i\}_{i=1}^{K}$,把视频切成多个子片段,每个片段内用 DPA-V3 估计外参 $[R_i|t_i]$,焦距近似为 $f=0.8\cdot\max(H,W)$。然后在 3D 场景里构造"空房间":用两层 X-Z 平面(地板 yfloor、天花板 yceiling)配上 Y 轴方向竖直线,形成"隧道壁"。设 $\Delta h$ 与平均相机高度成比例,用 KD-tree 找每个网格点 $p$ 到轨迹投影 $c_{\rm proj}$ 的距离 $d_{\rm traj}$,仅在环形区域 $W=\{(x,z)|r0$ 且 $\Delta x<0$ 定义为 Left Arc Shot。语义融合阶段把 $T_c$、参考图像 $I$、用户提示 $T_u$ 一起喂给 Qwen3-VL,输出一段统一的最终文本 $T_f$,实现多模态信号协同。 此外,自适应 CFG 把无条件视觉分支设为黑屏,无条件文本设为"完全静止相机"描述,并采用 coarse-to-fine 调度:高噪声阶段注入相机栅格特征建立全局布局,低噪声阶段注入其他控制信号精修局部内容。
技术新颖性
OmniDirector 的技术新颖性可以从表征层、训练层、推理层三个维度来分析。表征层最核心的贡献是"相机栅格"这一视觉化表征——把抽象的相机参数 $[R_i|t_i]$ 重新编码成一段在空 3D 房间中运动的彩色网格视频。这种思路的精妙之处在于:相机栅格在数学上等价于一种"自监督可视化",因为它本身不携带任何外观/动作信息,只承载几何与时序结构,从而天然解决了跨配对数据稀缺和信息泄漏两大顽疾;与此同时,它和 RGB 视频同形态,可以复用现有 3D VAE、Patchify 等视频管线,避免了 Plücker 坐标那种需要专门设计的相机编码器。训练层的创新点是"自重建目标":让 30% 的样本以相机栅格本身作为重建目标,迫使模型把栅格当成一等公民去解析,而不是当成可忽略的弱监督信号,这种设计在多模态条件扩散训练中并不常见。推理层最值得注意的是 PE Agent 的层次化设计——把相机提示拆成 inter-shot(跨镜头关系)和 intra-shot(片段内运动)两层,分别用不同 MLLM 流水线生成,再用语义融合统一进文本条件,整套机制把"如何把异构控制信号协同成一个文本"这个开放问题工程化成了可复现的 4 步 pipeline。再加上 Adaptive CFG 的 coarse-to-fine 调度、Asymmetric Classifier-Free(无条件视觉分支设为黑屏+静态相机文本)、基于 $\theta=\arctan(r'/\zeta)$ 与 Kannala–Brandt 多项式 $\theta_d=\theta(1+k_1\theta^2+k_2\theta^4+k_3\theta^6+k_4\theta^8)$ 的鱼眼扩展、基于 $\phi\propto\rho$ 的 dolly zoom 扩展,这些细节拼在一起构成了一个相对完整的"通用相机克隆"框架,是当前学界在该方向上少有的系统性工作。
实验结果
OmniDirector 在自建的 1094 样本评测集上全面超越了 Seedance2.0、CamCloneMaster、LTX-LoRA 三个强基线。表 1 显示,本文方法的相机精度指标 RRE(相对旋转误差)为 2.64°,比第二名 CamCloneMaster 的 4.11° 改善了 35.8%;R-Pre(旋转误差 <4° 的样本占比)达到 83.18%,比 CamCloneMaster 的 74.14% 高出近 9 个百分点;翻译方向误差 RTE 为 16.84°,相比 CamCloneMaster 的 27.45° 大幅压缩;T-Pre(翻译误差 <20° 的占比)72.74%,相对 CamCloneMaster 的 52.21% 提升了 39.3%。多镜头切镜头方面,Tem-Pre(时间对齐 <3 帧)从 LTX-LoRA 的 38.94% 飙升至 96.52%,Sem-Pre(语义类型匹配)从 29.55% 飙升至 83.79%,Seedance2.0 和 CamCloneMaster 完全不支持切镜头(标 "-")。信息泄漏方面,本文帧级泄漏率仅 0.51%、镜头级 3.38%,而 LTX-LoRA 帧级泄漏 15.04%、镜头级 56.52%,差距悬殊。表 2 消融实验中,去掉 Semantic Fusion 后 Sem-Pre 从 83.79% 跌到 78.30%、Shot 泄漏从 3.38% 升到 4.10%;去掉 Trans PE 后 Sem-Pre 暴跌至 38.45%,说明跨镜头关系建模对语义连贯至关重要;去掉 AdaCFG 后 RRE 从 2.64° 升到 4.15°、T-Pre 从 72.74% 跌到 62.30%,证实 coarse-to-fine 调度的有效性。表 3 的 GSB 配对比较中,本文对 CamCloneMaster 在 Camera 维度 (G+S)/T 达 88.52%、G/(G+B) 达 86.29%,Quality 维度 95.69% / 90.82%,Narrative 维度 94.26% / 85.71%,加权平均后 91.10% / 87.08% 都明显占优。图 8 展示了一个"涌现"能力:在不重新训练的前提下,把相机栅格替换为原始 RGB 视频或 Canny 边缘视频,依然能驱动相机运动,证实了相机栅格和真实视频在表征空间的深度对齐。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 单/多镜头相机克隆(相对旋转误差 RRE) | RRE (°) ↓ | 2.64 | CamCloneMaster: 4.11;LTX-LoRA: 5.67;Seedance2.0: 8.33 | 相对 CamCloneMaster 改善 35.8%,相对 Seedance2.0 改善 68.3% |
| 旋转精度(误差 <4° 占比) | R-Pre (%) ↑ | 83.18 | CamCloneMaster: 74.14;LTX-LoRA: 66.34;Seedance2.0: 56.49 | 相对第二名 +9.04 个百分点 |
| 相机克隆(相对平移误差 RTE) | RTE (°) ↓ | 16.84 | CamCloneMaster: 27.45;LTX-LoRA: 26.96;Seedance2.0: 49.98 | 相对 CamCloneMaster 降低 38.6% |
| 平移精度(误差 <20° 占比) | T-Pre (%) ↑ | 72.74 | CamCloneMaster: 52.21;LTX-LoRA: 52.07;Seedance2.0: 29.07 | 相对第二名 +20.5 个百分点(论文报告相对提升 39.3%) |
| 多镜头切镜头时间对齐 | Tem-Pre (%) ↑ | 96.52 | LTX-LoRA: 38.94;CamCloneMaster: 2.20;Seedance2.0: 4.17 | 相对 LTX-LoRA 提升约 2.5 倍 |
| 多镜头切镜头语义对齐 | Sem-Pre (%) ↑ | 83.79 | LTX-LoRA: 29.55;其他不支持 | 相对 LTX-LoRA +54.2 个百分点 |
| 参考视频帧级信息泄漏率 | Frame Leakage (%) ↓ | 0.51 | CamCloneMaster: 1.60;Seedance2.0: 4.43;LTX-LoRA: 15.04 | 相对 LTX-LoRA 降低约 29 倍 |
| 参考视频镜头级信息泄漏率 | Shot Leakage (%) ↓ | 3.38 | CamCloneMaster: 11.59;Seedance2.0: 20.90;LTX-LoRA: 56.52 | 相对 LTX-LoRA 降低约 16 倍 |
局限与改进
作者在 Limitations 部分明确指出当前最关键的弱点是 token 拼接式注入在长视频上时间一致性和长期记忆不足,模型难以扩展到远超当前训练时长(比如几十分钟级别)的视频序列。从我自己的观察补充几点:①评测集虽然覆盖单/多镜头、简单/中等/困难、特殊效果,但只 1094 条样本,且全部来自 web 收集,对极端长尾场景(如快速体育转播、第一人称手术镜头)的鲁棒性还没充分验证;②相机栅格依赖 DPA-V3 这种位姿估计器,对遮挡严重、运动模糊、低纹理场景的位姿估计误差会直接传到栅格上,进而影响生成质量(虽然图 8 显示用原始视频替代栅格可以缓解,但这要求用户额外提供视频);③PE Agent 依赖 GPT/Gemini 等外部 MLLM 做描述与融合,推理成本高,并且 MLLM 对罕见镜头类型(arcing shot 配合 dolly)可能描述不准;④特殊效果如 fisheye 和 Hitchcock zoom 在评测集中仅 8.5%("Special Effects"),样本偏少;⑤论文没有充分讨论视频帧率、采样步数对最终相机精度的影响。
独立分析的弱点
从独立分析视角,主要弱点集中在三个方面。第一,时间一致性与长上下文能力不足:当前 (2T+1) 帧拼接 + 联合注意力的注入方式没有显式的长程记忆机制,当 T 增长时视觉 token 数量线性膨胀,全局注意力复杂度爆炸,模型难以维持跨镜头身份一致性(如同一人物在不同镜头中外观不变)。改进方向是引入 long-context cross-attention 模块或 memory bank,例如把过去 N 帧压缩成一组隐变量作为 key/value 池,限制 attention 范围同时保留长期信息。第二,相机栅格依赖位姿估计管线:DPA-V3 在复杂视频上不可避免地失效,且焦距用了 $0.8\cdot\max(H,W)$ 这种粗暴近似,对真实电影级焦距变化(如 telephoto 切换到 wide)刻画不准。改进方向是端到端学习一个"参考视频→相机栅格"的可微渲染管线,或者干脆放弃显式位姿估计,改用论文图 8 涌现能力所暗示的"直接从参考视频推断运动"路径,训练一个 reference-video-conditioned DiT 替代栅格分支。第三,PE Agent 高度依赖外部 MLLM:camera prompt 生成和 semantic fusion 都要调 Qwen3-VL/Gemini,推理成本和可控性都受影响,且 MLLM 对罕见相机语义的描述噪声会传播到生成结果。改进方向是把 PE Agent 内化为可微的 prompt expansion 模块,与视频生成模型联合训练,避免推理时多模型串接。
未来方向
作者明确提出的方向是引入先进的时间记忆机制(long-context cross-attention、memory bank)来支持更长视频的生成。基于本文的成果还可以延伸出几条值得探索的方向:①把相机栅格推广到更复杂的电影语言——例如 Z 轴 roll 镜头、360° 环绕、Push-pull rack focus,把每种特殊效果都用对应的 3D 几何元素编码到栅格里;②联合优化相机栅格与参考视频的双向条件生成,让栅格估计误差可以被下游生成器反馈修正;③把相机栅格作为一种"视频理解探针"——既然 RGB 视频和 Canny 视频都能驱动生成,可以探索其他视觉模态(depth、normal、segmentation)作为相机条件的等价替代物,进一步扩大可解释性;④把 PE Agent 拆成"用户可控"和"自动推断"两层,给专业导演保留手动覆盖接口;⑤把百万级相机栅格数据公开,反哺学界对相机运动的视觉表征研究。
复现评估
作者明确给出了项目页 https://ymlinfeng.github.io/OmniDirector.github.io/,但论文中并未声明模型权重和训练代码是否开源。从可复现性证据看:①训练数据规模 1.8M 互联网视频、180 万条 (视频, 相机栅格) 对,这对一般研究者几乎不可承担;②训练超参明确(10k 步、batch 64、lr $5\times 10^{-5}$、480p 分辨率),但 MMDiT 骨干的具体规模未披露,依赖快手内部 in-house I2V 扩散骨干,外部研究者无法直接套用;③相机栅格渲染管线虽然只涉及 NumPy + 3D 几何,可复现;④推理时依赖 Qwen3-VL、Gemini 3.1 Pro、DPA-V3、TransNet-V2、LTX-Video 等多个外部模型,单卡复现几乎不现实,至少需要 8 卡 A100 级别算力才能跑训练;⑤评测集 1094 条虽然规模可控,但 MLLM 评分的随机性会引入方差。综合评估,复现难度高,主要难在数据、算力和多模型依赖。
论文图表
一张总览图,左侧展示 Shot Arc 文字与箭头,右侧展示 3 组相机运动克隆示例,每组包含 shot1、shot2、shot3、Ref 四个画面。可以看到 OmniDirector 能从参考视频里克隆多镜头相机轨迹(推拉 + 旋转、横向移动 + 下降等),并在源图像上保持画面比例与空间尺度一致。
这是论文的"门面图",直接展示了 OmniDirector 在多镜头、内容差异、分辨率与空间尺度差异下的鲁棒性,是理解任务定义和能力上限的第一入口。