Stable Diffusio——采样方法使用与原理详解

简介

当使用稳定扩散(Stable Diffusion)技术生成图像时,首先会生成一张带有噪声的图像。然后,通过一系列步骤逐渐去除图像中的噪声,这个过程类似于从一块毛坯的白色大理石开始,经过多日的精细雕刻,最终雕塑出一尊如米开朗基罗的大卫般的精美雕像。

在这个过程中,涉及到几种不同的算法。首先是“采样器”(sampler)算法,它从使用的模型中获取样本,并将噪声预测器估算出的噪声应用于这些样本。接着,算法从正在处理的图像中减去这些带噪声的样本,就像每一次雕刻都在精雕细琢地塑造大理石一样。

采样器算法负责控制去噪的具体操作,而另一个名为“噪声调度器”(noise scheduler)的算法则负责调节去噪的程度,决定每一步去除多少噪声,以确保整个过程高效又精准。

若噪声减少是线性的,则在图像处理的每一步中,变化程度都将是相同的,可能导致图像出现突兀的变化。使用斜率为负的噪声调度器可以在初期快速去除大量噪声,加速整个过程,然后逐渐减少去噪量,以精细调整图像的小细节。

若继续以大理石雕刻为比喻,在雕刻的初期,使用较大力度快速敲除大块部分是有益的,可加快雕塑的整体进展。而在雕塑的末期,需要极其细致和谨慎地处理,精确雕琢出细节,以防雕塑出现破损。

收敛性是这个过程中的关键要素。当采样算法达到某个阶段,继续进行更多步骤不再改善结果时,则认为图像已经达到了收敛状态。

有些算法能够快速收敛,适用于快速验证创意和想法。其他一些算法可能需要更长时间或更多步骤才能收敛,但通常能提供更高质量的结果。还有一些算法因为没有设定极限,永远不会收敛,为创新和创造性提供更多空间。
感兴趣可加入:566929147 企鹅群一起学习讨论
在这里插入图片描述

采样器

DDPM

DDPM(Diffusion Probabilistic Models)是最早期的采样器之一,它使用明确的概率模型来消除图像中的噪声。然而,这种方法需要执行大量的处理步骤才能获得满意的结果。但现在很多算法都以不再提供这个采样器了。

DDIM

DDIM采用的是隐式概率模型。与DDPM相比,DDIM能够通过更少的处理步骤取得更佳的效果,使其成为一个更高效快速的采样器,同时基本保持图像质量。

隐式概率模型的优势在于它们通常更加灵活和高效,能够以更少的步骤生成高质量的图像。相比之下,明确概率模型(如DDPM)可能需要更多的处理步骤来达到相似的效果。这种改进使得DDIM成为一个更具吸引力的选择,特别是在需要快速生成高质量图像的情况下。

虽然DDIM在性能和效率方面表现出色,但它仍然建立在隐式概率模型的基础上,这意味着它可能具有一些独特的特性和限制。DDIM为稳定扩散技术提供了一个更快速、高效的采样器选项,同时保持了图像质量。

PLMS

与DDIM不同,它不能通过较少的步骤清除噪声。然而,在进行了50到100个步骤之后,PLMS已经能够提供良好的结果。

虽然PLMS可能需要更多的处理步骤来达到满意的效果,但一旦执行了足够数量的步骤,它仍然能够产生高质量的图像。这种方法可能更适合那些能够容忍稍长处理时间的应用场景,或者需要更高质量图像输出的情况。

PLMS虽然不能通过较少的步骤来清除噪声,但在执行足够的步骤后,仍然能够提供良好的结果,这使得它在某些情况下仍然是一个有用的采样器选项。

Euler

Euler方法是一种简单直接的采样器,基于普通微分方程(ODE)。它的特点是在每一步处理中都以固定的比例逐渐减少噪声。尽管在精确度上可能存在一些不足,但由于其简单性和快速处理速度,Euler方法被广泛应用。

简单来说,Euler方法通过在每一步处理中以固定的步长向前推进系统状态来逼近微分方程的解。在稳定扩散技术中,这意味着在每一步中以固定的比例减少噪声,直到达到所需的图像质量水平。

