FreeU简单理解与测试

FreeU也是一篇有一段时间的文章了,看到不少人在使用,但是引入这个节点有没有用,有多大用,一直没有测试过,这里做个简单的测试并记录下,并不严谨,仅作参考。

初步了解FreeU

首先,FreeU是个啥。

这里是作者的原始论文,有兴趣的可以自行阅读:https://arxiv.org/pdf/2309.11497.pdf

文章提出了一种名为“FreeU”的方法,该方法能够在不增加训练、不引入额外参数、不增加内存或采样时间的情况下,显著提高扩散模型样本的质量。

听起来还是很棒的。

文章摘要指出,作者们揭示了扩散U-Net的潜力,这是一种“免费午餐”,能够即时显著提高生成质量。他们首先研究了U-Net架构在去噪过程中的关键贡献,并发现其主要骨干主要用于去噪,而其跳跃连接主要将高频特征引入解码器模块,导致网络忽视了骨干语义。基于这一发现,作者提出了一种简单而有效的方法——“FreeU”,通过策略性地重新加权U-Net的跳跃连接和骨干特征图的贡献,来利用U-Net架构两个组件的优势,从而提高生成质量。

文章还详细介绍了FreeU的实现细节,包括在U-Net解码器的每个块中如何调整特征图的权重,以及如何通过结构相关缩放和傅里叶域中的频谱调制来改进去噪能力。作者们通过一系列实验验证了FreeU的有效性,包括在图像和视频生成任务中与现有的扩散模型(如Stable Diffusion、DreamBooth、ModelScope、Rerender和ReVersion)集成,并通过调整两个缩放因子在推理过程中实现质量提升。

最后,文章通过消融研究分析了FreeU中各个组件的影响,并得出结论,FreeU是一种优雅简单但高效的方法,能够在不增加任何额外计算成本的情况下显著提高扩散模型的样本质量。

那么什么是高频噪声?

高频特征(High-frequency features)在图像处理和信号处理领域中通常指的是那些变化迅速、细节丰富的部分。在图像中,这些特征可能包括边缘、纹理、噪声等,它们在图像的傅里叶变换中表现为高频成分。高频特征对于图像的视觉质量和细节表现至关重要,因为它们携带了图像中大部分的视觉信息。

在文章《FreeU: Free Lunch in Diffusion U-Net》中,高频特征被提及是因为它们在扩散模型的去噪过程中起着重要作用。在扩散模型的去噪过程中,模型需要从带有噪声的图像中恢复出清晰的图像。高频特征由于其细节丰富,对于恢复图像的清晰度和真实感非常关键。然而,如果处理不当,高频特征也可能导致图像过度平滑或产生不自然的纹理。

在FreeU方法中,作者们通过调整U-Net架构中的跳跃连接(skip connections)和骨干网络(backbone)的特征图的贡献,来平衡高频特征的处理。这样做可以提高去噪效果,同时保留图像中的重要细节,从而提高生成图像的质量。具体来说,FreeU通过引入特定的缩放因子来调整这些特征图,使得模型在去噪的同时能够更好地保留高频特征,从而生成更高质量的图像。

那么不了解机器学习的朋友可能还有个问题:

什么是消融实验?

消融实验(Ablation Study)是一种研究方法,用于确定模型中各个组件或特征的重要性。在机器学习和数据科学中,消融实验通常涉及系统地移除或修改模型的某些部分,然后观察这些变化对模型性能的影响。通过这种方式,研究人员可以了解哪些部分对模型的贡献最大,哪些部分可能是冗余的,或者哪些部分可能对模型的性能有负面影响。

