Scaling In-the-Wild Training for Diffusion-based Illumination Harmonization and Editing by Imposing Consistent Light Transport
原始论文:https://openreview.net/pdf?id=u1cQYxRI1H
补充材料:https://openreview.net/attachment?id=u1cQYxRI1H&name=supplementary_material
今天分享ControlNet(ICCV 2023 最佳论文奖)作者的新做IC-Light。这篇论文目前投稿至 ICLR 2025,已经获得了四位审稿人一致的满分(10分)的打分。
标题解析
先看一下标题,标题还挺长的。首先明确这篇论文是做的一个名为光照编辑的任务,通俗点讲就是打光,玩过3D渲染的同学应该都知道,光照对于一个角色或场景的渲染有多么的重要。然后,用的是目前主流的扩散模型来做这么一个任务。我们还注意到"in the wild",就说这篇工作应该是面向真实图像或者自然图像,然后用的主要的方法是"Imposing Consistent Light Transport"。"Imposing"是施加的意思,"Consistent"这个词在AIGC领域挺火的,就是一致性的意思。标题的解析就到这里。
效果展示
话不多说,直接上demo,让大家直观的理解这篇论文在做一个什么样的任务,最终想实现的效果是啥样的。
Text-conditioned relighting model | Image-conditioned relighting model |
---|---|
Prompt: beautiful woman, detailed face, shadow from window | Prompt: handsome man, cinematic lighting (just use simple prompt) |
这篇论文主要实现了两种条件控制的打光方式
- 基于文本的打光:上传需要打光的图像(算法会自动抠出前景),然后输入文本描述,算法处理后就能得到打光后的图像;
- 基于图像的打光:上传需要打光的图像和一个包含光照信息的(背景)图像,这里也需要输入文本描述,但只需要简单的文本描述就行,算法处理后就能得到打光后的图像。
研究动机
对于照明编辑任务来说,我们需要解决的问题是2个不变和1个改变。
- 2个不变:底图的细节不能变,固有的物理属性也不能变(例如反射率);
- 1个不变:需要根据条件来修改光照,并且还要保证修改后整体图像的和谐(对应标题中的Harmonization),别那么突兀。
所以如何解决上述问题呢?我们知道对于这种AIGC任务来说,大力就能出奇迹,大数据+大模型+好的训练策略就能解决上述问题。大模型的话目前已经比较成熟了,扩散模型成为主流模型,然后有基于UNet架构的扩扩散模型,例如Stable Diffusion,还有基于Transformer架构的扩散模型,例如Flux。所以作者就从数据和训练策略入手,接下来我们分别介绍。
大数据集
作者贡献了一个包含1千万样本的大数据集。利用了所有可用的数据源,例如真实(自然)图像、3D渲染图像和舞台(light stage)数据集。以自然图像为例,训练数据对的构建流程如下:
构造训练数据对的原则就是从任意一张图像中合成一对图像固有属性(如反射率)相同但是光照不同的图像。首先就是图像的筛选了,一些和光照无关的图像肯定是不要的,所以用三种和光照相关的文本提示词,借助CLIP模型来过滤掉和光照无关的图像。然后利用各种预训练模型来生成训练所需的数据:
- 退化:从原始图像估计反射率,然后在其中加入软硬阴影,并在随机区域加入镜面反射。我的理解就是说尝试各种方法随机的破坏图像中的光照,同时不要改变图像的固有属性。
- 环境:用预训练模型从图像中提取环境图。
- 前景:利用预训练模型提取分离前景和背景。
- 背景:利用预训练模型修复(inpainting)背景。
- 文本:如果收集的图像有对应的文本,那就直接用,如果没有,就用预训练模型生成。
本文方法
本文方法是基于如下的物理原理的:
就是说:物体在不同照明条件下的外观线性混合与其在混合照明下的外观是一致的。
本文提出了一种施加一致性光照传输的方法。具体做法是将环境光照图L通过一个随机的只包含0和1的mask拆解为两个环境光照图L1和L2:
然后损失计算是联合了原生的扩散模型的损失和一致性损失。一致性损失是通过一个MLP(不包含非线性)将两个分支的输出转换后和真值计算得到的。注意,一致性损失计算需要乘以一个mask,因为我们只是对前景的光照进行了编辑,所以损失计算不应该包含背景的部分。最后,作者对于两个损失采用的权重分别是1.0和0.1。总的来说,本文提出的方法,简单、强大并且合理(有物理原理帮忙背书)。
实验结果
这里简单提一下实验设置,优化器用的是初始学习率为1e-5的AdamW,用了三个扩散模型做实验分别是SD1.5,SDXL和Flux,然后显卡用的是8张80GB显存的带NVLink的H100。训练SD1.5用了100个小时,训练SDXL用了140个小时。
和两个方法对比以及对数据集和损失函数的消融实验如下:
其中,LTC表示光照传输一致性损失。从实验结果可以看到,LTC影响是最大的,说明方法确实有效。然后没有舞台数据影响较少,应该是舞台数据集本身收集的就比较少,所以对整体的性能影响也不是很大。
然后,对于这篇论文最重要的两个贡献点,正如标题中提到的,自然数据和LTC,还做了放出了消融实验的可视化的结果:
- 其中去除野外数据严重影响了模型的泛化能力,特别是对于肖像这样的复杂图像。例如,训练数据中没有的肖像上的帽子经常会被渲染成错误的颜色(例如,从黄色变为黑色)。
- 如果没有一致性约束,模型生成一致照明和保留固有属性(如反照率颜色)的能力将显著下降。例如,一些图像中的红色和蓝色差异消失了,输出中观察到明显的色饱和度问题。
更多的可视化结果
- 文本条件主导的
- 背景图像主导的
读后感
整篇论文写作规范,逻辑清晰,用词得当。从数据集构造到损失函数设计都体现了极大的创新,且背后有物理理论支撑,可解释性强。研究的问题也很有意义,具有极大的商业价值。所以给满分确实毫不意外。
PPT