极市导读
无需任何成本就能显著提高扩散模型样本质量的方法,不需要训练,不需要引入额外的参数,也不会增加内存或采样时间。 >>加入极市CV技术交流群,走在计算机视觉的最前沿
项目主页:https://chenyangsi.top/FreeU/
论文:https://arxiv.org/pdf/2309.11497.pdf
官方代码:https://github.com/ChenyangSi/FreeU
关于如何在diffusers中使用该特性,请看:https://github.com/ChenyangSi/FreeU/issues/12
摘要
在本文中,作者揭示了扩散模型U-Net尚未开发的潜力,它可以作为“免费的午餐”,但能大幅提高图片的生成质量。作者首先研究了U-Net架构对去噪过程的关键贡献,确定了去噪主要来源于骨干网络的贡献,而其跳跃连接主要将高频特征引入到解码器模块,导致网络忽略骨干语义。利用这一发现,本文提出了一种简单而有效的方法,称为FreeU:这是一种无需任何成本就能显著提高扩散模型样本质量的方法,不需要训练,不需要引入额外的参数,也不会增加内存或采样时间(所以称为“免费的午餐”)。本文的关键见解是重新权衡来自U-Net的跳跃连接和骨干特征图的贡献。 在图像和视频生成任务上的良好结果表明,FreeU可以很容易地集成到现有的扩散模型中,例如,Stable diffusion, DreamBooth, VideoFusion, renderer和ReVersion。只需要几行代码就可以提高生成质量,您所需要的只是在推理过程中调整两个比例因子。
1.介绍
扩散模型由扩散过程和去噪过程组成。在扩散过程中,高斯噪声逐渐加入到输入数据中,最终变成近似纯高斯噪声。在去噪过程中,通过学习一系列逆扩散操作将原始输入数据从噪声状态中恢复出来。通常,U-Net被训练来预测每个去噪步骤中要去除的噪声。现有的工作重点是将预训练的扩散模型用于下游应用,而扩散模型的U-Net内部特性在很大程度上尚未得到充分探索。
本文对扩散模型的U-Net在去噪过程中的有效性进行了研究。为了更好地理解去噪过程,作者首先提出了一种范式转移到傅里叶域,以感知扩散模型的生成过程。如图2所示,顶部一行展示了图像渐进的去噪过程,而下面两行显示了傅里叶反变换后的低频和高频分量,从去噪过程的第一步和最后一步可以看出,低频分量变化缓慢,而高频分量表现出更显著的变化。
这些发现在图3中得到进一步证实。这可以直观地解释为:(1)低频分量体现了图像的全局结构和特征,包括全局布局和平滑的颜色,它们构成图像本质和表现形式的基本全局元素。它的快速变化通常在去噪过程中是不合理的,因为这些成分的剧烈变化可能会从根本上重塑图像的本质。(2)相反,高频分量包含图像的快速变化,如边缘和纹理。这些更精细的细节对噪声非常敏感,当噪声被引入图像时,它们通常表现为随机的高频信息。因此,去噪过程需要在去除噪声的同时保留必要的复杂细节。
鉴于在去噪过程中低频和高频分量之间的这些观察结果,本文开展了研究,以确定U-Net架构在扩散框架中的具体贡献。在U-Net解码器的每一阶段,从跳跃连接得到的特征会和骨干特征连接在一起。本文的研究表明,U-Net的骨干网路(包括编码器和解码器)主要有助于去噪,而它的跳跃连接将高频特征引入解码器模块。这些连接传播细粒度的语义信息,以便更容易地恢复输入数据。然而,这种传播的一个意想不到的后果是在推理阶段骨干网络的去噪能力会变弱。这可能导致生成异常的图像细节,如图1的第一行所示:
在这一启示的基础上,作者提出了一种新的策略,称为“FreeU”,它具有提高样本质量的潜力,而不需要额外的训练或微调的计算开销。在推理阶段,本文实例化了两个专门的调制因子,旨在平衡U-Net架构的骨干网络和跳跃连接的特征贡献。第一种,称为骨干特征缩放因子,旨在放大骨干的特征。然而,作者发现,虽然骨干特征缩放因子产生了显著的改进,但它偶尔会导致不希望的纹理过度平滑。为了缓解这个问题,作者引入了第二个因子,跳跃特征缩放因子,旨在缓解纹理过度平滑的问题。
FreeU框架在与现有扩散模型集成时表现出无缝的适应性,包括文本到图像生成和文本到视频生成等应用。作者对FreeU进行了全面的实验评估,采用Stable Diffusion、DreamBooth、ReVersion、VideoFusion和Rerender作为基准比较的基础模型。通过在推理阶段使用FreeU,结果表明模型输出的质量有明显的提高。图1所示的第二行证实了FreeU在增强生成图像中的复杂细节和整体视觉保真度方面的效果。
本文的贡献总结如下:
-
调查并揭示了U-Net架构在扩散模型中去噪的潜力,并确定其骨干网络主要有助于去噪,而其跳跃连接将高频特征引入解码器模块。 -
进一步介绍了一种简单而有效的方法,称为“FreeU”,它通过利用U-Net架构的两个组件的特点来增强U-Net的去噪能力。它大大提高了生成质量,而不需要额外的训练或微调。 -
提出的FreeU框架是通用的,与现有的扩散模型无缝集成。通过各种基于扩散的方法证明了样本质量有显著改善,显示了FreeU在不增加额外成本的情况下的有效性。
2.方法
2.1 预备知识
扩散模型,比如去噪扩散概率模型(Denoising Diffusion probistic models, DDPM),包含了两个数据建模的过程:扩散过程和去噪过程。在每一步t,高斯噪声通过马尔可夫链逐渐引入到数据分布x0 ~ q(x0),遵循规定的方差表,表示为β1,…, βT:
在给定噪声输入x_t的情况下,去噪过程将上述扩散过程逆转为更清晰的数据x_{t−1}:
2.2 扩散模型U-Net如何去噪
如图4(a)所示,U-Net架构包括一个骨干网络,即一个编码器和一个解码器,以及促进编码器和解码器相应层之间信息传输的跳跃连接。
U-Net的骨干。为了评估骨干网络和横向跳跃连接在去噪过程中的显著特征,本文进行了一个对照实验,其中引入两个缩放因子,表示为b和s(分别是backbone和skip的首字母),来调制骨干和跳跃连接在连接之前分别生成的特征图。如图5所示,第一行s固定为1,b从0.6增大到1.4;第二行b固定为1,s从0.6增大到1.4,可以看出,提高骨干的比例因子b可以明显提高生成图像的质量。相反,调节横向跳跃连接的比例因子s的变化似乎对生成图像质量的影响非常有限。
分析表明,这种质量的提高从根本上与U-Net骨干网络所赋予的去噪能力有关。如图6所示,b的相应增加导致扩散模型生成的图像中的高频成分受到抑制。
相反,跳跃连接用于将编码器的较早的特征直接转发到解码器。如图7所示,这些特征是高频信息的来源。
2.3 扩散模型U-Net里的免费午餐
从技术上讲,对于U-Net解码器的第l块,设 表示来自骨干网络的特征图,设 表示相应的跳跃连接的特征图。
为了调制这些特征图,本文引入了两个标量因子:用于 的骨干特征缩放因子 和用于 的的跳跃特征缩放因子 。其中,因子 用于放大骨干特征图 ,因子 用于减弱跳跃特征图 。
对于骨干特征,经过实验研究,作者发现通过与 相乘来任意放大 的所有通道会在合成图像中产生过度平滑的纹理。因此,本文将缩放操作限定为 的半通道:
其中 表示特征图 的第i个通道,C是 中的通道总数。这种策略不仅增强了骨干的去噪能力,而且避免了全局应用缩放的有害后果,从而在降噪和纹理保存之间达到了更微妙的平衡。
为了进一步缓解纹理过度平滑的问题,本文进一步在傅里叶域中采用频谱调制来选择性地减少跳跃特征的低频成分。在数学上,这个运算是这样执行的:
其中FFT(·)和IFFT(·)分别是傅里叶变换和反傅里叶变换。⊙表示元素的乘法, 是一个傅立叶遮罩,设计为关于傅立叶系数大小的函数,用于实现频率相关的比例因子 :
r是半径, 是阈值频率。
然后,将增强的跳跃特征图 与骨干特征图 连接起来,如图4所示。
3.实验
作者以Stable Diffusion为基础框架进行了分析实验。在图13中,展示了稳定扩散的傅里叶变换的相对对数幅值的可视化,比较了加入和不加入FreeU的情况。这些可视化表明,FreeU在去噪过程的每个步骤中都对减少高频信息产生了明显的影响,这表明FreeU能够有效地去噪。
此外,本文还可视化了U-Net的中间特征图。如图14所示,可以观察到FreeU生成的特征图包含更明显的结构信息。
在图15中,在SD+FreeU(b)的情况下,即只使用了骨干比例因子。当提示“一只穿着紫色长袍的胖兔子穿过梦幻景观”时,SD+FreeU(b)生成的兔子具有正常的手臂和耳朵,这与SD相反。然而,它偶尔会导致不理想的纹理过度平滑。为了缓解这一问题,我们还得引入跳跃特征缩放因子,旨在补充高频信息并缓解纹理过平滑问题。如图15所示,在SD+FreeU(b & s)中,同时使用骨干网络和跳跃特征比例因子可以生成更逼真的图像。例如,在提示“大海反射水面上的合成波风格日落,数字艺术”中,与SD+FreeU(b)相比,SD+FreeU(b & s)生成的日落天空更具真实感。

公众号后台回复“数据集”获取100+深度学习各方向资源整理
极市干货
# 极市平台签约作者#
wwdok
知乎、b站同名
研究领域:以CV为出发点,逐渐研究AIGC 、多模态。
好奇好学,不定期分享自己的学习笔记和各种视频,欢迎关注~
点击阅读原文进入CV社区
收获更多技术干货