尽管Euler方法可能不如其他更复杂的算法在处理质量方面表现得那么优秀,但由于其快速处理速度,它仍然是许多应用中首选的采样器之一。特别是在需要迅速生成图像或者对计算资源有限的情况下,Euler方法可以提供一种简单而有效的解决方案。

Euler算法非常快速,即使在较少的步数内也能够得出良好的结果。其优势在处理30到50步之间尤为明显。

Heun

Heun方法可以被视为对Euler方法的一个更精细的改进。与Euler方法仅使用线性近似不同,Heun方法在每个处理步骤中执行两个任务,因此被称为二阶采样器。它首先使用线性近似做出一个预测,然后通过非线性近似进行校正。这种方法在提高精确度的同时也确保了更高的图像质量。

Heun方法的精确度得到了提升,但这种改进也带来了一个小代价:处理时间大约是Euler方法的两倍。虽然处理时间增加了,但相对于其提供的更高的图像质量和更精确的结果,这种额外的计算成本通常是可以接受的。

Heun方法通过在每个处理步骤中执行预测和校正两个步骤来提高精确度,从而确保了更高的图像质量。虽然处理时间比Euler方法长,但对于那些需要更高精度的应用场景,Heun方法提供了一个更为可靠的选择。

在10个步骤中仍然可能存在一些噪点,但随着步数的增加,这些噪点会逐渐消失。在30个步骤中,Heun方法提供了高质量的图像,尽管在50个步骤中会提供更多细节层次。然而,在100个步骤中,图像几乎不会改变,因此等待结果可能不值得。

LMS

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

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

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

DPM 模型家族

DPM(Diffusion Probability Model)是一种概率模型,它在DDPM的基础上做了一系列改进。DPM2可以被看作是DPM的升级版,它在原有模型的基础上进行了进一步的改良和优化。使用10个步骤,就可以得到令人印象深刻的图像质量(不要尝试5个步骤,结果可能不尽如人意)。大约30到50个步骤是理想的。通常情况下,增加更多的步骤并不一定值得。

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

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

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

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

在这些模型中,求解器是一个关键组成部分,它在计算和近似采样的概率分布过程中起着至关重要的作用。DPM-Solver 是一种新技术,在每一步的采样过程中有效地减少了时间。

一些版本的 DPM,如 DPM fast 或 DPM++ 2S/DPM++ 2M,采用了更快速的求解器,因此在采样过程中节省了时间。它们可能会很快(虽然不是非常快),但当使用少量步骤时,它们可能无法提供令人满意的结果。有趣的是,它们提供了与其他采样器不同的结果,并且在电影效果方面更加明显。

在 DPM++ 2S/DPM++ 2M 中,“2”表示它们是二阶模型,结合了预测器和校正器两种机制,以更精确地逼近最终结果。在这两种模式下,DPM++ 2S 和 DPM++ 2M 的求解器比标准 DPM 模型求解器运行得更快。

UniPC 是一个由统一预测器(UniP)和统一校正器(UniC)组成的求解器。它的目标是在尽可能少的步骤中达到最高的采样质量。UniPC 可以与任何 DPM 模型集成,甚至在几个步骤内生成高质量的图像。

因此,无论是单步骤还是多步骤的 DPM 模型,UniPC 都能够与之媲美,并在效率上提供更优秀的结果。 UniC 校正器也可以与这些采样算法集成,进一步提高采样效率。

在一些例子中,10步是不足以生成没有噪点的图像的,但在15或20步之后可能会得到。在30步时,图像质量非常出色,不再需要继续增加步骤,尽管仍然存在改进的空间。

更准确的DPM模型(自适应)

DPM自适应模型是对标准DPM模型的一种扩展,其主要特点是能够根据问题的难度自动调整处理步骤的大小。

具体而言,这意味着算法会自动调整采样步骤的数量,直到达到最优的收敛效果,而不是依赖于预设的步骤数量。这种方法可以生成更高质量的图像,但可能需要相对较长的时间来完成(它是所有采样器中速度最慢的一个)。

