导语:给一张图、一条相机轨迹,让视频扩散模型照着拍。轨迹清楚,模型也在动,可结果总「差一点」------方向偏十几度、边缘拉出细缝、新露出的区域像贴纸。这篇论文把原因定位在「两段内容被拼进同一个噪声潜变量,却对应不同的噪声实现」,并用四个可替换的位置(融合在哪、注给谁、用谁校、算几次)分别给出解法。静态 FID 96.08、DL3DV 上 PSNR 20.21。
一分钟速览
- 问题不是「不会动」:warping-and-repainting 把可见区沿轨迹推过去,再用外部噪声重噪贴回,与模型自己生成的部分处于不同去噪状态,作者称之为 denoising-state domain gap(Sec. I)。
- 第一招 IRR:先在模型预测的干净估计上按掩码融合,再用同一份高斯噪声重噪回当前噪声级(Sec. III-B, Eq. 7--8)。
- 第二招 FLF:用光流给每个潜通道打运动一致性分,只往高分通道注入轨迹;第 0--5 步全注、6--10 步最多 2 个通道保留、11--19 步放宽到 6 个(Sec. 3.2)。
- 第三招 DSG:引导与无引导两支速度的余弦只有 0.3--0.6(夹角 50--70 度),照 CFG 外推会炸;改用幅度匹配加正交分量(Sec. III-B, Eq. 11)。
- v-cache:把 IRR 的修正解析地写进噪声空间,用上一步缓存的速度近似,每步省一次前向(Eq. 12--13)。
- Trajectory LoRA:把运动定位从潜通道搬到网络 block,用 Shapley 挑最敏感的约 75%,再用两段式训练对齐训练与推理分布(Sec. III-D)。
做可控视频生成的人大概都遇到过这种失败:相机轨迹给得很明确,模型也确实在动,可结果就是「差一点」。位移方向偏了十几度,前景边缘拉出细缝,新露出来的区域像贴纸,纹理突然变糊。你调提示词没用,加引导强度也没用,因为问题并不在「想不想动」。
arXiv:2610.31640v1 的《WorldForge V2: Eliciting Camera-Trajectory Alignment in Video Diffusion Models》给出的诊断是:在 warping-and-repainting 这条路线里,可见区域是沿目标轨迹 warp 过来、再用外部噪声重新加噪后贴回潜变量的,而其余区域一直是模型自己那条去噪轨迹在走。两段内容被拼进同一个噪声潜变量,却对应不同的噪声实现------作者把这件事命名为 denoising-state domain gap(Sec. I)。伪影是结果,状态不一致才是原因。
整篇论文的四层设计,本质上是在回答四个不同的位置问题:轨迹证据从哪里进(融合在干净估计还是噪声潜变量)、注给谁(全部通道还是运动相关通道)、用谁校(引导预测自己还是无引导预测)、算几次(每步两次前向还是靠缓存复用一次)。最后的数字是:静态 3D 场景 FID 96.08、ATE 0.077,动态 4D 重渲染 FVD 93.17、RPE-T 0.826(Table I、Table II),在 DL3DV 上把 PSNR 从基线的 17.15 抬到 20.21(Table III)。
轨迹对不上,多半不是「不会动」,而是两段噪声不是同一份
预训练没把轨迹和内容对齐
论文对现状的判断很直接:视频扩散模型从大规模视频里学到了外观、运动、时序连续与视角变化的先验,但预训练并没有把相机轨迹与场景内容显式对齐,所以「画出好看的视频」与「跟随指定相机路径」是两件事(Sec. II-A)。要补上这一块,训练类方法引入位姿感知的条件接口、控制模块或整体微调,代价是需要大量轨迹---视频监督,而且监督不足时适配会削弱预训练已有的视觉与时序先验(Sec. II-B)。
warping-and-repainting 走的是另一条路:既然观测到的内容可以沿目标轨迹被几何地推过去,那就把推过去的部分当作证据,让预训练模型只负责补新露出的区域。这条路的优点是几何对应明确、能自然结合深度估计、点云渲染与可见性掩码,而且主干可以完全冻结。论文把自己的起点定在这里,并明确说:要研究的不是要不要用 warped reference,而是怎么用得更好。
伪影是结果,状态不一致才是原因
问题出在融合方式上。把参考帧加噪到当前噪声级、按掩码贴进可见区,这个操作看着自然,实质是把一段外部加噪的内容与一段模型自己生成的内容拼在同一个张量里。前者带着外部采样噪声的印记,后者沿着模型的去噪轨迹一路演化而来,两者的噪声状态本来就不同。作者列出四种典型症状:边界不连续、几何伪影、噪声斑块、纹理退化。
我认为这个归因是全文最有价值的一步。此前大多数改进都在「参考更准」上使劲------更好的深度、更好的位姿、更好的补洞------但如果伪影来自融合位置,那么再准的参考也躲不开状态错位。归因一换,解法就从训练侧挪到了采样侧。
另外两个次生问题也来自这条路线本身。其一是运动与外观纠缠:VAE 的通道承载不同类型的信息,把整段轨迹信号一股脑替换进所有通道,运动是被强制了,物体的材质与场景纹理也跟着被改(Sec. III-B)。其二是参考本身不干净:warped 结果里天然有空洞、遮挡区与深度边界误差,模型会照单全收。
第一招 IRR:融到干净估计里,再用同一份噪声重噪
两步改法
IRR(Intra-Step Recursive Refinement)的改法只有两步,但方向是对的:不在噪声空间拼,改在信号空间拼。先把当前噪声状态折算成一步干净估计,也就是 x̂0,i = xi − σi·vi(Eq. 2),再按可见性掩码把 warped 参考融进去:x̃0,i = M⊙xtraj + (1−M)⊙x̂0,i(Eq. 7)。可见区用轨迹参考,其余区域保留模型自己预测的干净内容。
然后是最关键的一步:采样一份高斯噪声 ϵi,把融合后的估计统一重噪回当前噪声级,x_irr,i = (1−σi)·x̃0,i + σi·ϵi,再在这个状态上让模型重新预测速度(Eq. 8)。因为所有区域都用同一份 ϵi,可见区与生成区不再来自「直接拼接的两段噪声状态」,而是同一份噪声在两个区域上的取值------这就是 gap 被压下去的原因。
代价与位置
说清楚代价:IRR 每一步要做两次模型评估。第一次在原潜变量上求干净估计,第二次在引导后的潜变量上求速度(Sec. III-C 开头也是这么描述的)。它换来的是融合的合理性,但把采样成本抬上去了,这一点后面 v-cache 会专门处理。
顺带把整条链路放在一起看:左侧是单张图像或视频首帧,经三维重建拿到深度与位姿,沿目标轨迹渲染出带掩码的 warped 帧;右侧是干净潜空间注入(Route 1)与噪声潜空间注入(Route 2)两条路线,以及只改敏感 block 的 Trajectory LoRA(图 1)。值得留意的是图里 DSG 出现的位置:它不是接在 IRR 后面做后处理,而是每步都在引导速度与原始速度之间做一次校正。

