跳转至

Omni-3DEdit: Generalized Versatile 3D Editing in One-Pass

会议: CVPR 2026
论文: CVF Open Access
代码: https://github.com/mt-cly/Omni3DEdit
领域: 3D视觉
关键词: 3D编辑, 多视图生成, LoRA, 数据合成, 扩散模型

一句话总结

Omni-3DEdit 把指令式 3D 编辑从"显式 3D 表示上的迭代优化"搬到多视图潜空间的一次前向传播,用一个基于预训练多视图生成模型 SEVA 的网络 OmniNet 同时支持物体删除/添加/外观编辑,并配一条数据合成管线解决配对数据稀缺,把单次编辑从几十分钟压到约 2 分钟。

研究背景与动机

领域现状:主流指令式 3D 编辑(如 InstructN2N、GaussianEditor)走的是"2D 模型指导显式 3D 表示迭代优化"的路线——反复采样相机视角、用 2D 编辑/inpainting 模型算梯度,再回灌进 NeRF 或 3D Gaussian,靠几千次迭代来弥补 2D 模型本身缺乏多视图一致性的问题。

现有痛点:这条路线有两个硬伤。其一是缺乏通用性:不同编辑任务需要不同的显式几何操作规则——外观编辑必须保留源几何,而物体删除却要大幅改动几何并依赖 mask,很难设计一套兼容所有任务的迭代规则。其二是:迭代上千次导致单次外观编辑就要几十分钟,还容易把纹理细节磨平。

核心矛盾:维护并更新一个显式 3D 表示、同时保证一致性,本质上就既慢又难以通用。后来有工作(Tailor3D、CMD)尝试在物体级 3D 隐空间里做单次统一编辑,但它们只在 object-centric 数据集(如 ObjaVerse)上训练,被绑死在特定相机位姿分布和无背景的单物体上,处理不了带背景、任意视角的场景级输入

本文目标:要一个统一、快速、且能处理场景级任意视角的 3D 编辑模型,覆盖删除/添加/外观三类任务。

切入角度:作者把编辑战场从"显式 3D / 物体级隐空间"换到多视图潜空间——直接吃任意视角的多视图图像 + 编辑指令,输出一组一致的已编辑多视图,下游再用重建模型(AnySplat)秒级拿回 3D 资产。这样既能借力近年多视图生成、2D 编辑、3D 重建的进展,又天然支持场景级和任意视角。

核心 idea:先用现成 2D 编辑器(Qwen-Image)在随机选的一个视角上编辑出"参考视角",再训一个 OmniNet 把这个编辑信号隐式传播到其余所有视角,全程一次前向、不做在线优化。

方法详解

整体框架

给定源 3D 场景的 \(N\) 个任意视角图像 \(I_{src}=\{I^1_{src},...,I^N_{src}\}\) 和编辑指令 \(P\),Omni-3DEdit 的流程是:先用 VGGT 估出各视角的相对相机位姿 \(p\);随机挑一个视角用 Qwen-Image 按指令编辑,得到一张条件参考图 \(I_{cond}\),它携带"该怎么编辑"的信号;把源视图和条件视图经 VAE 编码成源 latent \(s\) 和条件 latent \(c\)。OmniNet(\(f(\cdot)\))吃下源 latent、条件 latent 和带噪目标 latent,一次前向去噪出全部目标视角 latent,再经 VAE 解码得到一致的已编辑多视图;这组视图可选地丢给 AnySplat 在几秒内重建出编辑后的 3D 资产。

整条 pipeline 的精髓在于:模型不预设任何任务先验,只靠"参考视图 ↔ 源视图"之间的关系来隐式学习传播编辑内容,因此删除/添加/外观三类任务用同一套网络、同一次前向就能搞定。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["源多视图 + 编辑指令"] --> B["VGGT 估位姿<br/>随机挑一视角"]
    B --> C["Qwen-Image 编辑<br/>得条件参考图 c"]
    A --> D["VAE 编码<br/>源 latent s"]
    C --> E["VAE 编码<br/>条件 latent c"]
    D --> F["多视图潜空间统一编辑<br/>序列拼接 s,c,带噪 y + indicator + Plücker"]
    E --> F
    F --> G["双流 LoRA<br/>Geometry + Guidance"]
    G -->|一次前向去噪| H["VAE 解码<br/>已编辑多视图"]
    H -->|可选| I["AnySplat 重建<br/>编辑后 3D 资产"]

训练数据怎么来是另一条离线管线(见关键设计 3),它产出配对的"编辑前/后多视图"来驱动 OmniNet 训练,不在上面这条推理流程里。

关键设计

1. 多视图潜空间统一编辑范式:把三类任务塞进一次前向

