BlenderFusion: 3D-Grounded Visual Editing and Generative Compositing¶
会议: ECCV2026
论文: ECCV 原文
领域: 图像生成 / 3D 视觉
关键词: 3D感知编辑、生成式合成、双流扩散、源区域遮蔽、物体相机解耦
一句话总结¶
BlenderFusion 把图像中的物体提升为可编辑几何,用 Blender 表达精确编辑意图,再通过双流扩散合成器补全并融合画面,在三个视频数据集上优于适配后的 Object 3DIT 和 Neural Assets,且支持训练未覆盖的精细组合编辑。
研究背景与动机¶
生成一张漂亮图片与编辑一张已有图片并不是同一个问题。把杯子旋转、把椅子缩小、替换背景,同时要求相机不动且其余物体保持原样,需要逐个控制几何和身份;一句文本提示或粗糙二维布局通常不足以准确表达这些约束。Object 3DIT 主要针对单物体刚性变换,Neural Assets 虽然支持多物体与相机,但依赖压缩的物体 token,容易丢失细节或混入背景。Image Sculpting 已经利用 Blender,却依赖逐场景优化,主要处理单图单物体。
直接借用图形软件也不能解决全部问题。真实照片往往只有单视角,重建出的网格缺少背面、纹理不完整,旋转后会出现孔洞或不自然的表面;完整物理渲染所需的材质与光照也未必可得。另一方面,若让扩散模型独自推断几何,它可能用移动背景来模拟物体移动,看似符合训练视频,却违背用户“只动这个物体”的意图。尤其 Objectron 中物体基本静止、主要是相机运动,常规跨帧训练本身就包含这种捷径。
因此,本文不是让生成模型学会所有 Blender 操作,而是让 Blender 提供可见、明确的目标几何,把生成模型的职责收敛为修复与融合。为了让它既参考原图身份,又不执着于已经失效的原始布局,训练还必须教它何时舍弃源内容,以及如何在固定相机时响应物体变化。核心 idea:把几何控制交给显式 3D 编辑,把照片级合成交给双流扩散,并用源区域遮蔽与模拟物体抖动打破源图复制和相机运动捷径。
方法详解¶
整体框架¶
输入是一张或多张含物体的图像,以及物体类别、3D 框和相机信息;输出是遵循编辑后布局的二维合成图像。流程先做几何分层与编辑,再准备经过源区域遮蔽的有效上下文,最后由双流生成合成器联合参考源场景与目标渲染。模拟物体抖动只用于构造训练条件,不是每次编辑必须执行的推理步骤。
源流保留原始图像、源渲染、源相机与物体姿态;目标流包含目标渲染、目标相机、目标物体姿态和待去噪潜变量。两套渲染都是从同一批重建物体出发生成的,因此模型既能看到物体原本的外观,又能看到用户明确要求的几何变化,而不必从一句描述中猜旋转方向或空间关系。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["输入图像<br/>3D框与相机"] --> B["几何分层与编辑"]
B -->|源图与源渲染| C["源区域遮蔽"]
C -.->|仅训练时重组条件| D["模拟物体抖动"]
B -->|目标渲染与姿态| E["双流生成合成"]
C -->|推理时有效源上下文| E
D -.->|固定相机训练条件| E
E --> F["编辑后图像"]
G["目标视频帧"] -.->|仅训练时提供监督| E
这里的几何不是保证完整、正确的真实场景模型,而是控制接口。默认重建只覆盖单视图可见表面;扩散模型在这个不完美接口之上补纹理、补几何并融合背景。复杂的材质或部件编辑可以替换为更完整的图像到 3D 重建结果,但不改变后续合成器的输入形式。
关键设计¶
1. 几何分层与编辑:把用户操作转为可见的目标渲染
首先将已知 3D 框投影成二维框,用类别提示 Grounding DINO;只有预测框与投影框的 IoU 大于 0.5 时才用前者细化定位,再将框交给 SAM2 提取掩码。Depth Pro 预测度量深度,物体掩码切出各实例的深度,随后依据其 3D 框校准尺度。将这些深度反投影为点云并连接相邻点,就得到每个物体的三角网格。这不是从任意照片自动恢复所有场景参数的完整方案,类别、框和相机条件是实验设置的重要组成部分。
每个网格独立导入 Blender 后,平移、旋转、缩放、删除与插入便成为显式操作;相机运动由相机对象控制,背景替换通过新背景图替换源图实现。编辑前后各渲染一次 RGB 和 Object Index Pass 实例索引掩码,分别作为源条件与目标条件。这样“移杯子”不再只是一组可能被模型误解的 token,而是目标画面里杯子的轮廓、遮挡与投影位置。细粒度形变或材质变化需要更完整网格时,论文的渐进式编辑演示采用 Hunyuan3D v2,而非声称默认的浅层网格能胜任所有操作。
2. 源区域遮蔽:保留身份参考,但撤销已经失效的上下文
源图既是有用的外观参考,也可能是编辑的阻力。删除物体时若完整保留源图,模型可能把它重新画回去;替换背景时,旧背景也不应继续作为可靠证据。训练中,源图和源渲染里的每个物体以 0.5 的概率被遮蔽,背景区域也进行随机遮蔽,避免模型仅仅形成固定的局部修补习惯。模型因此必须读取目标渲染,而不能只复制源图或依赖相对相机姿态。
推理时遮蔽是按编辑任务选择的:可以同时遮住源图与源渲染中的失效区域,也可以只遮源图。区别在于要丢弃的是旧外观上下文,还是连源几何参考也不再可信。它不等于把所有源信息都抹掉,也不等于遮住目标渲染;目标分支仍应明确表达用户需要保留或新增的场景。原文正文没有列出每类操作的全部遮蔽规则,因此不能把某一种掩码模式写成所有操作的统一配置。
3. 模拟物体抖动:用条件重组教会固定相机下的物体变化
普通训练从视频抽取源帧与目标帧,用物体框和相机参数把源重建变换到目标姿态,再以目标帧监督合成。问题是,Objectron 的物体没有真实运动,模型容易把物体外观变化归因于相机;到测试时仅旋转物体、背景不动,这条经验就失效。本文的抖动策略并不是凭空生成一个有真实标签的新动态视频,而是把源流中的图像和相机参数替换为目标帧及目标相机,同时保留源渲染与源、目标物体框之间的几何差异。
随后对目标帧上下文和源渲染分别随机遮蔽,让合成器依据有噪声的目标渲染恢复目标图像。此时图像上下文与目标处于同一相机,源渲染仍提供物体参考,模型必须利用物体姿态条件来完成恢复,而不能把变化全部解释成相机运动。遮蔽也避免了直接看到目标帧就复制答案的捷径。该策略是在训练条件中模拟解耦的物体变化,不应与测试时给用户操作额外加入随机抖动混淆。
4. 双流生成合成:共享生成先验,显式交换源与目标信息
合成器由预训练扩散模型改造,实验采用 Stable Diffusion v2.1。源、目标两个流使用同一套权重,分别处理各自输入,再通过覆盖两流特征的自注意力交换信息。源流中的原图帮助保持身份与细节,目标流中的粗渲染规定新布局;模型学习填补变换不完整网格后暴露的区域,并将物体和背景融合成最终图片。双流不是两个分别训练的生成器,也不是先生成物体、再用另一个模型拼接背景。
每个流的入口由 4 通道扩展到 15 通道:4 个图像或噪声潜变量通道、4 个渲染潜变量通道、1 个实例掩码通道,以及 6 个 Plücker 相机嵌入通道,即 \(4+4+1+6=15\);新增通道的权重采用零初始化。类别经 CLIP 编码,3D 框经位置编码和 MLP 处理,再组织成替代文本条件的物体 token 序列。实现中以源相机为坐标参考,把框角点投影后表示为图像坐标和深度。这让像素级渲染、实例身份、相机射线与框级姿态各自承担不同条件作用,而不是指望单一特征同时编码全部控制信息。
一个完整示例¶
以“相机不动,把桌上的杯子转向另一侧,同时保留椅子和背景”为说明性例子。分层阶段分别得到杯子和椅子的网格,Blender 只旋转杯子并重新渲染;目标实例掩码与 RGB 渲染反映杯子的新轮廓,椅子与相机条件保持不变。这个例子用于解释流程,不对应论文额外报告的定量样本。
合成器从源流读取杯子原本的颜色、纹理及周围环境,从目标流读取旋转后的位置和形状,并补全原视角看不到的表面。如果继续删除杯子,源区域遮蔽可以撤销它的旧上下文,避免合成器把它恢复回来。若要修改杯柄形状,默认单视角网格可能不足,便需要更完整的重建;操作接口支持某项编辑,并不意味着任意输入上的重建质量都足以支撑它。
损失函数 / 训练策略¶
训练以真实目标视频帧监督条件扩散合成,核心新增内容是输入结构与两种训练条件策略。当前正文没有展开完整损失公式、各条件丢弃比例或抖动采样分布,因此这里不补造专用几何损失,也不把通用扩散目标写成作者明确报告的精确公式。
合成器使用 8 张 NVIDIA A100 80GB,batch size 为 320,共训练 30,000 次迭代。优化器为 AdamW,weight decay 为 1e-2,线性 warmup 为 500 步;扩散模型学习率为 5e-5,框编码 MLP 为 1e-4。推理采用 50 步 DDPM 采样,classifier-free guidance 的 scale 为 2.0。
WOD 视频中的车主要平移、旋转多样性不足,因此三个比较方法都先使用 MOVi-E 预训练,再训练 WOD,并将基础学习率降到 1e-5。这一共享初始化是 WOD 结果的前提,不能把它描述成仅靠真实驾驶视频就获得了充分的解耦旋转能力。
实验关键数据¶
主实验¶
标准评测给定相机与物体姿态,将源视频帧转换为目标帧。MOVi-E 是作者增强动态物体数量和相机运动范围后生成的 10,000 段视频,分辨率为 512×512;Objectron 数据集含 15,000 段、9 类物体,使用 384×512;WOD 数据集含 1,000 段,使用前视相机、过滤小车,分辨率为 528×352。这些是生成规模或数据集总规模,不是测试集样本数;当前正文未给出完整训练/测试划分。
表中为原文 Table 2 的关键列。PSNR 衡量像素重建质量,单位 dB,越高越好;LPIPS 衡量感知距离,越低越好;FID 衡量生成与真实图像分布的特征差异,越低越好。Object 3DIT 已适配为 SD v2.1,并加入相机嵌入和多物体条件,不是未经修改的原始单物体模型。
| 数据集 | 方法 | 物体 PSNR ↑ | 物体 LPIPS ↓ | 整帧 PSNR ↑ | 整帧 FID ↓ |
|---|---|---|---|---|---|
| MOVi-E | Object 3DIT | 14.06 | 0.411 | 17.02 | 15.71 |
| MOVi-E | Neural Assets | 13.74 | 0.428 | 16.73 | 23.08 |
| MOVi-E | BlenderFusion | 18.90 | 0.227 | 21.32 | 9.11 |
| Objectron | Object 3DIT | 13.88 | 0.424 | 14.98 | 6.14 |
| Objectron | Neural Assets | 13.73 | 0.427 | 14.56 | 6.18 |
| Objectron | BlenderFusion | 16.06 | 0.291 | 16.54 | 3.25 |
| WOD | Object 3DIT | 18.90 | 0.255 | 23.21 | 11.92 |
| WOD | Neural Assets | 16.87 | 0.322 | 20.41 | 15.39 |
| WOD | BlenderFusion | 20.93 | 0.185 | 24.11 | 10.02 |
标准跨帧指标不直接衡量“固定相机只动某物体”。原文 Table 3 另在 60 个解耦与精细控制样本上比较编辑前后的物体身份特征;Objectron 的 DINO/CLIP 余弦相似度由 Neural Assets 的 0.748/0.717 提高到 0.866/0.810,越高表示特征越接近,但不等于几何编辑完全正确。
Table 4 的用户研究包含 54 个例子,其中视频帧转换 18 个、解耦控制 24 个、精细合成 12 个;24 位参与者给出 1,294 次选择。与 Neural Assets 成对比较时,BlenderFusion 总体获选率为 87.04%,精细合成为 93.75%;这些是人类偏好比例,不是任务成功率。
消融实验¶
原文 Figure 8 提供定性组件消融:仅增加双流与深度/分割条件,主要改善平移;加入 Blender 渲染后仍可能把背景随物体一起移动;源区域遮蔽改善对象控制,但相机与物体仍有耦合;再加入模拟物体抖动才进一步缓解固定相机编辑问题。当前正文未列出这些组件的逐项数值,不能声称某模块带来确定的 PSNR 增益。
下表取自原文 Table 5,是同一 Objectron 标准视频评测中的上游误差分析,而非上述组件消融的替代数值。O-DINO 是逐物体 DINO 特征余弦相似度;深度和掩码扰动在建网格前施加,掩码噪声对应侵蚀/膨胀。
| 配置 | 物体 PSNR ↑ | 物体 LPIPS ↓ | O-DINO ↑ | 整帧 PSNR ↑ | 整帧 LPIPS ↓ |
|---|---|---|---|---|---|
| Neural Assets | 13.73 | 0.427 | 0.921 | 14.56 | 0.427 |
| BlenderFusion 默认 | 16.06 | 0.291 | 0.959 | 16.54 | 0.323 |
| 深度噪声 15% | 15.69 | 0.307 | 0.957 | 16.24 | 0.334 |
| 深度噪声 30% | 15.28 | 0.325 | 0.955 | 15.98 | 0.344 |
| 掩码噪声 10px | 15.58 | 0.309 | 0.957 | 16.12 | 0.337 |
| 掩码噪声 20px | 15.15 | 0.326 | 0.955 | 15.83 | 0.348 |
关键发现¶
- MOVi-E 整帧 PSNR 为 21.32 dB,比适配后 Object 3DIT 的 17.02 dB 高 4.30 dB;复杂多物体变化更能体现显式渲染条件的价值。
- 30% 深度噪声使物体 PSNR 从 16.06 降至 15.28 dB,仍高于 Neural Assets 的 13.73 dB;这支持中等上游误差鲁棒性,不证明严重缺面或大遮挡可以无损修复。
- Objectron 上 A100、bf16、384×512 的全流程为 13.08 秒/图,峰值显存约 20GB:分层 0.6 秒、Blender 脚本 3.0 秒、合成器 9.48 秒。原文 Neural Assets 的 5.94 秒采用 256×256,不能把二者直接当成等分辨率速度比较。
亮点与洞察¶
- 粗糙渲染是控制信号,不是最终产品。它把“该改哪里、几何怎么变”变成可见证据,让生成先验负责缺失纹理与融合,而不是同时猜控制意图。
- 源图并非总是越完整越好。主动删除已失效上下文,使身份参考与编辑服从性能够分别处理,也适合研究其他参考图驱动的局部生成任务。
- 数据中的相机运动不等价于用户想要的物体操作。模拟物体抖动的价值在于改变条件之间的统计关系,而不只是增加随机增强。
局限与展望¶
- 作者明确指出:严重掩码或深度错误会造成几何缺失,大角度旋转与重遮挡尤其困难;真实驾驶数据的姿态不足也使合成预训练成为重要前提。
- 作者承认物理准确的重光照和阴影仍不完善;更强重建、丰富合成数据和显式光照监督是提出的改进方向。跨 SUN-RGBD、ARKitScenes、Hypersim 的泛化主要是定性展示,视觉质量较域内下降。
- 本笔记判断:依赖 3D 框和相机条件,以及部分演示采用更完整重建,使它尚不能直接等同于任意照片上的零准备编辑工具;约 13 秒的单图耗时也不能称为实时生成。
- 本笔记判断:需要进一步报告细粒度编辑的几何误差、遮挡一致性及不同重建器下的成本,才能区分“画面更受偏好”与“严格服从物理编辑约束”。
相关工作与启发¶
- vs Object 3DIT:后者用语义与姿态条件驱动编辑;这里直接提供编辑前后渲染。即使基线加入多物体和相机条件,固定相机编辑仍可能暴露训练中的运动耦合。
- vs Neural Assets:后者用 DINO/RoIAlign 提取物体外观 token;这里保留源图与显式渲染,减少压缩外观与前景背景混合的问题,代价是几何处理和双流计算。
- vs Image Sculpting:两者都借助 Blender 的编辑能力,本文扩展到多物体、相机和背景并训练通用合成器;Image Sculpting 因逐场景优化与任务范围不同未进入主定量对比,不能据此宣称对它已有同设置数值优势。
评分¶
- 新颖性: 4/5,贡献在显式几何接口、双流条件与解耦训练的协同,不是全新扩散骨干。
- 实验充分度: 4/5,覆盖三个数据集、用户研究和上游噪声,但真实精细编辑的定量几何验证仍有限。
- 写作质量: 4/5,问题与失败模式衔接清晰,部分复现细节需补充材料。
- 价值: 4/5,为可控图像编辑提供实用接口设计,但重建质量和耗时限制了直接部署。