图 1|整条链路:左列由单图或首帧加目标轨迹重建几何、warp 出带掩码的参考帧;右列是干净潜空间注入与噪声潜空间注入两条路线,外加 Trajectory LoRA
这一类「先回到信号、再重噪」的手法在扩散编辑里并不新鲜,SDEdit 一类思路都是一家人。但我认为这里的差别在于它强调的不是「重噪」这个动作,而是「同一份噪声」这个约束。少了后者,重噪只会把伪影抹匀,不会把状态对齐。
另外两招:FLF 只注该注的通道,DSG 拿无引导预测当参照
FLF:注给运动相关的通道
FLF(Flow-Gated Latent Fusion)解决的是「注给谁」。论文引用 MOFT 的观察:VAE 的通道对运动与外观的承载并不均匀,用 PCA 可以找出与运动强相关的通道。于是 FLF 在每个去噪步、对每个通道算一次光流,比较模型预测的相邻帧运动与 warp 参考的相邻帧运动,用三项指标衡量一致性:掩码端点误差、掩码角度误差、离群比例,归一化后加权成分值 Sc = γE(1−Ec) + γA(1−Ac) + γO(1−Oc)(Eq. 9)。默认权重是 0.4、0.4、0.2。
选通道的阈值不是固定值,而是跟着当步通道分值分布走:δi = μS,i − λi·σS,i,λ 默认为 0.65(Sec. 3.1)。这套调度还有个阶段设计------Wan2.1 的 16 个潜通道在第 0 到 5 步全部接收注入,因为早期潜状态太噪、光流估不准;第 6 到 10 步最多允许 2 个通道保留原预测,也就是至少 14 个通道仍在接收参考;第 11 到 19 步放宽到 6 个通道,把纹理恢复的自由度还给模型(Sec. 3.2)。这个「先粗后细」的收紧节奏,我认为比阈值本身更值得抄。
DSG:用无引导预测当参照
DSG(Dual-Path Self-Corrective Guidance)解决的是「用谁校」。思路借自 CFG 与 AutoGuidance:比较带轨迹引导的速度与冻结模型原始速度,用两者的差来修正引导。但论文量了一个很有意思的数------这两支速度的余弦相似度通常只有 0.3 到 0.6,对应夹角约 50 到 70 度;而标准 CFG 里条件支与无条件支几乎平行。原因是 IRR 与 FLF 直接改了潜变量本身,而不只是改了条件,所以方向差得多。此时若照 CFG 的公式外推,更新幅度会过大。
DSG 因此改用 APG 的思路:先把两支的幅度对齐,再只取与原始方向正交的那部分轨迹分量:v_corr = v_irr + ρ·βi·v_irr − αi·(\|v_irr\|₂/\|vi\|₂)·vi(Eq. 11),其中 αi 是两支的余弦、βi 是其角差的正弦、ρ 控制修正强度,默认为 4.0。两支同向时修正自然变小,两支分歧时轨迹专属分量被放大------这个自适应正是它比「直接乘一个 CFG 权重」稳的原因。
消融把两个模块都钉住了
消融把这个判断钉住了。以完整框架为基准(静态 FID 96.08、动态 FVD 93.17),去掉 DSG 变成 109.43 与 95.69,去掉 FLF 变成 112.69 与 99.79,两个都去掉是 113.12 与 103.17,而把 DSG 换回标准 CFG 形式则掉到 120.91 与 109.10(Table IV)。换句话说,两个模块都有用,但「用错校正公式」的代价最大------这也解释了为什么很多 warp 流程一加大引导强度就崩。
v-cache:把修正搬到噪声空间,省掉一次前向
一行推导
IRR 多出来的那次前向,被 v-cache 用一个漂亮的推导省掉了。作者比较「IRR 状态」与「直接插入状态」在同一步、同一份 xi、xtraj、M、ϵi 下的差,把可见区抵消掉之后,剩下的差只落在模型生成区:x_irr − x_dir = (1−M)⊙σi·ϵi − (xi + (1−σi)·vi)(Eq. 12)。括号里的 xi + (1−σi)vi 在 flow 形式下正好是「一步反演噪声」,也就是从当前潜变量与速度反推出来的那个噪声端点。
这条式子的含义是:IRR 相对于直接插入的全部差别,等价于在非可见区施加一个模型相关的噪声修正,不需要真的走一遍干净估计再重噪。既然如此,只要拿到 vi 就能在噪声空间直接改。而 vi 恰恰是上一步已经算过的东西,于是用上一步缓存的 v̄i 近似:x_vc,i = x_dir,i + (1−M)⊙σi·ϵi − (xi + (1−σi)v̄i)(Eq. 13)。第一个引导步没有缓存,退回直接插入;此后每步只需一次模型评估。
用统计量而不是观感来验证
这个近似对不对,论文没有用观感来论证,而是用统计量。对第 i 步的潜变量,用速度反推噪声端点 ϵ̂i = xi + (1−σi)vi,分别在 warped 可见区与模型生成区统计每个通道的均值与方差,再看两个区域之间的均值差与对数方差差(Eq. S32 到 S34)。三个 held-out 案例、相同主干、输入、轨迹、初始随机种子与噪声表下,直接插入的均值差在采样中期爬到 0.02 附近、对数方差差一路涨到 1.0 以上;IRR 与 v-cache 两条曲线则基本贴在 0 附近(图 2)。图下方的两组画面把这件事说得很直白:直接插入留下斑块与断裂结构,IRR 与 v-cache 的表面是连的。

