论文名称:FreeU: Free Lunch in Diffusion U-Net (CVPR 2024 Oral)
论文地址:https//arxiv.org/pdf/2309.11497
项目链接:https//chenyangsi.top/FreeU/
文章目录
- 摘要
- 一、 扩散 U-Net 中的低频和高频分量
- 二、扩散 U-Net 是如何执行去噪过程的?
- 三、扩散 U-Net 的 "免费午餐"
- 四、实验设置
- 4.1 文生图
- 4.2 文生视频
- 4.3 下游任务实验
- 4.4 消融实验
- 总结
摘要
本文作者发现了扩散 U-Net 模型的一个未开发的潜力,即:一种 “免费的午餐”,可以即时地,显著地提高生成的质量。
作者一开始研究了 U-Net Backbone 对去噪过程的主要贡献,并确定其 Backbone 部分有利于去噪,而其 Skip connection 部分会在 Decoder 中引入高频特征,导致网络忽略掉 Backbone 语义信息。利用这一发现,作者提出了一种简单有效的方法:FreeU,在不增加训练或微调的情况下提高模型的生成质量。本文关键的 insight 是对来自 Skip connection 和 Backbone 特征图的贡献进行加权,以利用 U-Net 中这两个组件的优势。作者进行了图像和视频的生成任务,结果表明,FreeU 可以很容易地集成到现有的扩散模型中,仅仅使用几行代码来提高生成质量,比如:Stable Diffusion[1], DreamBooth[2], ModelScope[3], Rerender[4]以及 ReVersion[5]等等。
在推理过程中调整两个 scaling factor is all you need!
图1:FreeU,一种在不成本的情况下大幅提高扩散模型样本质量的方法:没有训练,没有引入额外的参数,也没有增加内存或采样时间
本文做了哪些具体的工作:
研究并揭示了 U-Net 架构去噪的潜力,并确定其 Backbone 主要有助于去噪,而 Skip connection 将高频特征引入到了 Decoder 模块中。
引入了一个简单有效的方法,称为 “FreeU”。它通过利用 U-Net 架构的两个组件的优势来增强 U-Net 的去噪能力。同时,它大大提高了生成质量,且不需要额外的训练或微调。
FreeU 框架是通用的,且可以与现有的 Diffusion 模型无缝集成。作者展示了各种基于扩散的方法的生成质量的显著的改进,且没有额外的成本,证明了 FreeU 的有效性。
一、 扩散 U-Net 中的低频和高频分量
扩散概率模型是生成模型的类别之一,已成为研究的焦点。它提出了一种新的生成范式,使用马尔科夫链来映射 Latent Space。扩散模型具有令人印象深刻的生成能力,从高水平的生成图像的细节到丰富的结果,推动了图像生成[6],图像编辑[7],文生视频[8]等等各种计算机视觉应用的突破性进展。
扩散模型由扩散过程和去噪过程组成。在扩散过程中,高斯噪声逐渐添加到输入数据中,最终将其破坏为近似纯高斯噪声。在去噪过程中,通过可学习的逆扩散操作,从噪声逐渐恢复为原始输入数据。一般而言,扩散模型会训练一个 U-Net 来迭代地在每个步骤中去噪。现有的工作侧重于直接使用预训练的扩散 U-Net 模型进行下游的应用,而 U-Net 的内部特性在很大程度上仍未得到充分的探索。
除了扩散模型的应用之外,本文作者的兴趣在研究 U-Net 架构本身对于去噪过程的有效性。为了更好地理解去噪过程,作者首先提出在傅里叶域中研究扩散模型,以更好地观察生成过程。如图2所示,最上面一行是图像在不同 iteration 的渐进式去噪过程。下面两行分别是每个 step 在傅里叶逆变换之后的低频和高频分量。
图2:去噪过程。上:图像随着 iteration 的逐渐去噪过程;中:每个 step 在傅里叶逆变换之后的低频分量;下:每个 step 在傅里叶逆变换之后的高频分量
图3:不同 backbone scaling factor b 的 Fourier 对数幅频曲线。增加 b 会导致模型生成结果的高频信息被压缩
这个现象可以直观解释:
- 低频分量体现了图像的全局结构,包括全局的布局和平滑的颜色。这些全局的元素构成了图像的本质。对于去噪的过程,这些快速变化其实是不合理的。因此,低频分量的快速变化会重塑图像的本质,这也与去噪的目标是矛盾的。
- 高频分量包含图像的边缘和纹理信息。这些精细的细节对噪声非常敏感。而噪声被引入图像时,通常表现为随机的高频信息。因此,去噪过程需要在擦除噪声的前提下,同时保持重要且复杂的细节
二、扩散 U-Net 是如何执行去噪过程的?
鉴于去噪过程中低频分量和高频分量之间的这些观察结果,作者扩展了调查,确定 U-Net 架构在扩散框架内的具体贡献,以探索去噪网络的内部属性。如下图4所示,U-Net 的整体架构包括 Backbone,它包括 Encoder 和 Decoder,以及促进二者之间的信息传输的 Skip connection。
图4:FreeU 框架示意图。(a):U-Net 架构的 backbone 特征以及 skip connection 特征;(b):FreeU 操作,包含两个 factor,针对于 backbone feature 的 b,以及针对于 skip connection 的 s
U-Net 的 Backbone:
为了评估去噪过程中主干和横向连接的显着特征,作者进行了一个对照实验:引入了两个乘法 scaling factor 分别用 bb 和 ss 表示,分别在连接之前调制 Backbone 和 Skip connection 的特征图。
如下图5所示,很明显,提高 Backbone 的 scaling factor bb 可以显著提高生成图像的质量。相反,调节 Skip connection 的 scaling factor ss 对生成的图像的质量的影响可以忽略不计。
图5:调节 Backbone 和 Skip connection 的 scaling factor 对生成图像质量的影响
基于这些观察,作者继续探索了当增强 Backbone 的 scaling factor bb 时,图像生成质量提升的潜在机制是什么。本文的分析表明,这种质量改进从根本上来讲,与 U-Net 架构 Backbone 的去噪能力有关。
如下图6所示, bb 的相应增加相应地导致扩散模型生成的图像中高频分量的抑制。这意味着增强 Backbone feature 有效地增强了 U-Net 架构的去噪能力,从而提升了模型生成结果的保真度和细节。
图6:不同 backbone scaling factor b 的 Fourier 对数幅频曲线。增加 b 会导致模型生成结果的高频信息被压缩
U-Net 的 Skip Connection
为了评估去噪过程中主干和横向连接的显着特征,作者进行了一个对照实验:引入了两个乘法 scaling factor 分别用 和 表示,分别在连接之前调制 Backbone 和 Skip connection 的特征图。
如下图5所示,很明显,提高 Backbone 的 scaling factor 可以显著提高生成图像的质量。相反,调节 Skip connection 的 scaling factor 对生成的图像的质量的影响可以忽略不计。
图7:backbone, skip 以及融合特征的 Fourier 对数幅频曲线
三、扩散 U-Net 的 “免费午餐”
上节的研究表明,U-Net 的 Backbone 的主要贡献是去噪,而 Skip connection 将高频特征引入 Decoder 模块,使其更容易恢复输入数据。但是,一个意想不到的结果是在推理阶段,Backbone 固有的去噪能力减弱了。这可能会导致异常图像细节的生成,如图1所示。
利用这些发现,作者引入了一种新的策略,称为 “FreeU”,可以有效地增强 U-Net 架构的去噪能力。它大大提高了生成样本的质量,而不需要额外的计算训练或者微调的开销。
为了调制这些特征图,作者引入了两个标量因子: 为调制的 Backbone 的 scaling factor α,以及为调制Skip connection 的 scaling factor β。具体而言,α旨在放大 Backbone 的特征,从而增强去噪过程; 而 β旨在衰减 Skip connection 的特征。
对于 Backbone 特征,作者首先沿着 channel 维度计算平均特征:
然后,backbone factor 计算为:
实验中作者发现给所有的 channel 不加区别地乘以α 会在生成的合成图像中产生过度平滑的纹理。其原因是增强的 U-Net 在去噪时损害了高频细节信息。因此,作者将 scaling 操作限制在特征x的一半通道:
实上,如图8所示,平均特征图包含了有价值的结构信息。这种方法旨在缓解过度平滑的问题。这个策略的好处有两点: 第1,它增强了 Backbone 特征的去噪能力,使其能够更有效地滤除噪声。第2,它避免了在整个特征图中全部使用 scaling factor 所带来的不利影响,从而在降噪和纹理保存之间实现更好的平衡。
为了进一步缓解由于增强去噪而导致的过度平滑纹理问题,作者进一步在傅里叶域中使用光谱调制来减少 Skip 特征的低频分量:
式中, FFT(·) 和 IFFT(·) 是 Fourier 和 Inverse Fourier 变换。
值得注意的是,所提出的 FreeU 框架不需要任何特定于任务的训练或微调。只需几行代码即可为 Backbone 和 Skip connection 添加缩放因子。本质上,架构的参数在推理阶段可以自适应地重新加权,这允许更灵活和有效的去噪操作,而无需添加任何计算负担。这使得 FreeU 成为一个高度实用的解决方案,可以无缝集成到现有的扩散模型中以提高其性能。
四、实验设置
4.1 文生图
Stable Diffusion[1]是一个在 Latent 空间的文生图扩散模型,基于文本输入可以生成逼真的图像。它在各种图像合成任务中始终表现出卓越的性能。通过将 FreeU 增强集成到 Stable Diffusion 中的实验结果如图9所示,可以看出模型的生成能力表现出显著的增强。
图9:Stable Diffusion 使用或不使用 FreeU 的结果
把 FreeU 合并到 Stabtable Diffusion 中,可以在实体描绘和细粒度细节上产生改进。比如,当提供提示 “a blue car is being filmed” 时,FreeU 细化图像,消除屋顶不规则性并提高周围结构的纹理复杂性。在 “Mother rabbit is raising baby rabbits” 这个例子里,FreeU 描绘出一只照顾婴儿兔子的母兔的正常外观。此外,在 “a attacks an upset cat and is then chased off” 和 “A teddy bear walking in the snowstorm” 等场景中,FreeU 有助于生成更逼真的猫和泰迪熊。
在图10中,作者展示了基于 SDXL 框架[9]生成的图像。很明显,本文提出的 FreeU 始终优于生成逼真的图像,尤其是在细节方面。
图10:SDXL 使用或不使用 FreeU 的结果
作者还对 35 名参与者进行了一项研究,以评估图像质量和图像-文本对齐。每个参与者都会收到一个文本提示和两个对应的合成图像,一个来自 SD,另一个来自 SD+FreeU。为了确保公平性,作者使用相同的随机采样的随机种子来生成2幅图像。图像序列被随机化以消除任何偏差。然后,参与者分别选择他们认为优于图像-文本对齐和图像质量的图像。图11列出了每个类别中 SD 和 SD+FreeU 的投票。分析表明,大多数选票选择 SD+FreeU,这表明 FreeU 在两个评估方面都显著提高了稳定的扩散文本到图像模型。
图11:文生图的 user study 结果
4.2 文生视频
ModelScope[10]是文生视频扩散模型。在 ModelScope 框架中使用 FreeU 框架之后,进一步完善了其合成视频的结果,如下图12所示。例如,当呈现提示 “A cinematic view of the ocean, from a cave” 时,FreeU 使 ModelScope 能够生成 “from the cave” 的角度,丰富了视觉叙事效果。在 “A cartoon of an elephant walking” 这个提示中,ModelScope 最初生成一个具有两个鼻子的大象,但使用了 FreeU 之后,它纠正了这个异常并产生对运动中大象的正确描述。对于提示 “An astronaut flying in space”,在 FreeU 的帮助下,ModelScope 可以生成宇航员漂浮在外太空的清晰而生动的绘卷。
图12:ModelScope 使用或不使用 FreeU 的采样结果
这些结果说明 FreeU 与 ModelScope 的协同作用,可以产生高质量的生成内容,其展示出清晰的运动、丰富的细节以及语义的对齐。
作者还以类似于文生图的方式对文生视频任务的 FreeU 进行了 user study 的定量评估。图13中的结果表明,大多数参与者更喜欢使用 FreeU 生成的视频。
图13:文生视频的 user study 结果
4.3 下游任务实验
FreeU 在各种扩散模型应用中显着提高了合成样本的质量。作者的评估从基础图像和视频合成模型扩展到更专业的下游任务中。
作者将 FreeU 合并到 DreamBooth[2]中,这是一个专门用于个性化文本到图像任务的扩散模型。增强是显而易见的,如图14所示,合成图像在真实感方面有了显著的改进。比如,基本的 DreamBooth 模型很难从提示 “a photo of action figure riding a motorcycle” 合成腿的外观,但 FreeU 版本克服了这一难题。
图14:DreamBooth 使用或不使用 FreeU 的采样结果
作者还将 FreeU 集成到了 ReVersion[5]中,这是一种基于 Stable Diffusion 的方法,提高了其质量,如图15所示。比如,当需要表达两个孩子之间的 “back to back” 关系时,FreeU 增强了 ReVersion 准确表征这种关系的能力。对于 “inside” 的关系,当狗应该放在篮子内时,ReVersion 有时会生成带有伪影的狗。但是引入 FreeU 有助于消除这些伪影。
图15:ReVersion 使用或不使用 FreeU 的采样结果
作者还评估了 FreeU 对 Rerender[4]的影响,这是一种 Zero-Shot text-guided video-to-video translations 的扩散模型。实验结果如图16所示:合成视频的细节和真实感有了明显的改进。比如,当提示为 "“A dog wearing sunglasses”,输入视频时,Rerender 最初会生成带有与 “sunglasses” 相关伪影的狗的视频。但是 FreeU 成功消除了这种伪影,从而产生了细化的输出。
图16:Rerender 使用或不使用 FreeU 的采样结果
4.4 消融实验
FreeU 的目的是增强扩散模型中 U-Net 的去噪能力。为了评估其影响,作者使用 Stable Diffusion 进行了消融实验。在下图17中,作者可视化了 Stable Diffusion 在使用或不用 FreeU 情况下的 Fourier 相对的对数幅频曲线。可以看出,FreeU 对去噪过程的每个步骤的减少高频信息方面表现出明显的影响,说明其对去噪的有效性。
图17:Stable Diffusion 使用或不使用 FreeU 的 Fourier 对数幅频曲线
此外,作者进一步可视化了 U-Net 架构的特征图,如图18所示。可以观察到,FreeU 生成的特征图包含更明显的结构信息。这一观察结果与 FreeU 的预期效果一致,因为它保留了复杂的细节,同时有效地去除噪声,与模型的去噪目标协调。
图18:Stable Diffusion 使用或不使用 FreeU 的特征图可视化
作者还评估了 Backbone scaling factor 和 Skip scaling factor 的效果,如下图19所示。
在 SD+FreeU(b) 的情况,在推理过程中集成了 Backbone scaling factor,可以观察到与单独的 SD 相比,细节的生成有了显著改进。比如,当给定提示 “A fat rabbit wearing a purple robe walking through a fantasy landscape” 时,SD+FreeU(b) 生成一个更真实的兔子,正常手臂和耳朵。
但是,使用 Backbone scaling factor 虽带来显着的改进,但它偶尔也会导致我们不希望的纹理过度平滑问题。为了缓解这个问题,如上文所述作者引入了 Skip scaling factor,旨在减少低频信息,缓解纹理过度平滑的问题。SD+FreeU(b & s) 中 Backbone 和 Skip scaling factor 的组合得到了生成更真实的图像。比如,在提示 “A synthwave style sunset above the reflecting water of the sea, digital art” 中,与 SD+FreeU(b) 相比, SD+FreeU(b & s) 中生成的日落天空表现出更强的真实感。这体现了 FreeU 策略在平衡特征以及缓解纹理平滑方面问题的有效性,最终实现了更加忠实逼真的图像生成。
图19:Backbone scaling factor 和 Skip scaling factor 的消融实验结果
d
\sqrt{d}
d
1
8
\frac {1}{8}
81
x
ˉ
\bar{x}
xˉ
x
^
\hat{x}
x^
x
~
\tilde{x}
x~
ϵ
\epsilon
ϵ
ϕ
\phi
ϕ
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。