针对"显式 3D 路线缺通用性 + 慢"的痛点,作者不再维护显式几何,而是让 OmniNet 在序列空间里同时处理三组 latent:源视图 latent \(s\)、条件视图 latent \(c\)、带噪目标 latent \(y_\sigma\)。训练时目标 latent 按 EDM 加噪 \(y^n_\sigma = y^n + \sigma\epsilon\),三组 latent 沿序列维拼接(而非新增模块),从而最大化复用 SEVA 预训练时学到的跨视图几何关系先验。为了让网络分得清三种 latent 的角色,作者在特征空间给 \(s\)\(c\)\(y_\sigma\) 分别打上 \(-1\)\(1\)\(0\)indicator;又把源视图位姿转成 Plücker embedding 注入条件视图和带噪目标视图,补足透视几何关系。损失只在目标视图 latent 上算:\(L = \mathbb{E}\big[\|f(y_\sigma, s, c, \sigma)-y\|^2_2\big]\)。这套设计的好处是模型对任务零假设,仅凭参考视图与源视图的关系隐式传播编辑,天然兼容删除/添加/外观,且推理就是一次去噪、无在线优化,把时间从几十分钟降到约 2 分钟。消融显示 indicator 和位姿都不可或缺:去掉 indicator PSNR 从 17.72 掉到 15.20,去掉位姿掉到 14.54。

2. 双流 LoRA:用解耦参数化解"源视图信息被旁路"的难题

直接把 SEVA 改造来吃源视图 latent 时,作者发现无论是特征空间拼接还是序列空间拼接,性能都明显退化——模型既丢了目标区域的生成能力,又没法保留源视图里未编辑区域的上下文。根因在于用同一套共享投影层去处理功能完全不同的输入:条件视图提供的是某个视角下精确的"编辑信号",而源视图提供的是跨相机位姿的"原始上下文与纹理",强迫共享层同时编码这两类截然不同的 latent 会引入学习冲突,源视图信息在前向中容易"消失"。为此,OmniNet 在 SEVA 每个 block 里维护两套独立参数:Geometry LoRA 专门处理源 latent \(s\)、抓取源视图间的几何先验;Guidance LoRA 专门把条件 latent \(c\) 的编辑指导传播给目标 latent \(y_\sigma\)。两条流在共享的多视图注意力层里交换几何线索与编辑指导。和 MM-DiT 的两点区别是:其一用参数高效的 LoRA 而非两套完整参数,从而能直接借 SEVA 先验而不必整体复制;其二 MM-DiT 是为跨模态(文本/图像)设计的,而本文证明这种双流范式对同模态但角色不同(都是视觉 latent,但一个是源、一个是条件)同样有效。

3. 配对数据合成管线:靠现有多视图先验批量造训练对

整个学习范式的最大卡点是缺乏大规模"编辑前/后"配对的场景级多视图数据。作者的关键观察是:逐视图做删除或外观编辑通常只引入轻微的多视图纹理不一致,这种不一致可以被"一致性精修"修掉;而添加任务带来的严重几何不一致修不掉,可以靠反向生成绕开。于是基于 CO3Dv2/DL3DV/WildRGB-D 三个开源多视图数据集,搭了一条四阶段管线:① 指令生成(Gemini-2.5pro 分析多视图、挑出边界清晰、不被截断、各视角都可见的理想物体并生成编辑指令);② 逐视图编辑(Qwen-Image 按指令逐帧前景删除);③ 一致性精修(受 SDEdit 启发,给所有编辑后视图加 20% 轻噪,再用预训练 SEVA 去噪,抹平逐帧编辑带来的纹理/色彩差异);④ 质量过滤(用 mLLM 检查是否满足指令、是否跨视图一致、有无明显伪影,Pass/Fail 筛掉失败样本)。外观编辑复用同一条管线。添加任务则反过来:把原始多视图当目标视图、把删除管线的输出当源视图,这样目标视图天生多视图一致,且无需额外 mask。最终在三个数据集上构建出约 9 万级别的配对样本(删除 27K、添加 28K、外观 23K 量级)。

损失函数 / 训练策略

训练沿用 SEVA 范式:EDM 加噪、损失只在目标视图 latent 上计算(式 2),用 Eps-weighting MSE 并采用 SNR shift。实现上 LoRA rank=8,OmniNet 训练 4000 步、batch 32、16 张 H20、去噪 50 步、分辨率 576×576,AdamW 学习率恒定 \(1\times10^{-4}\),相机归一化到 \([-2,2]\)\(N=10\)

实验关键数据

主实验

360° 物体删除(360-USID,7 个场景,指标在 object mask 内计算,PSNR↑/LPIPS↓ 的平均):

方法 PSNR ↑ LPIPS ↓ 备注
SPIn-NeRF 16.734 0.464 需 mask
Gaussian Grouping 16.074 0.480 易破坏相邻物体
Aurafusion360 17.661 0.388 强基线,但约 30min
Omni-3DEdit (Ours) 17.722 0.395 mask-free,约 2min