图 2|直接插入在推断噪声的均值差与对数方差差上一直留着缺口,IRR 与 v-cache 把它压平;下方两例可见直接插入的斑块与断裂结构
我认为这张图是全文最硬的一张证据。原因不在曲线好看,而在于它把「两段内容状态不同」这个原本只能靠肉眼判断的说法,变成了两个可以测的量。有了这两个量,v-cache 的近似误差也就变成了可以自查的东西,而不是「应该差不多吧」。
当然,这个近似成立的前提是相邻去噪步的预测高度相关------这也正是扩散缓存一类方法的老前提。论文没有给出缓存失效的判据,比如某一步两支速度差过大时是否退回精确修正。这算是留给工程实现的一个旋钮:修正区间(默认前 20 步)本身就是这条路线的开销上限。
Trajectory LoRA:把「通道级定位」搬到 block 级
用 probe LoRA 与 Shapley 找敏感块
走到这里,训练自由的部分已经能压住伪影。但如果想让模型本身对轨迹更敏感,就得做适配。论文对「怎么做适配」的判断和前面一脉相承:全模型微调或挂一个大控制模块,都需要大量轨迹---视频对,监督一少就会把预训练的外观与时序先验磨掉(Sec. III-D)。既然 FLF 已经证明了「运动信息在潜通道上并不均匀分布」,那同一个判断可以往上提一层------网络的不同 block 对轨迹的响应也不均匀。
怎么找出敏感的 block?先给每个候选自注意力 block 挂一个轻量 probe LoRA,主干全冻;用干净目标与轨迹潜变量按噪声级插值得到 x_probe = (1−σ)x0gt + σxtraj,让 probe 学「从这个轨迹状态去噪到干净目标」的方向(Eq. 14)。probe 只训了约 400 步、每个主干用 25 对样本,目的不是训出一个好模型,而是拿到各 block 的响应。
然后是用 Shapley 值排贡献。以「probe 全部打开」与「全部关闭」的速度差 d(ξ) 作为完整响应,用归一化投影 Uξ(S) 度量子集 S 的贡献,再用随机置换与它的逆序做平均,得到每个 block 的边际贡献 Φb(Eq. S35、S36)。只保留 TopK 个 block 挂最终 LoRA。这个做法比「逐层试」省得多,也比「按深度拍脑袋选后几层」有依据。
两个主干的敏感分布不一样
排出来的结构本身就有信息量:LongCat 的敏感 block 散在中后层,中间夹着若干低响应块;H3 的响应则明显向后层集中,前十几层几乎为零(图 3)。两个主干的结构不同,选出来的块数也不同------LongCat 36/48、H3 38/50,都约 75%(Sec. IV-C)。

