Conference

DifFRelight: Diffusion-Based Facial Performance Relighting

Mingming He, Pascal Clausen, Ahmet Levent Taşel, Li Ma, Oliver Pilarski, Wenqi Xian, Laszlo Rikker, Xueming Yu, Ryan D. Burgert, Ning Yu, Paul E. Debevec

Netflix Eyeline Studios

一句话总结

给单个演员采一批”平光 + 逐灯(OLAT)”的成对人脸数据,微调一个 Stable Diffusion 的图到图翻译模型,就能把平光拍摄的动态人脸表演在任意视角、任意光照方向下高保真重打光,还原眼球反光、次表面散射、自阴影等复杂光照效果。

研究背景

体积表演捕捉(volcap)用一圈内向相机记录三维动态表演,省去传统建模、绑定、动画的麻烦,能从任意角度重渲染进新场景。但大多数捕捉系统只在单一平光下拍摄,导致后期很难打出电影级布光,也很难把角色无缝融进新环境。

已有的重打光路线各有硬伤:参数化反射建模难以应付头发这类复杂材质和动态对象;基于图像的重打光效果好但成本高、对动态对象困难;内在图像分解重打光在复杂着色和细节保留上吃力;基于 NeRF / 3DGS 的神经重打光在新姿态和细节保留上仍有挑战,而做到高质量人脸表演重打光的方法往往需要极密集的采集、精确的面部网格与视线追踪、以及对脸和眼的显式建模,很难泛化。近期基于扩散模型的重打光(如 DiffusionRig、DiFaReli、DiLightNet)多为单图方法,依赖 3D 可变形模型、法线、反照率等估计量,且不一定针对人脸训练。

本文的 idea:与其依赖易出错的物理/内在分解,不如走纯数据驱动路线——采集”光照是唯一变量”的成对数据,借助预训练 Stable Diffusion 的强生成先验,把重打光当成一次以光照方向为条件的图到图翻译来学,从而在少量成对数据下泛化到新光照、新表情、新视角。

方法

整体框架

流水线分两大块:动态三维表演重建 + 基于扩散的重打光。先在中性(平光)环境下多视角拍摄表演,用一套可扩展的动态 3D 高斯泼溅(3DGS)重建出可变形高斯,从而渲染出任意新视角的平光图像序列;再把这些平光图喂给扩散重打光模型,按指定光照方向生成重打光结果。扩散模型用同一被摄者的”平光—OLAT”成对数据训练,把平光图作为空间条件、把光照方向作为全局条件注入预训练的隐扩散模型。

flowchart TD
    A[多视角平光表演视频] --> B[可扩展动态 3DGS 重建]
    B --> C[任意新视角平光渲染序列]
    C --> D[VAE 编码为隐变量]
    D --> E[与随机金字塔噪声通道拼接]
    F[光照方向 d] --> G[球谐 SH 编码, 零填充成文本嵌入长度]
    E --> H[扩散 U-Net 去噪]
    G -->|交叉注意力全局控制| H
    H --> I[VAE 解码]
    I --> J[重打光结果]
    J --> K[时域混合保证序列稳定]

关键设计一:把 Stable Diffusion 改造成光照条件的图到图翻译

采到成对数据 \(\{I_{FlatLit}, I_{OLAT}, d\}\),其中 \(d\) 是从舞台中心指向某块 LED 面板中心的方向向量(相机坐标系)。做法上把平光图经 VAE 编码得到的隐变量与随机噪声图在通道维拼接,作为 U-Net 输入——只需把第一层卷积输入通道数翻倍,最大限度保留预训练权重;拼接随机噪声还能让重打光结果与输入的空间结构更好对齐。训练目标就是标准去噪扩散损失:

\[L_{diffusion} = \big\| \hat{\epsilon}\big(z^{(t)}_{OLAT} \oplus \mathcal{E}(I_{FlatLit});\, s_d,\, t\big) - \epsilon \big\|_2^2\]

其中带噪的真值隐变量为 \(z^{(t)}_{OLAT} = \sqrt{\alpha_t}\,\mathcal{E}(I_{OLAT}) + \sqrt{1-\alpha_t}\,\epsilon\)。VAE 编解码器全程冻结,只微调 U-Net,为每个被摄者单独训一个个性化模型。

关键设计二:用球谐编码把”光照方向”当文本嵌入注入

光照方向是影响全图的全局信号,作者把它替换掉原本的文本嵌入,经交叉注意力注入 U-Net。为提升条件的频率带宽,用球谐(SH)对方向 \(d\) 编码,再零填充到与文本嵌入等长:

\[s_d = 0 \oplus \mathcal{Y}(d)\]

其中 \(\mathcal{Y}\) 是球谐编码。虽然 SH 编码和文本编码器产出的嵌入形态迥异,但微调足以弥合这一域间隙;实验中 SH 阶数取 3 效果最好。

关键设计三:金字塔噪声解决暗部色偏

