当前位置:   article > 正文

SD文生图之什么是采样器和推荐场景_sd生成的采样器是什么

sd生成的采样器是什么

前言

上一章,我们介绍了VAE模型

本章,我们介绍如何RA/SD中的各种采样器及其特性

采样器可能是很重要的影响AIGC最终生成内容的环节了。不同的采样器实现的方式,原理,算法都不同。

目前没有一个较为统一的采样器,可以作用于所有的模型中。但不同的采样器有一定的风格特征,很多用户总结了一些心得。

但总体来说,每个AIGC的设计参数都会有不同的影响,更重要的AIGC的环节下最重要的奇怪的创意,所以有的时候用些奇怪的采样器,甚至会给你意想不到的效果。

C站上所有的模型,都会写明具体的例子的采样器。但不意味着你一定要用那个。展开你自己的创意之路吧。

知识点

  1. 采样器的基本知识和原理
  2. 各种情况下选择使用采样器的推荐

什么采样器

虽然把这些采样器分成不同的类别并不容易,但可以大致归纳为两种主要的方法:

  1. 概率模型,例如 DDPM、DDIM、PLMS 以及 DPM 系列模型。这类生成模型根据模型估计的概率分布来生成结果,就像用相机捕捉风景照片一样,通过捕捉概率中的可能性来形成图像。
  2. 数值方法,例如 Euler、Heun和 LMS。这些方法在每一步中都致力于解决一个具体的数学问题,逐渐构建出解决方案,就像画家在画布上一步步绘制风景,每一步都在细致地添加新的细节。


2. Euler a(Eular ancestral)

Euler采样器是最简单、最快速的一种选择。它可以在较短的时间内生成图像,但可能缺少多样性。如果你对运行时间有严格的要求,或者你只需要一个大致的结果,那么选择Euler采样器是个不错的选择。

Euler a采样器相较于Euler更具多样性,可以以较少的步数产生很大的变化。不同步数可能会产生不同的结果。但需要注意的是,太高的步数(超过30)并不一定能带来更好的效果。如果你希望在较短的步数内获得多样性,Euler a采样器是一个值得尝试的选择。

Euler方法可能是最简单直接的采样器之一。这种方法基于普通微分方程(ODE),其特点是在每一步处理中都会以固定的比例逐渐减少噪声。尽管因为其简单性而在精确度上可能有所欠缺,但Euler方法因其处理速度快而被广泛应用。

Euler算法非常快速,即使在10步内也能够得出良好的结果。它的优势在30到50步之间。

3. DDIM

DDIM采样器收敛速度较快,但相对而言效率较低。它需要较多的步数才能获得较好的结果,因此更适合用于重绘时的使用。如果你希望在纠正错误或调整提示词时进行迭代绘制,DDIM是一个可靠的选择。

DDIM(去噪扩散隐式模型,详情见相关论文)在工作原理上与 DDPM 类似,但它采用的是隐式概率模型。与 DDPM 相比,DDIM 通过更少的处理步骤就能取得更佳的效果,这使得它成为一个更加高效快速的采样器,同时基本保持了图像质量。

从云的表现可以看出,步数越多(100 步以上),效果越好。我们将在下文中看到更好的替代方案。

4. LMS

LMS采样器是Euler的衍生版本,使用了一种相关但稍有不同的方法,即平均过去的几个步骤以提高准确性。大约30步可以得到稳定的结果。如果你对图像的准确性有较高的要求,可以考虑使用LMS采样器。

LMS(线性多步骤方法)可以被视为 PLMS 的一个变种,区别在于 LMS 使用的是数值方法,而非 PLMS 中的概率方法(从 PLMS 中去掉概率因素“P”就得到了 LMS)。

与Euler和Heun不同的是,LMS 方法会利用前几个步骤中的信息来在每一步减少噪声。这样的处理方式虽然提高了图像的精度,但相应地也增加了计算需求,导致处理速度较慢。

使用几个步骤,我们可以得到一个能够生成模仿药物效果的迷幻图像的采样器。开玩笑的话,这是一个不值得的采样器,因为尽管速度很快,但需要大约100个步骤才能提供一些体面的东西。

5. PLMS

PLMS采样器也是Euler的衍生版本,它专门用于处理神经网络结构中的奇异性。选择PLMS采样器可以更好地处理复杂的图像结构,提高生成图像的质量。

