欢迎光临散文网 会员登陆 & 注册

采样方法和步数选择

2023-08-04 04:44 作者:octppus  | 我要投稿

原理

各位观众大家好,我是Octppus,本篇文章会介绍采样方法和步数的原理,之后会出视频讲解。

使用Diffusion模型生成图片是一个去噪的过程

去噪过程
  1. 输入一张完全随机的噪点图

  2. 由训练好的噪声预测器生成一张当前步数(加上其他输入信息)的噪点图

  3. 噪声图减去生成出来的噪点图

  4. 将去除噪点的图片当作输入再执行2和3的步骤

以上的步骤需要执行许多次,直到从一张噪点图变成一张清晰的图片。

去噪的过程就被称为采样,不同的采样方法就表示不同的去噪方式

不同的采样方法

要进行去噪的次数,就是采样步数

采样步数

使用不同的去噪方式会生成完全不同,且几乎无法预测的图像,因此选择不同的采样方式和采样步数,不能作为调整画面的内容的手段,只能用来调整生成图片的速度,质量,可控性准确性


采样步数

15个采样步数

无论采样步数是多少,都是一个噪点数量从高降至0的过程。

30个采样步数

采样步数多,噪点减少的过程就会比较平滑,可以减少截断误差。

足够的采样步数,如同从小学,初中,高中到大学,花的时间就,但是能学到完整的知识。

过低的采样步数,如同学会了四则运算,然后马上学习微积分,中间有大量的知识断层只能靠蒙。

过高的采样步数,如同只要9年就能学完的内容,学了18年,能学到的东西没有多多少,但是时间花了很久。

步数太多不但不会提升图片品质,还会平白浪费时间,但如果步数不够产生的图像效果又不佳。

不用担心对于所有采样方法来说,大于30步的步数都可以有一个不错的效果,但在处理大量图片的时候,减少步数可以节约大量的时间。

步数的选择主要取决于采样方法(使用插件的时候也需要针对性调整步数,但影响不大),不同的采样方法,图像收敛的速度也不同。

图像收敛

这里所指的收敛,就是说再采样的过程中,图像内容基本不变。

图像是否已经收敛,可以被视为生成完毕的一个指标。


不同采样方法的收敛曲线

大部分算法都可以在30步的时候收敛,其中Heun在20步的时候就已经收敛。

收敛之后的步数几乎没有意义,因为图像的改变非常细微。

但是!!!!!!!!!!!

有些采样方法会导致图像无法收敛,无论迭代多少步,产生的图像都会发生变化。

采用Ancestral sampling的方法收敛曲线

因为这些采样方法了祖先采样器(Ancestral sampling)

这会在每个步骤中添加随机噪声,即便是在步数很高,图像改变很小的时候,细微的变化累计也会造成图像发生很大的改变。

例如“Euler a”这个名字中带有a(Ancestral)的采样方法,就是采用了祖先采样器,有些不带a的也有采用,如DPM++ SDE 和 DPM++ SDE Karras。

能否收敛是区分采样方法的其中一条标准,这决定了生成的图像是否稳定可控且符合描述。如果希望生成的画面内容可控和准确就避免使用这一类采样方法,反之则使用。

Euler a方法,随着采样步数增加画面一直在发生改变
Euler方法,画面收敛后就几乎保持不变


一下两组图片使用了完全相同的生成条件,只改变了头发的颜色,一组使用Euler采样方法,一组使用Euler a采样方法。

使用Euler

使用Euler a


收敛速度

除了生成图片的可控性之外,收敛的速度也是考量因素之一。

lower the better
lower the better
DDIM
UniPC

一些方法可以用更少的步数完成图像收敛,在批量处理的时候非常有用。

注意!!!!

使用同样的步数,生成图像的时间也会有很大区别。


相对生成速度
Euler
DPM adaptive

画面质量

在相同的生成条件下,不同采样方法通常只要迭代到图片收敛,画质都没有明显的好坏之分。

除了极个别的拉跨方法。

Euler 30
DPM fast 30
DPM++ 2M Karras

好看千篇一律,丑的各有特点。总的来说,画面质量并不是主要考量因素,因为大部分方法在完成收敛后,画质区别都不大。

更加平滑的减少噪声

Karras噪声减少更为平滑,画面质量会相对更好一些。

总结

  1. 选择采样方式主要考虑稳定性,其实是生成图片的时间。

  2. 在完成收敛之后,大部分采样方式的画质都差不多。

  3. 相同条件下采用不同采样方法生成的图像内容差距很细微。

  4. 希望结果多变,选择带有祖先采样器的采样方式

  5. 希望结果稳定可控,选择不带祖先采样器的采样方式

  6. 不同采样方式的收敛步数不同,但是大多在30步之后收敛,因此超过30步之后的步数意义不大。

  7. 如果想要节省时间,选择收敛块的采样方式,并将步数调整至收敛完成的步数即可。

  8. 不懂怎么选的话,用“Euler步数30”



采样方法和步数选择的评论 (共 条)

分享到微博请遵守国家法律