图 3|Shapley 值排出的 block 重要度:LongCat 的敏感块散在中后层,H3 更规整地集中在后层,这正是只适配 75% 的依据
我最认可这一处的直觉反转。「LoRA 就该到处挂」在数据充足时没问题,但在只有 50 对视频的设定下,把参数铺满反而有害:消融里 H3 选响应最低的 25 个 block,PSNR 只有 17.27,比选敏感的 38 个(20.15)低了近 3 dB(Table V)。低响应块上的适配不是「没效果」,而是「在破坏预训练纹理」。
两段式训练:让适配器去噪「引导时真会遇到的状态」
Trajectory LoRA 的训练输入有个陷阱。标准 flow matching 是拿干净目标独立加噪来构造输入,但在推理时,模型看到的是 v-cache 引导过的潜变量:里面已经混了 warped 参考、可见性掩码,还有缓存的修正项。用独立加噪的目标去训,等于让适配器去适应一个它在推理时永远不会遇到的数据分布。论文把这一点说得很清楚,并用两段式训练来补这个缝。
先 warm-up 真实状态,再扩噪声级
第一段是 anchor warm-up:按固定噪声表跑一遍 v-cache 引导采样,把真实出现的中间状态存下来,每对样本存 5 个 anchor,噪声级约为 0.87、0.92、0.93、0.95、0.97(Sec. 3.4)。在这些真实状态上做初步适配,让 LoRA 先熟悉引导带来的分布偏移。
第二段把监督扩到 anchor 之外的噪声级:从 anchor 出发,用 warm-up 后的模型预测速度并按欧拉步推到目标噪声级(Eq. 16),再施加与推理完全相同的参考插入与 v-cache 修正,得到构造输入;状态构造本身不追梯度,只有后续那次去噪预测回传(Eq. S37、S39)。混合比例是 10% 用真实 anchor、25% 用独立加噪目标、65% 用构造状态。
消融与一个未展开的细节
消融显示这套组合确实在起作用:LongCat 的完整策略 PSNR 19.03、LPIPS 0.2822,标准 flow matching 只有 18.55 与 0.3407,完全不用 LoRA 则掉到 18.07 与 0.3640;H3 上差距更大,完整 20.15 对不用 LoRA 的 14.85,LPIPS 是 0.2775 对 0.4220(Table VII)。作者对标准 flow matching 的解释也很到位:它在某些相机指标上数值不算差,但训练输入与推理状态差太远,引导一开就露出空洞、裂缝与渲染残迹。
这里我要提一个论文只用表格呈现、没展开的现象:H3 的「不做 warm-up」变体 PSNR 反而更高(20.35 对 20.15),但相机误差更差(RPE-T 0.1894 对 0.1732、RPE-R 0.1106 对 0.1003)。也就是说 warm-up 换来的是控制精度,不是像素保真。如果读者的目标是画质,这两段的取舍可能要重排------这一点论文未给出进一步分析。
训练自由:静态 3D 上五项指标全胜
训练自由这套(IRR + FLF + DSG)在 Wan2.1 I2V-14B 上实现,50 步 UniPC 采样,IRR 默认只在前 20 步生效(Sec. 3.2)。静态测试集包含 40 多个场景的 70 多个源视角,来自 LLFF、Tanks and Temples、Mip-NeRF 360 以及真实或生成图像;对比对象是 See3D、ViewCrafter、ViewExtrapolator、TrajectoryAttention、TrajectoryCrafter 与 NVS-Solver,全部用官方实现与相同输入(Sec. IV-A、Sec. 2.1)。
| 方法 | FID ↓ | ATE ↓ | RPE-R ↓ |
|---|---|---|---|
| See3D | 123.26 | 0.091 | 0.250 |
| ViewCrafter | 117.50 | 0.236 | 0.728 |
| ViewExtrapolator | 125.50 | 0.183 | 0.882 |
| TrajectoryAttention | 122.37 | 0.159 | 0.532 |
| TrajectoryCrafter | 111.49 | 0.090 | 0.267 |
| NVS-Solver | 118.64 | 0.224 | 1.056 |
| 本文(训练自由) | 96.08 | 0.077 | 0.221 |
五项指标(FID、CLIP、ATE、RPE-T、RPE-R)全部最好,这是论文的原话。幅度上要说清:ATE 从 0.090 到 0.077、RPE-T 从 0.152 到 0.086,改善是真的但不算夸张;FID 从 111.49 到 96.08 才是量级上的差距。我认为这两组数字必须成对读------如果只压住了轨迹却把 FID 抬上去,那就还是老问题:几何约束是拿画质换的。
定性结果也是同一个方向。三组场景(雕像、绿植、蜘蛛侠)逐列对比,红框标出的正是基线塌掉的区域:有的把远处细节糊成一片,有的在新露出区域凭空造出结构;绿框里本文方法保住了轮廓与材质(图 4)。这几组案例的说服力在于,warped 参考本身就带洞,模型必须「补」,而补得对不对肉眼可判。