PLMS(伪线性多步骤,详见相关论文)代表了对 DDIM 的显著改进。有趣的是,PLMS 只需50步处理过程,就能实现比 DDIM 在1000步中所达到的更高图像质量。这听起来非常令人兴奈,不是吗?其实,这还只是冰山一角。

对于 PLMS,我们不能使用较少的步骤,因为它无法清除噪声,但在 50 到 100 个步骤之间,它已经能够提供良好的结果。

6. DPM2

DPM2是一种神奇的采样器,旨在改进DDIM,减少步骤以获得良好的结果。它需要每一步运行两次去噪,速度大约是DDIM的两倍,生成的图像效果非常好。如果你对图像的质量和速度都有较高的要求,那么尝试使用DPM2采样器是一个明智的选择。不过需要注意,在进行调试提示词实验时,DPM2可能会稍慢一些。

DPM(扩散概率模型)是一种概率模型,它在 DDPM 的基础上进行了一系列改进,因此得名。不过,在 SD軟件中并没有包含 DPM 的实现,因为它已经被更先进的版本所取代,正如我们下面将要介绍的。

DPM2 可以被视为 DPM 的升级版,相当于“版本2”。它在原有模型的基础上做了进一步的改良和优化。

用10个步骤,您已经可以获得令人印象深刻的质量(不要尝试5个步骤,您将不会喜欢结果)。大约30到50个步骤是理想点。通常来说,更多的步骤并不值得。

另一个基于 DPM 的改进版本是 DPM++。DPM++ 采用了一种混合方法,它结合了确定性和概率方法进行采样以及后续的噪声减少。在 SD軟件中,并没有单独实现这个采样器,而是将它与其他方法相结合。具体的结合方式和效果,我们将在下一部分详细探讨。

因此,DPM 衍生出了两个重要的改进版本:DPM2 和 DPM++,每个都具有其独特的特点和优势。

更快的 DPM 模型(DPM-Solver 和 UniPC)

扩散概率模型(DPM)顾名思义,基于概率原理。与Euler、Heun或LMS等确定性数值方法不同,DPM在每一步中采用近似方法来处理问题,目的是为了实现尽可能准确的采样。

在这些模型中,存在一个关键的组成部分——求解器。求解器在计算和近似采样的概率分布过程中起到了至关重要的作用。正是在这里,一种名为 DPM-Solver 的新技术得以应用,它有效地缩短了采样过程中每一步的时间。

也就是说,像 DPM fast(详见相关论文)或 DPM++ 2S/DPM++ 2M(详见相关论文)这样的模型采用了更快速的求解器,从而在采样过程中节约了时间。

它会很快(也不是那么快),但使用少量步骤时,它变得无法使用。有趣的是,它提供了与其他采样器不同的结果,并且似乎电影效果更加明显。

在 DPM++ 2S/DPM++ 2M 的版本中,“2”表示它们是二阶模型。这意味着这些模型结合了预测器和校正器两种机制,以更精确地逼近最终结果。

其中,“S”代表单步骤(Single step)。这种模式在每个步骤中只执行一次计算,因此处理速度更快。

相比之下,“M”代表多步骤(Multi step)。这种方法在每一步进行多次计算,并且会考虑到之前步骤中获取的信息,从而实现更精确、更高质量的收敛,但相应地也需要更长的时间。

在这两种模式下,这种求解器都比标准的 DPM 模型求解器运行得更快。

目前在 SD軟件中并没有实现 DPM++ 2S,仅提供了 A、Karras 和 SDE 等变体(我们将在后面进一步介绍这些变体)。因此,让我们看一下 DPM++ 2M 的一些样例。

对于这个全能采样器,没有太多可说的。它在30个步骤中提供了令人印象深刻的结果,如果你给它更多时间,它甚至可以挤出更多。

7. UniPC

UniPC采样器是效果较好且速度非常快的一种选择。它在平面、卡通风格的图像表现方面较为突出。如果你希望快速生成具有良好效果的图像,尤其是针对平面和卡通风格的创作,强烈推荐使用UniPC采样器。

通过选择合适的采样器,你可以根据自己的需求获得不同风格、质量的图像生成结果。在使用Stable Diffusion进行创作时,请根据具体情况选择合适的采样器,以获得最佳的效果。

