V-RGBX: Video Editing with Accurate Controls over Intrinsic Properties¶
会议: CVPR 2026
论文: CVF Open Access
代码: 项目页 https://aleafy.github.io/vrgbx/ (未见开源代码)
领域: 视频生成 / 视频编辑 / 扩散模型
关键词: 内在属性编辑, 逆渲染, 视频扩散, 关键帧传播, 重光照
一句话总结¶
V-RGBX 把视频先逆渲染成 albedo / normal / material / irradiance 等内在通道,再用一个交错式条件注入的视频 DiT 把它们重新合成回 RGB,从而让用户只在稀疏关键帧上改某一种内在属性(如换材质、重打光),就能把这个物理一致的编辑稳定传播到整段视频。
研究背景与动机¶
领域现状:随着 text-to-video / image-to-video 扩散模型的成熟,用户已经能用语言或参考图编辑物体外观、场景布局和运动。但这些编辑都停留在 RGB 像素层,控制的是"看起来怎样",而不是"物理上是什么"。
现有痛点:对真正决定物理真实感的内在属性——反照率(albedo)、辐照度(irradiance)、材质(material)、法线(normal)——几乎没有直接、解耦的控制手段。像 GenProp、VACE、DaS、AnyV2V 这些可控视频编辑方法,要么做的是外观/风格层面的迁移,要么用隐式 latent 条件把光照和材质纠缠在一起。它们把条件信号(外观、深度、光流、语义)直接注入像素空间,没有在内在域里解耦,结果就是改完一帧后,关键内在属性在后续帧里"漂移"(property drifting),无法跨帧保持一致。
核心矛盾:视频编辑需要"只改我想改的那一个属性、别的别动",而现有方法在 RGB 域里训练,光照、纹理、几何天然纠缠,改 A 会顺带改了 B;同时这些方法多是全局条件(一句 prompt 或单张参考帧),无法应对"不同时间段、不同内在模态各做一处局部编辑"的真实需求。
本文目标:构建一个闭环框架,同时具备三件事——把视频逆渲染成内在通道(RGB→X)、从内在通道前向合成逼真视频(X→RGB)、以及基于内在通道做关键帧级别的视频编辑与传播。
切入角度:与其在 RGB 域里做隐式条件,不如显式建立一个内在条件表示空间。用户在这个空间里选某一种模态改一改,模型只在该模态上施加变化、其余模态原样保留,物理解耦天然成立。
核心 idea:先 RGB→X 拆出可解释的内在通道,让用户在稀疏关键帧上编辑任意模态,再用一个带"交错式条件注入"的 DiT 做 X→RGB,把关键帧的内在编辑物理一致地传播到整段序列。
方法详解¶
整体框架¶
给定输入视频 \(V=\{v_1,\dots,v_T\}\),用户挑出若干关键帧,用 Photoshop 或 text-to-image 工具改其外观(如换个 albedo 颜色、调一下光照)。V-RGBX 由三块串成一条闭环管线:
- 逆渲染器 \(D(\cdot)\)(RGB→X):把每帧 RGB 拆成内在通道 \(D(V)=\{V_A,V_N,V_M,V_I\}\in\mathbb{R}^{T\times3\times H\times W}\),分别是反照率、法线、材质、辐照度(材质通道又含粗糙度、金属度、环境光遮蔽等表面属性)。
- 内在条件采样器 \(S\):关键帧编辑后,邻近帧未编辑的内在模态会与编辑结果冲突,不能直接拿来当条件。\(S\) 把关键帧上的编辑模态与其它帧"非冲突"的随机模态交错拼成一条统一的流式条件序列 \(V'_X=\text{Sample}(D(V))\)。
- 前向渲染器 \(R(\cdot)\)(X→RGB):以交错内在条件 \(V'_X\) 和编辑后的关键帧为条件,合成输出视频 \(V'=R(\{v'_{i_1},\dots,v'_{i_k}\},V'_X)\),把关键帧编辑跨帧传播、同时保住未触碰的内在属性。
逆渲染器和前向渲染器都基于 WAN 2.1 T2V-1.3B 的 DiT 主干,整条管线既能拆(RGB→X)又能合(X→RGB),形成可做循环一致性自检的闭环。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["输入视频 V"] --> B["逆渲染器 D(RGB→X)<br/>拆出 albedo/normal<br/>material/irradiance"]
B --> C["用户在稀疏关键帧<br/>编辑某一内在模态"]
C --> D["交错式内在条件采样器 S<br/>编辑模态 + 非冲突随机模态<br/>拼成流式条件序列"]
D --> E["时序感知内在嵌入 TIE<br/>把逐帧模态身份<br/>打进压缩 latent 块"]
F["编辑后关键帧"] -->|VAE 编码为参考 latent| G["关键帧参考注入"]
E --> H["前向渲染器 R(X→RGB)<br/>N×DiT Block 合成"]
G --> H
H --> I["输出编辑视频 V'<br/>物理一致跨帧传播"]
关键设计¶
1. 逆渲染器 RGB→X:把视频拆成可编辑的物理通道
要在内在域里编辑,前提是先有内在域。逆渲染器 \(D(\cdot)\) 复用 WAN 的 DiT 主干,把去噪过程条件在 \(h_t=[x^z_t\,\Vert\,E(V)]\) 上——\(x^z_t\) 是初始噪声 latent,\(E(\cdot)\) 是冻结的 Wan-VAE 编码器,\(\Vert\) 表示沿通道拼接。它一次只预测一种目标模态,目标模态名("albedo"/"normal"/"material"/"irradiance")被当作文本 prompt 用 CLIP 编码送进去,靠这个文本开关切换要拆哪一路。训练用 velocity-prediction(v-prediction)目标以提升稳定性,最后由冻结的 Wan-VAE 解码器把 latent 还原成对应模态的三通道图。相比逐帧独立做逆渲染的图像方法(如 RGB↔X),它直接在视频 DiT 上跑,时序一致性更好;相比不估光照的 DiffusionRenderer,它把 irradiance 也一起拆了出来,为后续重光照编辑铺好路。
2. 交错式内在条件采样:用时间复用绕开冲突与显存爆炸
关键帧一旦被编辑,邻近帧那些"还是旧内容"的内在模态就成了污染源——直接拿来当条件会和编辑结果打架。GenProp、VACE 的常规做法是在条件序列里塞空 token 来补齐缺帧,但在本文这种要同时建模四路内在通道的设定下,空 token 会带来巨大的显存开销,也限制了往更多模态扩展。作者的解法是时间复用(temporal multiplexing):把分解出的内在通道交错进一条单一条件序列
采样规则是——若第 \(t\) 帧是被编辑过的关键帧,就从该帧被修改的模态集合 \(M_t\) 里随机抽;否则从该帧"非冲突"的模态里随机抽:
这里"冲突"指某模态在任意关键帧被用户编辑过,它的改动内容若再被当条件就会引入不一致(公式中 \(K_t\) 即该帧的冲突模态集合,⚠️ 记号以原文为准)。这样每帧只占一个模态的位置(而非四路全塞),既省显存又天然鼓励跨模态传播,还能优雅适配任意属性组合和不完整输入,是个轻量、可扩展的条件机制。
3. 时序感知内在嵌入 TIE:在压缩 latent 里保住"这一帧是哪种模态"
交错采样带来一个新麻烦:Wan-VAE 会把连续四帧压成一个 latent chunk,可这四帧很可能分属不同内在模态,压完就分不清谁是谁了。TIE(Temporal-aware Intrinsic Embedding)把逐帧的模态身份打包进 chunk 维度,既保时序顺序又保模态身份。每帧 \(i\) 分一个模态索引 \(m_i\),其嵌入为 \(e_i=W\varphi(m_i)\),\(\varphi(\cdot)\) 是 one-hot 模态指示、\(W\) 是可学习的类型编码矩阵(从头训练)。再经时序适配器把一个 chunk 的四帧嵌入打包:
patchify 后每个 latent chunk \(z^k_t\) 被对应打包嵌入调制:\(\tilde z^k_t=z^k_t+\gamma\,\tilde e^*_k\),其中 \(\tilde e^*_k\) 是模态嵌入的空间广播,缩放系数 \(\gamma\) 经验取 1。这样每个 chunk 都显式携带模态信息又保住 chunk 内时序,模型在每个时间步都能区分当前处理的是哪一类内在属性,从而在跨帧一致的同时做到精确编辑。
4. 关键帧参考注入:补上内在通道里没编码的视觉信息
内在通道再全也不等于完整 RGB(比如具体纹理细节、整体视觉风格未必被四路通道完全覆盖)。当关键帧在 RGB 域被编辑后,编辑后的关键帧本身就是一份很好的视觉指引。做法是先把关键帧用空 token 补齐到与原视频等长得到序列 \(\Sigma\),经 Wan-VAE 编码成参考 latent,再把噪声 latent、交错内在条件嵌入、参考序列嵌入沿通道拼起来送进扩散模型:
把关键帧作为参考信号与内在条件联合注入,模型既学到了场景整体视觉内容,又补上了内在通道没显式表示的信息。训练时关键帧参考以 \(p_{\text{drop}}=0.3\) 的概率随机丢弃,推理时对参考条件施加 classifier-free guidance,在保真度和编辑一致性之间取平衡。消融显示:加了参考帧,PSNR 从 21.48 提到 22.42、FVD 从 401.62 降到 367.89,确实补足了风格与细节。
损失函数 / 训练策略¶
逆渲染与前向渲染均采用 v-prediction 目标。前向渲染阶段为简化省去文本条件。两个网络都从 Wan 2.1 T2V-1.3B DiT 初始化,分别训练 27K 与 12K 次迭代,学习率 \(2\times10^{-4}\),类型编码 \(W\) 从头训练;分辨率 832×480,用 32 块 A100(80GB) 训练。
实验关键数据¶
主实验¶
训练数据是基于 127 个 Evermotion 室内场景渲染的内部合成集,含 171K 帧、RGB 与四路内在通道配对监督。评测在 85 个未见 Evermotion 场景(合成)和 85 个 RealEstate10K 视频(真实)上做;默认只用每段视频第一帧当关键帧。指标用 PSNR/SSIM/LPIPS 评渲染精度,FVD 评生成质量,VBench 的 smoothness 评时序平滑。
RGB→X 逆渲染(PSNR↑ / LPIPS↓,部分模态):
| 方法 | Albedo PSNR | Albedo LPIPS | Normal PSNR | Irradiance PSNR |
|---|---|---|---|---|
| RGBX(逐帧) | 14.04 | 0.2872 | 19.44 | 11.92 |
| DiffusionRenderer | 17.40 | 0.3002 | 21.04 | 不估光照 |
| V-RGBX (ours) | 17.73 | 0.2406 | 21.59 | 19.94 |
X→RGB 内在感知合成(合成集):
| 方法 | PSNR↑ | SSIM↑ | LPIPS↓ | FVD↓ | Smoothness↑ |
|---|---|---|---|---|---|
| RGBX | 16.53 | 0.7154 | 0.2417 | 1037.15 | 0.9469 |
| DiffusionRenderer* | 12.66 | 0.6475 | 0.3376 | 1015.09 | 0.9883 |
| V-RGBX (w/o ref) | 21.48 | 0.7908 | 0.2064 | 401.62 | 0.9814 |
| V-RGBX (ours) | 22.42 | 0.7952 | 0.1930 | 367.89 | 0.9805 |
注:DiffusionRenderer 的 smoothness 偏高是"虚高"——其前向输出在定性上明显褪色/反射不真实,平滑分高反而是失真的副作用,FVD 才更能反映质量。
RGB→X→RGB 循环一致性(端到端拆了再合,比对原视频):
| 数据集 | 方法 | PSNR↑ | SSIM↑ | FVD↓ |
|---|---|---|---|---|
| Evermotion | RGBX | 15.29 | 0.7539 | 1099.04 |
| Evermotion | V-RGBX | 22.57 | 0.7985 | 367.61 |
| RealEstate10K | RGBX | 14.40 | 0.6411 | 2082.81 |
| RealEstate10K | V-RGBX | 17.88 | 0.7533 | 633.76 |
消融实验¶
| 配置 | 关键指标 | 说明 |
|---|---|---|
| V-RGBX (ours) | X→RGB PSNR 22.42 / FVD 367.89 | 完整模型,含关键帧参考 |
| w/o 关键帧参考 | PSNR 21.48 / FVD 401.62 | 去掉参考帧,掉 0.94 PSNR、FVD 升 34 |
| Drop albedo 通道 (w/o ref) | PSNR 17.18 / FVD 907.63 | 整段不给 albedo 条件 |
| Drop albedo + 1st-frame 引导 (ours) | PSNR 21.65 / FVD 427.56 | albedo 只在首帧给,被有效传播到全程 |
| Drop irradiance 通道 (w/o ref) | PSNR 17.43 / FVD 702.16 | 整段不给 irradiance 条件 |
| Drop irradiance + 1st-frame 引导 (ours) | PSNR 21.82 / FVD 396.40 | irradiance 只在首帧给,效果接近全程供给 |
关键发现¶
- 关键帧参考是质量主力之一:加上参考帧让 X→RGB 的 PSNR +0.94、FVD 降 34,说明内在通道确实不能完全覆盖视觉风格与细节,参考帧补的是这块。
- 首帧引导即可跨帧传播:某模态即使整段缺失,只要在第一帧给一次(1st-Frame X-Guided),PSNR 就能从 ~17 拉回 ~21、FVD 大幅下降,直接验证了交错条件机制确实把稀疏关键帧的引导传播到了全序列——这正是"稀疏编辑、整段生效"卖点的量化证据。
- 基线普遍存在属性漂移:定性比较中 AnyV2V 随生成推进出现几何/外观漂移,VACE 无法解耦光照、会误改其它通道甚至凭空生成新物体;V-RGBX 在解纠缠和跨帧一致上明显更稳。
- smoothness 需谨慎解读:DiffusionRenderer 多次报出虚高 smoothness,但输出褪色,提醒该指标高不等于质量好,要结合 FVD/PSNR 一起看。
亮点与洞察¶
- 把"在哪个域编辑"当成核心问题:与其在纠缠的 RGB 域硬解耦,不如先建一个显式内在域,编辑天然解耦——这个"换战场"的视角比堆条件信号更治本。
- 交错采样一招解两题:时间复用既绕开了"编辑帧旧模态冲突",又把"四路通道全塞导致显存爆炸"一起解决,还顺带支持任意模态组合,工程上很巧。
- 首帧引导跨帧传播的设计可迁移:用稀疏的少量帧条件 + 模型自身的时序传播能力来覆盖整段,这套思路在其它"稀疏标注/稀疏控制 → 稠密视频"的任务(如视频分割传播、稀疏深度补全)上都值得借鉴。
- TIE 解决了"压缩 latent 丢模态身份"的隐患:把 one-hot 模态嵌入打包进 chunk 维度,是个简单但必要的细节,否则交错采样会在 4 帧压 1 块时失效。
局限与展望¶
- 只在室内合成数据上训练:作者承认对 out-of-distribution 场景(如室外)泛化存疑,真实数据上的循环一致性指标(RealEstate10K PSNR 17.88)也明显低于合成集(22.57)。
- 每帧只采一个模态:当前交错条件每帧只放一种内在模态,限制了在同一关键帧上做复杂、多属性联合编辑的能力。
- 受限于预训练视频主干:依赖 WAN 主干,在视频长度和实时性上都受其约束;作者提到可结合长程生成方法扩展。
- 依赖外部逆渲染识别编辑模态:管线需要图像逆渲染工具来判断关键帧改了哪些内在模态,这一步的误差会传导进后续条件构建(自己发现的局限)。
相关工作与启发¶
- vs RGB↔X / IntrinsicEdit(图像级内在编辑):它们在单图上拆内在通道并重组编辑,但纯图像级,扩展到视频时无法保证逐帧传播的时序一致;V-RGBX 直接在视频 DiT 上做拆-合,且用交错条件实现跨帧传播。
- vs DiffusionRenderer:能做视频分解与重组,但不估光照、也不支持逐像素编辑的传播;V-RGBX 把 irradiance 一并拆出并支持关键帧编辑传播,循环一致性 FVD 远低(367 vs 1073)。
- vs X2Video:同为视频级 X→RGB,但需要一整段已编辑的内在序列才能渲染,无法只靠稀疏关键帧逐帧传播编辑;V-RGBX 的交错采样 + 首帧引导让稀疏编辑就能生效。
- vs GenProp / VACE / DaS / AnyV2V(可控视频编辑):它们把外观/深度/光流/语义直接注入像素空间、全局条件,不在内在域解耦,导致属性漂移、误改其它通道;V-RGBX 在显式内在域做局部、模态级控制,解纠缠更彻底。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 首个端到端内在感知视频编辑框架,把"内在域编辑"和交错条件传播这条路走通了,视角和机制都新。
- 实验充分度: ⭐⭐⭐⭐ RGB→X、X→RGB、循环一致性、控制策略消融都覆盖了,但训练只在室内合成集、真实数据评测偏少,泛化证据不足。
- 写作质量: ⭐⭐⭐⭐ 三件套结构清晰、公式与采样规则交代到位;个别记号(如 \(K_t\) 与 \(M_t\))略有跳跃。
- 价值: ⭐⭐⭐⭐ 重光照、换材质、几何感知插入等下游应用价值明确,是物理一致视频编辑的一块扎实基座。