图 4|静态 3D 的三组对比:每列从上到下是输入与目标、六种基线、本文方法,红框标出基线塌掉的区域,绿框是本文对上的细节
训练自由:动态 4D 上 FVD 93.17,但 ATE 没赢
动态设定更难:源视频里有人物走动、有机位变化,重渲染时要同时保住人体外观、物体运动与场景结构。测试集是 30 多个源视频的 50 多条轨迹控制输出,来自 DAVIS、电影片段与生成视频;对比对象缩小到 ViewExtrapolator、TrajectoryAttention 与 TrajectoryCrafter,用匹配的源视频与目标轨迹(Sec. IV-B)。
| 方法 | FVD ↓ | ATE ↓ | RPE-T ↓ |
|---|---|---|---|
| ViewExtrapolator | 108.48 | 1.040 | 1.208 |
| TrajectoryAttention | 106.94 | 0.605 | 1.238 |
| TrajectoryCrafter | 97.31 | 0.431 | 1.078 |
| 本文(训练自由) | 93.17 | 0.527 | 0.826 |
FVD、CLIP-V、RPE-T、RPE-R 四项领先,但 ATE 0.527 高于 TrajectoryCrafter 的 0.431。论文的措辞很克制,只说这四项领先,没有把 ATE 也算进去(Sec. IV-B)。我觉得这个细节挺重要:它说明两类误差并不总是同向的。TrajectoryCrafter 的全局位置更贴合目标路径,但它的逐帧相对旋转 RPE-R 高达 8.950,是本文 2.690 的三倍多------整体不跑偏,每一步都在抖。
对做下游任务的人来说,这两个口径对应完全不同的需求:做几何重建、要多视角对齐的,看 ATE;做相机运动平滑、要做视频接续的,看 RPE-T 与 RPE-R。论文没有把这两类误差合成一个总分,我认为是对的,但它也意味着「谁的轨迹更准」没有单一答案。
定性上最能说明问题的是人体与新暴露区域:基线在脸部和身形上出现扁平化、在遮挡边上出现浮动结构,本文方法的框选区域保持了连贯的形状与运动(图 5)。作者把这条归因于「warped 提供显式相机约束、视频模型提供内容先验」的分工,我认为是准确的------动态场景里真正难的不是把像素推过去,而是推过去之后让运动学上说得通。