在《FreeU: Free Lunch in Diffusion U-Net》这篇文章中,作者们进行了消融实验来评估FreeU方法中不同组件的影响。具体来说,他们分析了以下几个方面:

  1. 骨干特征缩放因子(Backbone Scaling Factor):通过改变骨干网络特征图的缩放因子,作者们观察了这如何影响生成图像的质量。这有助于理解骨干网络在去噪过程中的作用。

  2. 跳跃特征缩放因子(Skip Feature Scaling Factor):同样,作者们通过调整跳跃连接特征图的缩放因子,来评估这些连接在引入高频特征和细节方面的作用。

  3. 结构相关缩放(Structure-related Scaling):作者们还研究了结构相关缩放方法对图像质量的影响,这是一种动态调整骨干特征图缩放因子的方法,旨在更好地保留图像的结构信息。

通过这些消融实验,作者们能够确定FreeU方法中哪些部分对于提高生成图像质量最为关键,并且能够理解这些部分是如何相互作用的。这种分析对于优化模型设计和提高模型性能至关重要。

简单总结一个

FreeU通过4个超参参数的设定,实现了不增加训练、不引入额外参数、不增加内存或采样时间的情况下,显著提高扩散模型样本的质量。

了解这些差不多就够了,那么问题来了,参数应该如何设定最好呢?

官方给了一个参考答案:

🎡源地址:GitHub - ChenyangSi/FreeU: FreeU: Free Lunch in Diffusion U-Net

你需要根据自己使用的模型自行调整,以下仅供参考:

SD1.4: (will be updated soon)

b1: 1.3, b2: 1.4, s1: 0.9, s2: 0.2

SD1.5: (will be updated soon)

b1: 1.5, b2: 1.6, s1: 0.9, s2: 0.2

SD2.1

b1: 1.4, b2: 1.6, s1: 0.9, s2: 0.2

SDXL

b1: 1.3, b2: 1.4, s1: 0.9, s2: 0.2 SDXL results

更多参数范围设定建议:

建议遵循以下范围要求

  • b1: 1 ≤ b1 ≤ 1.2
  • b2: 1.2 ≤ b2 ≤ 1.6
  • s1: s1 ≤ 1
  • s2: s2 ≤ 1

相信大家日常工作都比较忙,没有时间一个个测试,所以主要看标红色的部分就好了,用这个值作为默认值去试试看,然后做适当的微调。

那么是否真的有提升呢?做个实验。

首先使用comfyUI搭建一个简单的sdxl的工作流。

工作流比较简单,就不分享了。

贴几张测试图片:

The mysterious crystal palace at the bottom of the sea, crystal clear, surrounded by a group of glowing jellyfish,realistic, cinemagraph, 

(左边细节更丰富,右边画面主体更突出,但是少了很多细节,更卡通一点)

An elderly man in prison, a mechanical arm, cyberpunk style, pixelated, pixel art,

(右边主体貌似更清晰一丢丢?下边这一组右边修复了手部,这点好评)

A chubby, winged, adorable crocodile wearing a T-shirt with "Dream" written on it, in the style of Pixar Studios, 3D cartoon,

(右边小鳄鱼过曝了)

(右边小鳄鱼修正了衣服上的形象,但是曝光还是过头了)

还有更多就不挨个尝试了,大家有兴趣可以自己也尝试下。

我还是把工作流简单保存了一份放在顶部了,实在懒得自己搭建也可以用这个现成的。

总体来说,初步的测试结论:

FreeU可以更好的关注画面的主体,并一定程度上修复画面的错误部分,但同时可能会造成画面过曝,画面细节偏少等问题,所以如果你使用了FreeU,然后发现画面总是哪里有问题,不妨关掉FreeU再试试看。

在实际的使用过程中,FreeU可以作为一个可选项。

🎉写在最后~

去年的时候写了两门比较基础的Stable Diffuison WebUI的基础文字课程,大家如果喜欢的话,可以按需购买,在这里首先感谢各位老板的支持和厚爱~

✨StableDiffusion系统基础课(适合啥也不会的朋友,但是得有块Nvidia显卡):

https://blog.csdn.net/jumengxiaoketang/category_12477471.html

​🎆综合案例课程(适合有一点基础的朋友):

https://blog.csdn.net/jumengxiaoketang/category_12526584.html

这里是聚梦小课堂,就算不买课也没关系,点个关注,交个朋友😄

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聚梦小课堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值