跳转至

DiffPortrait360: Consistent Portrait Diffusion for 360° View Synthesis

会议: CVPR 2025
arXiv: 2503.15667
代码: https://freedomgu.github.io/DiffPortrait360
领域: 3D视觉
关键词: 360度头部生成、扩散模型、新视角合成、人像重建、风格泛化

一句话总结

提出首个能从单张肖像生成一致的 360° 全头部视角的方法,通过双外观控制模块、背视图生成 ControlNet 和连续视角序列训练策略,支持真人、风格化和拟人化角色,并可转化为高质量 NeRF 进行实时自由视角渲染。

研究背景与动机

从单张肖像生成 360° 全头部视角在沉浸式远程呈现、个性化虚拟角色和内容创作中至关重要。现有方法面临三大难题:(1) 基于 GAN 的方法(PanoHead、SphereHead)仅适用于写实人脸,无法处理风格化角色;(2) 扩散模型方法(DiffPortrait3D)仅能生成前脸视角,且多视角一致性差;(3) 通用 3D 生成方法(Zero123、Unique3D)缺乏人头领域知识,容易产生严重伪影。本文的目标是:构建一个"风格无关"的 360° 头部生成框架,同时保证全局外观一致性和局部视角连续性。

方法详解

整体框架

基于 DiffPortrait3D 构建,使用冻结的预训练 Latent Diffusion Model (LDM) 作为渲染骨干,引入三个可训练辅助模块:双外观参考模块 \(\mathcal{R}\)(提取前/后外观信息)、相机控制模块 \(\mathcal{C}\)(ControlNet 注入 3D-aware GAN 渲染的相机位姿)和视角一致性模块 \(\mathcal{V}\)(时序交叉注意力保证帧间连续性)。推理时先用专门的 ControlNet \(\mathcal{F}\) 生成背视图。

关键设计

  1. 双外观控制模块(Dual Appearance Module):

    • 功能:解决仅用正面参考图像在大角度视角变化时外观信息不足导致的"双脸"伪影和信息泄露问题
    • 核心思路:训练时同时输入正面参考图 \(I_{\text{ref}}\) 和背面参考图 \(I_{\text{back}}\)(选取重叠最少的视角对),通过 ReferenceNet 提取两张图的外观特征,让扩散网络自动决定在不同相机视角下更依赖哪张图的信息
    • 设计动机:单参考图方案在生成后脑勺时,网络会错误地将正面特征泄露到背面(如出现第二张脸)。双外观方案提供了完整的 360° 外观覆盖,消除了歧义
  2. 背视图生成网络(ControlNet \(\mathcal{F}\):

    • 功能:推理时从正面肖像自动生成合理的背视图
    • 核心思路:基于 ControlNet 架构,以正面图 \(I_{\text{ref}}\) 为输入生成背面图 \(I_{\text{back}}\),确保风格一致、头型合理且发型匹配。关键创新是在训练数据中加入了 1000 对风格化前/后视图对(由 Unique3D 生成),减少对写实数据的偏向
    • 设计动机:双外观模块在推理时需要背面图像但实际无法获取;仅用真实数据训练会导致风格化输入时生成写实背面(域偏差)
  3. 连续视角序列训练策略:

    • 功能:增强视角间的局部连续性和平滑过渡
    • 核心思路:不再用随机采样的稀疏视角训练时序 Transformer,而是用 3D-aware GAN(PanoHead)生成连续采样的视角序列(8 个连续视角),充分利用预训练运动先验
    • 设计动机:随机视角训练无法让时序模块学到平滑过渡,导致推理时出现闪烁和跳变;连续序列训练即使数据量有限也能显著改善一致性,使生成结果能成功拟合 NeRF

损失函数 / 训练策略

  • 标准 LDM 去噪损失:\(L_{ldm} = \mathbb{E}[\|\epsilon - \epsilon_\theta(z_t, t)\|_2^2]\)
  • 使用 3D-aware noise 初始化(基于 StyleGAN 的 360 头部生成器微调反演)
  • 混合训练数据:RenderMe360(500 人,60 机位)+ PanoHead/SphereHead 合成连续视角(600 身份)
  • 5.6 秒/视角的生成速度

实验关键数据

主实验

方法 正面 PSNR↑ 正面 CSIM↑ 正面 FID↓ 背面 PSNR↑ 背面 FID↓
PanoHead + PTI 28.35 0.471 98.93 28.39 169.52
SphereHead + PTI 28.62 0.556 69.41 28.63 106.21
DiffPortrait3D* 28.96 0.709 49.02 28.47 91.37
Ours 29.44 0.746 35.34 30.92 39.40

消融实验

配置 效果 说明
无双外观控制 远视角出现不一致的配饰/发色 单参考图信息不足
有双外观控制 纹理和3D形状一致性好 前后外观互补
仅用真实数据训练背视图网络 风格化输入时生成写实背面 数据偏差
+ 风格化数据增强 正确保持输入风格 1000对足以矫正偏差
无 3D-aware noise 视觉对齐完全失败 相机控制信号缺失
无连续序列训练 部分视角对齐但 NeRF 拟合后纹理混乱 多视角不一致
完整方法 一致的视角 + 可拟合 NeRF 支持下游3D重建

关键发现

  • 背面 FID 从 91.37 降至 39.40(-57%),几乎接近正面水平,说明双外观模块+背视图生成有效解决了全头一致性
  • GAN 方法在风格化肖像上完全失败;通用 3D 方法(Zero123/Unique3D)无法处理人头领域特殊性
  • 仅需 1000 对风格化前后视图即可显著降低背视图生成的域偏差

亮点与洞察

  • 首个风格无关的 360° 全头部生成方法:在真人、卡通、动物拟人等各种风格上均有效
  • 双外观模块设计精巧:让网络自动学习按视角切换前/后参考的依赖权重,而非硬编码规则
  • 生成结果可直接拟合 NeRF 进行实时渲染,具有实际应用价值

局限与展望

  • 5.6 秒/视角的生成速度仍然较慢,限制了交互式应用
  • 背视图生成网络的泛化依赖于风格化增强数据的多样性
  • 当前使用 NeRF 作为下游 3D 表示,可考虑结合 3DGS 获得更快渲染
  • 极端表情和遮挡场景的一致性仍有改进空间

相关工作与启发

  • 基于 DiffPortrait3D 的关键改进:双外观 + 背视图生成 + 连续序列训练,三者缺一不可
  • 与 PanoHead/SphereHead 等 GAN 方法的根本区别在于扩散模型的开放域泛化能力
  • 启发:扩散模型生成 + 下游 3D 拟合的两阶段范式可推广到全身人体、手部等其他对象

评分

  • 新颖性: ⭐⭐⭐⭐ 双外观控制和背视图生成的组合设计有创新性,但整体框架是增量式改进
  • 实验充分度: ⭐⭐⭐⭐ 多方法对比充分,消融清晰,但缺少定量的视角一致性指标
  • 写作质量: ⭐⭐⭐⭐ 结构完整、图示有效,但方法部分略繁冗
  • 价值: ⭐⭐⭐⭐ 在风格化 3D 肖像生成领域有明确应用价值,但受限于人头特定领域