图 5|动态 4D 重渲染:人体外观与物体运动都要保住,四种基线在新暴露区域出现扁平脸与浮动结构,本文方法的绿框区域更连续
学到的控制:PSNR 从 17.15 到 20.21
Trajectory LoRA 的评测换了一套数据:从 DL3DV 的优化 3D 高斯表示出发,沿目标轨迹渲染出干净目标视频,同时用源视图深度 warp 出参考与掩码,于是每对样本共享同一条轨迹------warped 视频提供条件,渲染视频提供几何对齐的监督(Sec. III-D)。主对比 200 例(40 个场景各 5 条随机轨迹),序列 25 到 93 帧,生成 832×480,评测在 640×360 的公共区域上并排除输入帧。基线是 UniWorld-View、TrajectoryCrafter、SymphoMotion 与 Warp-as-History。
重建赢了,轨迹分化
| 方法 | PSNR ↑ | LPIPS ↓ | RPE-R ↓ |
|---|---|---|---|
| UniWorld-View | 17.15 | 0.3370 | 0.1218 |
| TrajectoryCrafter | 17.41 | 0.3558 | 0.0990 |
| SymphoMotion | 15.38 | 0.4433 | 0.2196 |
| Warp-as-History | 15.48 | 0.4206 | 0.2398 |
| 本文(LongCat) | 19.72 | 0.2748 | 0.1324 |
| 本文(H3) | 20.21 | 0.2698 | 0.0780 |
五项重建指标(PSNR、SSIM、LPIPS、Vis-LPIPS、Disocc-LPIPS)两个主干都赢了,而且差距不小:PSNR 比最好的基线高 2.3 到 2.8 dB,Vis-LPIPS 与 Disocc-LPIPS 同时下降,说明「保住已观测内容」和「补好新露出区域」这两件事都在改善,而不是拿一边换另一边。
但相机指标就分化了。H3 的 RPE-T 0.1647、RPE-R 0.0780 是全场最低,论文因此只说 H3 的局部相机误差最低;而 ATE 最低的其实还是 UniWorld-View 的 0.00625,H3 是 0.00685。更要注意 LongCat:它的 ATE 0.00905、RPE-T 0.2725、RPE-R 0.1324,比 TrajectoryCrafter 的 0.00710、0.2013、0.0990 都要差。也就是说,同一个方法挂在不同的主干上,重建收益与控制收益并不是同比例兑现的。
雷达图把这件事压成了一目了然的形状:八个轴上本文方法的绿线整体在外圈,尤其是 PSNR 与 SSIM 两个轴上明显,而 RPE-R 那一角与几条基线贴得比较近(图 6)。看这张图时我建议大家把「重建轴」和「轨迹轴」分开描一遍,比整体形状更有信息量。

图 6|八项指标一张雷达图:绿线是本文方法,PSNR 与 SSIM 在外圈,ATE、RPE-T、RPE-R 与两类 LPIPS 都压向内圈
定性上,五个 DL3DV 场景各两行,本文两个主干在细结构(栅栏、货架、绳结)和半遮挡物体上保住了材质与形状,基线则留下残迹与断裂(图 7)。这里我特别留意第 (d) 组:参考里的绳子几乎断成两截,模型把两边接了起来------这正是 Disocc-LPIPS 在测的能力。

图 7|DL3DV 五个场景的重建对比:每例两行,本文两个主干在细结构与半遮挡物体上保住材质与形状,基线留下渲染残迹
数据效率与消融:一个场景够用,75% 的块是底线
这套方法最有工程意义的部分在训练成本上。所有实验共用 50 对轨迹---视频(25 到 93 帧),两个主干都用 rank 128、α 128 的 LoRA,学习率 2e-5;LongCat 训 1,200 次、H3 训 1,500 次(Table S2)。把它和基线的数据规模放在一起看才有意义:UniWorld-View 用了 10 万组三元组加 10 万对、TrajectoryCrafter 用了 12 万多视角加 6 万对(Table S4)。
场景数与更新数
场景数消融给出的结论很干脆:在总对数固定为 50 的前提下,1、2、4、8 个场景的差别很小。LongCat 的 PSNR 从 18.96 到 19.03、ATE 在 0.0105 到 0.0113 之间来回;H3 反而在 1 个场景时 PSNR 最高(20.15,8 个场景是 19.91)(Table VI)。作者的解读是「2 到 4 个场景拿到大部分收益,再扩收益有限」,我认为对 H3 还可以说得更强:这个主干上多余的场景多样性没有带来收益。
更新数与收敛的关系也有同样的意味:LongCat 用 8 个场景更稳,感知质量在 1,200 次更新附近达到最好,再练就有过拟合迹象;H3 从 1 个场景就能学,而且把低敏感 block 的 LoRA 去掉之后收敛更快、感知质量更好(图 8)。这与我上一节提到的「低响应块在破坏先验」正好互相印证。