在这种情况下,与其他采样器相比,所需时间可能是其三倍或四倍,但最终的结果却是令人惊叹的。图像构图与所有其他采样器都不同,并且更像是DPM fast。

采样器选择与总结

初始采样器的变体

当一个采样器包含字母“A”,通常表示该采样器属于“祖先”变体类别。这类变体的特点是,在每个新的处理步骤中,它们会添加之前步骤中产生的随机变量。可以想象成,在每个步骤清除噪声之后,又会有一部分先前的噪声被重新引入。

由于每一步都会增加新的随机噪声,带有这一特性的采样器永远不会达到收敛状态。如果总有新噪声需要处理,就总能继续进行下一步。

这使得这些采样器具有更高的创造性。增加额外的处理步骤并不一定会提高图像质量,而是可能产生另一种类似的结果。

如果你在尝试复现使用Stable Diffusion生成的图像时失败了,即使你使用了相同的种子和参数,那可能是因为使用了一个祖先采样器。这是正常现象!因为每一步重新加入的噪声都是随机的,不同的实现或采样器版本几乎肯定会产生不同的结果。

Karras 变体

含有“Karras”(或简写为“K”)字样的变体,是指由 Nvidia 工程师 Tero Karras 所领导的一系列工作。这项工作为某些采样器带来了重要的改进,旨在提高输出质量和采样过程中计算效率。

采用了这些改进的采样器包括:LMS Karras、DPM2 Karras、DPM2 A Karras、DPM++ 2S A Karras、DPM++ 2M Karras 和 DPM++ SDE Karras 等。这些采样器利用了 Karras 的创新技术,以提升其整体性能和效率。
像DPM++ 2M一样,这个采样器在30到50步之间提供非常好的结果,但是Karras版本具有在较少的步骤中提供更好结果的优势。

Stochastic 变体

SDE(随机微分方程)变体采用了随机微分方程。简而言之,这类微分方程的使用使得噪声的建模方式更为复杂和精确,它能够利用之前步骤中的信息。原则上,这种方法能够生成更高质量的图像,但相应的代价是处理速度较慢。由于采用了随机方法,SDE 变体永远不会达到收敛状态。因此,增加处理步骤的数量并不会提高图像质量,而是会产生更多样化的结果,这一点类似于祖先采样器。

截至本文发表时,我们已经有了几种 SDE 变体,包括 DPM++ SDE、DPM++ 2M SDE、DPM++ SDE Karras 和 DPM++ 2M SDE Karras。

图像质量

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

如果不关注生成时间,可以尝试DPM自适应或UniPC。使用上述提到的采样器,可以在20-30步内获得良好的结果,尽管尝试更多步骤也无妨。

生成速度

如果只是测试tag,并且不想花太多时间等待结果:

  1. DPM++ 2M 或 UniPC:这两种采样器适用于快速测试变化。使用10-15步,就能得到非常体面的图像。

  2. Euler A:如果不介意结果的可重复性,并且只是想快速测试变化,Euler A是一个快速且质量不错的祖先采样器。这可能是你的最佳选择!

创造力和灵活性

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

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

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

总结

  1. Ancestral (带A的采样器):

    • 特点:较为古老,采样随机性高,但无法有效去除噪点。
    • 缺点:关键词识别可能不如其他采样器准确。
  2. Karas:

    • 特点:去噪速度比默认方式快。
    • 优势:能够有效去除噪点。
  3. DM和PMS:

    • 特点:早期采样方式,后续采样器吸收了它们的优点并改进了缺点。
  4. T2MS:

    • 特点:LMS的升级版,渲染速度更快,更清晰。
  5. DPMDM++s de:

    • 特点:应用广泛,尤其适用于人物渲染。
    • DPM2在关键词识别方面较为准确,但渲染速度较慢。

评价采样器的优劣可以从两个方面考虑:步数和渲染质量。步数越少、图像越清晰则说明采样器效果越好。

例如,对于 d PM fast,它的渲染速度非常快,但需要较多的步数才能呈现出清晰的图像。另一方面,d PM adaptive 则非常强大,仅需少量步数就能渲染出清晰的图像,并且在40步时与之后步数的差异不大。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

知来者逆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值