作者发现用普通零均值高斯噪声会带来明显色偏——网络倾向于难以预测很暗的图像。改用金字塔噪声(pyramid noise)后,预测与真值之间的颜色一致性大幅改善(消融里去掉金字塔噪声 PSNR 从约 30 掉到 26.55)。

关键设计四:可扩展动态 3DGS 与统一光照控制

为长序列做时域一致的重建,提出两阶段可扩展动态 3DGS:先均匀取 \(K\) 个关键帧训一个可变形高斯模型作为初始化;再以这些关键帧为过渡点把序列切成 \(K-1\) 个小段,每段用 \(K\) 帧模型初始化,并对关键帧的形变偏移加 \(L_2\) 正则:

\[L_{reg} = \big\| \delta'_{t_{k0}} - \delta_{t_{k0}} \big\|_2 + \big\| \delta'_{t_{k1}} - \delta_{t_{k1}} \big\|_2\]

先只训形变网络热身、再放开高斯的克隆/分裂/裁剪做致密化,从而让各段初始状态时域一致、细节层级相当。此外提出可变尺寸的面光源表示:用因子 \(1-a\) 缩放光照方向来表示光的展开程度(\(a=0\) 为单个 OLAT 点光,\(a=1\) 为平光),并把该尺寸与球高斯(SG)的锐度挂钩,实现从点光到漫射的连续控制。推理时把多个单光照结果按 HDRI 环境图拟合出的系数在线性空间加权求和,即可完成 HDRI 环境光重打光乃至动态光照合成。

实验结果

每个被摄者采集 30 个表情、123 个 OLAT、75 个视角(4K 下采样到 1080×1920),基于 Stable Diffusion v2.1、用 Diffusers 实现,8 张 A100 训练 10 万步。与两个基线对比:ControlNet 结构(条件为平光图 + 漫反射着色图)和 U-Net 结构(直接以光照方向为条件)。在四种验证配置上用 PSNR / SSIM / LPIPS / FLIP 评测:

配置 方法 PSNR ↑ SSIM ↑ LPIPS ↓ FLIP ↓
Novel Light 本文 30.29 .8212 .1750 .0825
Novel Light U-Net 23.66 .7971 .2988 .1586
Novel Light ControlNet 20.30 .6708 .2281 .2304
Novel Expression 本文 31.55 .8281 .1585 .0689
Novel View 本文 31.77 .8254 .1601 .0689
Novel L+E+V 本文 30.98 .8229 .1729 .0754

本文方法在全部四种泛化配置、全部四项指标上都明显领先。ControlNet 基线只用稀疏空间信息,空间细节和色彩最差;U-Net 基线空间对齐尚可但结果偏糊,像素指标好看但 LPIPS 反映的真实感下降。消融显示:去掉金字塔噪声会带来最大退化,预训练权重能显著减少伪影;额外引入着色图条件能再略微提升(PSNR 30.32 vs 30.04),但需要多视角光度法线,采集成本更高,故未作为默认方案。

亮点与局限

亮点:

  • 用一个巧妙的”最小改动”把文生图 Stable Diffusion 变成光照条件的图到图重打光器——首层卷积翻倍通道拼接平光隐变量、球谐编码顶替文本嵌入,最大化复用预训练先验。
  • 纯数据驱动,绕开易错的内在分解与物理着色模型,在少量成对数据下就能还原眼球反光、次表面散射、自阴影、半透等高难光照效果,并保持身份特征。
  • 金字塔噪声这一实用发现干净地解决了暗部色偏,是可迁移的工程经验。
  • 可扩展两阶段动态 3DGS 让长序列时域一致,配合统一的方向光 + 面光表示与 HDRI 合成,形成完整可用的表演重打光流水线。

局限:

  • 每个被摄者需单独采集成对数据并训练个性化模型,虽只需几分钟 OLAT 采集,但泛化到全新被摄者仍是简单扩展、非主线能力。
  • 依赖专门的 LED 面板 volcap 舞台采集 OLAT 与平光成对数据,门槛高。
  • 图像级扩散仍可能产生时域不一致的高频,需靠关键帧间时域混合缓解,而非模型内建的时序建模。

延伸思考

本文最值得借鉴的一点是”把物理量塞进被冻结/微调的大模型条件通道”——光照方向本是几何/物理量,却能通过球谐编码伪装成文本嵌入被交叉注意力吸收,说明预训练扩散模型的条件接口具有相当的可塑性,微调足以弥合模态鸿沟。沿这条线,材质参数、相机内参、BRDF 甚至物理仿真参数或许都能以类似方式注入。另一方面,重打光被拆成”逐 OLAT 推理 + 线性加权合成 HDRI”,把复杂环境光分解成可组合的单光照基元,兼顾了可控性与真实感,这种”生成单光照基 + 线性叠加”的范式对可编辑渲染很有启发。金字塔噪声修复暗部色偏也提醒我们:扩散模型在极端亮度分布上的归纳偏置值得在其他 HDR/低光任务中重新审视。