图 8|训练更新数与质量的关系:LongCat 用 8 个场景更稳、约 1,200 次更新到感知最优,H3 只用 1 个场景也学得动
训练便宜,推理不便宜
推理成本则完全是另一幅图景。单张 A100、832×480、200 例平均:LongCat 274.2 秒、H3 707.3 秒,对照 TrajectoryCrafter 169.0 秒、SymphoMotion 442.9 秒、Warp-as-History 39.3 秒(Table S4)。只有叠加公开的加速 LoRA 之后,LongCat 降到 67.0 秒(4.09 倍)、H3 降到 139.0 秒(5.09 倍)。作者说明这两组加速 LoRA 可以免额外轨迹训练直接复用------这一点很实用,但也说明「训练便宜」并不等于「推理便宜」。
消融里还有一个我建议大家一定看数的对比:block 选择的随机对照。LongCat 上选最敏感的 36 个 block,PSNR 19.03,反而略高于全 48 个 block 的 18.98;随机选 24 个只有 18.29,选响应最低的 24 个是 17.12(Table V)。三点几 dB 的差距不是噪声,它说明「选块」这一步不是锦上添花,而是 50 对视频这种监督量级下能不能跑通的前提。
适用边界:作者自己划的线,和我读出来的几条
第一条边界是几何估计。整条路线的证据来自 depth 与 pose,论文用的是 VGGT、UniDepth 这类估计器(Eq. 5 前后的描述)。补充材料比较了 VGGT、UniDepth、Mega-SaM、DepthCrafter 四种参考来源,结论是布局与表面仍然可辨;但「可辨认」与「精确」是两回事。论文也直接给了失败样例:深度严重出错时 warp 参考本身的几何就是错的,输出会留下畸变的脸(Fig. S7)。
第二条边界是场景动态。快速运动、非刚性形变、重度遮挡都会让参考融合变难,即使开了 FLF 也只是减轻而不是消除(Sec. 4.5)。这与前面的动态结果对得上:FVD 领先,但 ATE 没赢------复杂动态下全局轨迹的贴合度是这套方法相对弱的一环。
第三条边界是时长与视场。大范围旋转与超出原视场的路径需要分段生成,用上一段末帧初始化下一段(Fig. S9)。这说明它当前是「片段级」的相机控制,不是端到端的长视频世界模型。作者在结语里也把长时程、实时流式生成列为下一步。
第四条是评测口径。ReCam-Master 不接受 warped reference 作为轨迹输入,因此只出现在定性比较里(Sec. IV-B);训练类方法里的 CameraCtrl 一类也没有进入定量表。所以这张表证明的是「在 warping-and-repainting 这条路线里它是当前最好的」,不是「所有相机控制方法里它最好」。
最后是我自己数出来、论文未给出的几项:没有成功率或失败率统计,没有主观评测,没有显著性检验;也没有按轨迹难度(旋转幅度、位移长度、基线长度)分层的数字。想在项目里用这套方法,建议先在自己的数据上按这三档难易各跑一批,再决定是否需要换成 H3 这种更重的骨干。LongCat 那组「重建强、轨迹偏弱」的结果就是提醒。
我读完之后的几点提炼
- 第一,先修状态,再修控制。warp 类方法的伪影大多来自融合位置,而不是网络容量或参考质量。把同一份噪声这个约束补上,很多问题不需要训练就消失了------IRR 的全部改动就是两步:融到干净估计里、用同一份噪声重噪。
- 第二,监督信号要落在推理时真实会出现的分布上。两段式训练的价值不在于多训了几百步,而在于 anchor 是从真实的 v-cache 引导采样里取出来的。如果训练输入是干净目标加噪,而推理输入是带条件残留的中间状态,适配器学到的就不是它该学的东西。
- 第三,参数该省在「不敏感」的地方。Shapley 排 block、光流排通道,看似两件事,本质是同一个判断在两个尺度上的应用:数据少的时候,选对参数比多给参数更值钱。选错的地方不是没效果,而是破坏。
- 第四,指标的成对读法要有意识。重建(PSNR、SSIM、LPIPS、Vis、Disocc)与轨迹(ATE、RPE-T、RPE-R)会分家:LongCat 重建强而 ATE 偏弱,TrajectoryCrafter 的 ATE 好但 RPE-R 崩。论文没有合成总分,我认为是对的,读者也不该自己合。
- 第五,报告要诚实。动态 ATE 没赢就不写赢,只写领先的四项;H3 的 w/o warm-up 变体 PSNR 更高也照实放表里。这种克制在可控生成这种容易被「看起来更好」带偏的领域里,比多刷一个点更有价值。
结语:这篇论文没有提出新主干,也没有造新的 3D 表示。它做的是把「轨迹证据怎么进模型」这件事拆成四个可以独立替换的位置------融合在哪、注给谁、用谁校、算几次,然后逐个给出可测的依据。对做可控生成的人来说,这四问比任何一个具体模块都更值得记住。
术语速查
- denoising-state domain gap:warped 可见区用外部噪声重噪、生成区跟随模型自身去噪轨迹,两段处在不同噪声状态(Sec. I)。
- IRR:Intra-Step Recursive Refinement,先在干净估计上按掩码融合参考,再用同一份噪声重噪回当前噪声级(Sec. III-B, Eq. 7--8)。
- FLF:Flow-Gated Latent Fusion,用光流给每个潜通道打运动一致性分,只往高分通道注入轨迹(Sec. III-B, Eq. 9--10)。
- DSG:Dual-Path Self-Corrective Guidance,用无引导速度作参照,做幅度匹配后只取正交的轨迹分量来修正引导(Sec. III-B, Eq. 11)。
- v-cache:把 clean-estimate 融合的修正改为噪声空间中的解析形式,并用上一步缓存的速度近似当前速度,省掉一次模型评估(Sec. III-C, Eq. 12--13)。
- Trajectory LoRA:先用 probe LoRA 加 Shapley 值挑出对轨迹敏感的自注意力 block,再只在这些 block 上挂 rank 128 的 LoRA,并用两段式训练对齐 v-cache 推理状态(Sec. III-D)。
工程落地清单
- 先测噪声状态差,再谈调参。按 Eq. S32--S34 在 warp 可见区与生成区分别统计推断噪声的均值与对数方差,若对数方差差超过 0.5 就先修融合位置,而不是加引导强度。
- 融合放在干净估计里,并且只用一份噪声。这是 IRR 的核心,也是所有 warp 类流程最容易漏的一步(Eq. 7--8)。
- 通道级门控按阶段收紧。早期全注保证运动建立,中期只放少数通道保纹理,后期再放松;论文给的是 16 通道下 0/2/6 的三段调度。
- 别用 CFG 的形式做轨迹校正。两支速度夹角 50--70 度时标准 CFG 会过度外推,改用幅度匹配加正交分量的形式(Eq. 11),ρ 从 4.0 起调。
- 学适配时只改敏感块,并让训练输入来自真实引导采样。50 对视频这个量级下,全 block 适配与「独立加噪目标」训练都会掉点(Table V、Table VII)。
- 推理预算要提前算。单张 A100 上 LongCat 274.2 秒、H3 707.3 秒;若上生产,务必叠加加速 LoRA(67.0 秒与 139.0 秒)。
常见问题(FAQ)
- Q1:这套方法需要训练吗?分两条路。IRR + FLF + DSG 是训练自由的,主干完全冻结,只在采样时改潜变量;Trajectory LoRA 是可选的训练路径,用 50 对轨迹---视频、1,200 到 1,500 次更新即可(Sec. III、Table S2)。
- Q2:为什么不能直接加大 CFG 权重来强化轨迹?因为 IRR 与 FLF 改的是潜变量本身,引导支与原始支的余弦只有 0.3--0.6、夹角 50--70 度,标准 CFG 的外推会过大;消融里把 DSG 换成 CFG 形式后,静态 FID 从 96.08 掉到 120.91(Table IV)。
- Q3:训练真的只要一个场景就够吗?论文的数字是:H3 只用 1 个场景、50 对视频就达到 PSNR 20.15,扩到 8 个场景是 19.91;LongCat 则更依赖场景多样性(1 个场景 18.96、8 个场景 19.03)(Table VI)。所以「够用」要看主干,H3 上确实够。