至于 UniPC(详见相关论文),它是一个由统一预测器(UniP)和统一校正器(UniC)两部分构成的求解器。这种方法可以被应用到任何 DPM 模型上,其核心目标是在尽可能少的步骤中达到最高的采样质量。还记得 PLMS 如何将原本 DDIM 需要1000步完成的任务缩减到50步吗?在一些情况下,UniPC 甚至能够在仅仅5步或10步内生成高质量的图像。

因此,无论是单步骤还是多步骤的 DPM 模型,UniPC 都能够被集成进去,使其在效率上与 DPM++ 2S 或 DPM++ 2M 相媲美。特别值得一提的是,当步骤数量极少时,UniPC 能提供更优秀的结果。

甚至 UniC 校正器也可以被集成到这些采样算法中,进一步提高采样效率(例如在 DPM++ 2S 中加入 UniC)。

在这个例子中,10步是不足以生成一张没有噪点的图像的,但在15或20步之后你将得到它。在30步时它非常出色,并且没有必要再继续下去,尽管仍有改进的空间。


8. Heun

Heun方法可以看作是Euler方法的一个更精细的改进版。与Euler仅采用线性近似不同,Heun在每个处理步骤中执行两项任务,因此被称为二阶采样器。它先用线性近似做出预测,然后通过非线性近似来进行校正。这种方法在提高精确度的同时,也确保了更高的图像质量。然而,这种精确度的提升也有一个小代价:处理时间大约是Euler方法的两倍。

Karl Heun 在一个多世纪前开发了这种数值方法!

在10个步骤中仍然有一些噪点,但在更多的步骤中它会消失。正如你所看到的,在30个步骤中它提供了高质量,尽管在50个步骤中它提供了更多细节层次。在100个步骤中,它几乎不改变图像,并且不值得等待结果。

最终结论

Euler、Euler

快速获得简单的结果

DPM++ 2M Karras

推荐的算法,速度快,质量好,推荐步数 20~30

DPM++ SDE Karras

图像质量好但是不收敛,速度慢,推荐步数 10~15

DPM++ 2M SDE Karras

2M和SDE的结合算法,速度和2M相仿,推荐步数 20~30

DPM++ 2M SDE Exponential

画面柔和,细节更少一些,推荐步数 20~30

DPM++ 3M SDE Karras、DPM++ 3M SDE Exponential

3M 系列。步数需要 30 步以上,且 CFG 要低一些。

UniPC、Restart

更少的步数就能获得好的结果

LCM

配合专门的大模型使用,步数 6 ~10 步就可以有好的结果,CGF 1~2 之间


总结和推荐

图像质量

如果你追求高质量图像,应该着重考虑达到收敛。这是获得最高图像质量的关键。如果你不想牺牲过多的生成速度,那么不妨跳过像 DDIM 这样需要成百上千步骤才能收敛的采样器。虽然 Heun 和 LMS Karras 提供了不错的结果,但使用 DPM++ 2M 或其 Karras 版本会更佳。

如果你不急于获得结果,可以尝试 DPM 自适应,或者如果你有足够时间,UniPC 也是个不错的选择。

使用上述提到的采样器,你可以在20-30步内获得良好的结果,尽管尝试更多步骤也无妨。

生成速度

如果你正在测试提示,你可能不想花太多时间等待结果。在这种情况下,如果你不追求最高质量,只是想快速测试变化,那么推荐使用 DPM++ 2M 或 UniPC,步骤数较少。

仅用10-15步,你就能得到非常体面的图像。

如果你不介意可重复性,还可以选择 Euler A,这是一个快速且质量不错的祖先采样器。这是我的最爱!

创造力和灵活性

这部分专门针对祖先和随机采样器。它们既不提供低质量的输出,也不慢,只是有所不同。

这些采样器的特点(或优势,视角而定)是,如果你有一个在40步中生成的图像,那么在50步中做出的图像可能会更好或更差。你需要不断尝试。而这种不确定性使得这些采样器更具创造性,因为你可以通过改变步骤数量来获得细微变化。

当然,在这里 Euler A 和 DPM++ SDE Karras 特别值得一提。尝试在15步、20步、25步等不同步骤下生成图像,并观察结果如何变化。


创作不易,觉得不错的话,一定要给我点个赞呀。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/730815
推荐阅读
相关标签
  

闽ICP备14008679号