物体添加(CO3Dv2 验证集,按 MVInpainter 协议评 NVS):

方法 PSNR ↑ LPIPS ↓ CLIP-T ↑
ZeroNVS 14.56 0.716 0.196
MVInpainter 19.20 0.344 0.271
Omni-3DEdit (Ours) 20.67 0.278 0.277

复杂 3D 编辑(删除/添加组合 + 多轮编辑,自建 benchmark):

方法 CLIP-T/I CLIP-Dir. Gemini score 时间
DGE 0.246 0.132 1.7 5min
GaussianEditor 0.253 0.146 2.0 17min
ViCANeRF 0.257 0.141 2.2 28min
Nano-banana 0.281 0.165 3.8 -
Omni-3DEdit (Ours) 0.286 0.170 4.0 2min

消融实验

在 360-USID 上拆 OmniNet 的输入信号与架构(SSIM↑/PSNR↑/LPIPS↓):

配置 SSIM ↑ PSNR ↑ LPIPS ↓ 说明
Omni-3DEdit 0.925 17.72 0.395 完整模型
SEVA zeroshot 0.911 13.99 0.575 丢源视图、只喂参考+噪声,位姿对不齐
w/o indicator 0.917 15.20 0.545 缺区分三类视图的显式信号
w/o pose 0.903 14.54 0.565 仅凭外观推透视几何太隐式

架构消融(可视化对比,Fig.7):特征空间拼接产生明显伪影、细节模糊;序列空间共享层会旁路源视图信息;只有双流 LoRA 能同时抓住几何线索和编辑指导,编辑质量显著改善。

关键发现

  • 架构选择是成败关键:源视图与条件视图角色不同,共享投影层会让源视图信息在前向中"消失",双流 LoRA 的解耦参数化是把性能拉起来的核心。
  • 输入信号缺一不可:indicator 和相机位姿任一缺失都让 PSNR 掉 2–3 个点,说明模型确实是靠"显式区分视图角色 + 透视几何"来工作的。
  • 效率优势压倒性:相比 Aurafusion360(30min)、ViCANeRF(28min),本文 2min 完成且无需 mask,质量还更高。

亮点与洞察

  • 把"统一 3D 编辑"重新定义为多视图传播问题:不再纠结显式几何怎么更新,而是让一个网络学"从参考视图把编辑传播到其余视图",一次前向覆盖删除/添加/外观三类任务,这个换战场的思路很干净。
  • 同模态双流 LoRA:证明了 MM-DiT 式的双流不只适用于跨模态,对"同是视觉 latent 但角色不同(源 vs 条件)"也有效,是一个可迁移到其他"多输入但功能异质"生成任务的 inductive bias。
  • 添加任务靠反向生成绕开数据难题:删除数据正反一调就成了添加数据,且天然多视图一致、无需额外 mask,这个数据构造 trick 很省事。

局限与展望

  • 作者承认受限于开源场景级数据稀缺(结论段被截断,⚠️ 完整局限以原文为准),数据管线依赖现成 2D 编辑器和质量过滤器的能力上限。
  • 外观编辑因缺乏公开 benchmark 只能做定性/Gemini 评测,没有标准数值对比,说服力略弱。
  • 强依赖一串现成模型(VGGT 估位姿、Qwen-Image 编辑、SEVA 主干、AnySplat 重建),任一环节失效都会传导到最终结果;参考视图选得不好可能影响传播质量。
  • 改进方向:把参考视图的选择从随机改为更智能的策略,或引入多参考视图来缓解单视图指导信息不足的问题。

相关工作与启发

  • vs 显式 3D 路线(InstructN2N / GaussianEditor):他们在 NeRF/Gaussian 上迭代上千次保一致性,任务专用且慢;本文在多视图潜空间一次前向、任务通用、约 2min,区别在于彻底放弃显式几何更新。
  • vs 物体级隐空间路线(Tailor3D / CMD):他们能单次统一编辑但被绑死在 object-centric 数据和特定位姿,处理不了带背景的场景;本文在多视图空间支持任意视角和场景级输入。
  • vs 视频/多视图隐空间路线(DGE / V2Edit / Pro3D-Editor):视频模型 3D 一致性先验弱、需连续视角变换且不懂相机位姿;本文显式注入 Plücker 位姿和 indicator,并用双流 LoRA 解耦,效率与质量都更优。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 把统一 3D 编辑重构为多视图潜空间传播 + 同模态双流 LoRA,思路新且自洽。
  • 实验充分度: ⭐⭐⭐⭐ 删除/添加有定量对比、消融扎实,但外观编辑缺数值 benchmark。
  • 写作质量: ⭐⭐⭐⭐ 动机—架构—消融逻辑清晰,图文对应好。
  • 价值: ⭐⭐⭐⭐⭐ 把单次编辑从几十分钟压到 2min 且统一三类任务,实用价值高。