Stable Diffusion 笔记三 采样&放大

1,293 阅读14分钟

在webui中,新手最头疼的莫过于对各种眼花缭乱的选择,采样器的选择,步数的选择,放大算法的选择,每种选择究竟会出现怎样的效果?如何才能选出最快最好的组合?详细了解各种算法背后的差异后,便可以轻松的做出选择。

采样与调度(Sampler & scheduler)

采样器(Sampler)

Stable Diffusion模型通过一种称为“去噪”的过程来生成图像,这个过程涉及到在潜在空间中逐步从随机噪声中提取出有意义的图像特征。

  • 模型首先在潜在空间中生成一个完全随机的噪声图像。这个图像是随机的,不包含任何有意义的信息。
  • 噪声预测器(也称为去噪函数)估计这个随机图像中的噪声。这个预测器是模型的一部分,它学习如何从噪声中恢复出清晰的图像。
  • 模型从初始的随机噪声图像中减去预测的噪声,以便逐步揭示出隐藏在噪声下的图像内容。
  • 这个过程会重复多次(通常是十几次),每一步都会生成一个新的采样图像。这些采样图像逐渐从随机噪声转变为越来越清晰的图像。
  • 经过多次迭代后,最终得到的图像是一个干净的、去噪后的图像,它反映了文本提示中描述的内容

调度器 (scheduler)

调度器通常与采样器的概念紧密相关,它负责控制采样过程中每一步的噪声水平,也就是所谓的噪声表(Noise Schedule)。调度器决定了在生成图像的每一步中减少多少噪声,从而影响采样过程的速度和最终图像的清晰度。在某些文献中,调度器和采样器这两个术语有时被交替使用,因为它们都涉及到控制生成过程中的噪声减少。

噪声表 (Noise scheduler)

噪声表是一个预先定义的计划,它决定了在每一步采样过程中应用的噪声水平。

  • 在去噪过程的第一步,图像充满了高噪声,这是因为初始图像是完全随机的噪声图像。在这个阶段,噪声水平最高,图像看起来是不连贯和随机的。
  • 随着去噪过程的进行,噪声表会逐步降低每个采样步骤中的噪声水平。这种降低是按照预定的计划进行的,旨在逐渐从噪声中提取出有意义的图像特征。
  • 在去噪过程的最后一步,噪声水平降低到零,此时图像应该是清晰且与文本提示相匹配的。理想情况下,最终图像应该几乎没有噪声,且细节丰富,准确地反映了文本描述的内容。

就算是概念解释部分,这两个词也的确很难分开,或者可以简单的理解为:采样器是图像生成过程中的降噪算法,而调度器则控制这个过程中每一步的噪声水平%2C两者共同作用,决定了生成图像的质量和所需时间。当然了,这两者本来就是搭配使用的,所以强行分开解释貌似也意义不大。

采样器

不同的采样器

SD的原始采样器

DDIM(Denoising Diffusion Implicit Models) 和 PLMS(Pseudo Numerical Methods for Diffusion Models on Manifolds) 是sd的原始采样器。

  • DDIM 是SD的资格最老的原始采样方式,它甚至和PLMS构成了SD源头的一部分。它适合宽幅画面,也是在采样步数较高的设置下出图表现较好,因此速度偏低,环境光线与水汽效果好,写实质感不佳。在负面提示词不充分情况下,往往发挥很随意
  • PLMS 也是SD的老资格原始采样方式,单次出图质量仅次于Heun

老式ODE solvers

这些采样器算法已经被发明很久很久了。它们是常微分方程 (ODE) 的老式采样器。

  • Euler 最简单的采样器。适合插画类图像,画面整体较柔和,环境细节与渲染好,背景则模糊较深远
  • Heun 更准确但更慢的 Euler 版本。出图平均质量比Euler和Euler a高,在采样步数较高的设置下出图表现较好,因而出图速度较慢;
  • LMS(线性多步法) 与 Euler 的速度相同,但(据说)更准确。饱和度与对比度偏低,比较适合动画的风格;

Ancestral采样器

Ancestral采样器在每个采样步骤中都会向图像添加噪声。它们是随机采样器,因为采样结果具有一定的随机性。使用Ancestral采样器的缺点是图像不会收敛。也就是说你有可能不会得到相同的结果。所以为了可重复性,那就用收敛采样器。如果要生成细微的变化,那么可以考虑使用随机采样器。

除了祖先采样器,DDIM 和带 SDE 标识的采样器也会在采样时增加随机噪声,比如 DPM++ SDE、DPM++ 2M SDE等。SDE是随机微分方程的意思,英文全称:stochastic differential equations。

因为会在采样时增加随机噪声,使用这些采样器时,即使相同的参数和随机数也有可能生成不同的图片。

  • Euler a 比较通用的采样方法,但会偏向于适合插画类图像,环境光效质感较弱,对于Prompt提示词的利用率仅次于DPM2和DPM2 a,有时会产生异想天开的构图效果; DPM2 a** 几乎与DPM2相同,对人物特写有一定帮助;
  • DPM2 a 几乎与DPM2相同,对人物特写有一定帮助;
  • DPM++ 2S a

DPM系列

DPM(扩散概率模型求解器)和 DPM++  是专为 2022 年发布的扩散模型设计的新采样器。它们表示具有类似体系结构的求解器系列。DPM 和 DPM2 相似,但 DPM2 是二阶的(更准确但更慢)。DPM++ 是对 DPM 的改进。

  • DPM2 该采样方法对Prompt提示词的利用率可达80%以上,所以,如果你是Prompt比较熟练,期望用Prompt控制画面上的更多细节,可以多采用这个方法;但出图速度慢一倍,
  • DPM fast 是早期开发者的一种测试方法,不适合设计师出图;
  • DPM++ 2M 和Euler a 一样,比较通用,在低采样步数(低于 20)时就可以产生优质的画面
  • DMP++ SDE 基本是脱离提示词的状态,但用于生成人物特写似乎特别高效,采样5次即可生成较好的人物画面。
  • DPM++ 2M SDE、DPM++ 2M SDE Heun、DPM++ 3M SDE、DPM adaptive 各种改进版本,DPM adaptive 会自适应地调整步数。它可能会比较慢,因为不能保证在采样步数内结束, 采样时间不定。

其他新采样器 UniPC、Restart、LCM

  • UniPC(统一预测器-校正器)是2023年发布的新采样器。它受ODE求解器中的预测器-校正器方法的启发,可以在5-10步内实现高质量的图像生成。
  • Restart采样器可能使用了一种特殊的重新启动机制,用于提高生成过程的稳定性和收敛性
  • LCM 清华大学交叉信息研究院推出了新一代的模型 LCM 模型,全名:Latent Consistency Models,理论上可以把出图速度最高提高 10 倍,需要lora模型和采样器搭配使用,在webUI需要在高清修复步骤让lcm介入即可实现几乎不损失画质也能节约大量时间

总结

  • Euler A 是兼顾速度和质量的最优之选;

  • DPM2 A 在合理分配步数的情况下也能产生高质量作品;

  • DDIM 和 Euler 则在运气较好的情况下尤其以细腻的画风见长;

  • DPM Solver 系列算法可以相对低步数即达到同等甚至更高出图质量的新型高阶算法;

  • 当你审美疲劳时,更换采样方法也许可以带来耳目一新的感觉。但不推荐 LMS、DPM fast、LMS Karras和 PLMS 这四个,它们的生成质量在大多数情况下相较于其它算法而言不佳;

  • DPM A 和 Euler A 都是非线性迭代方法,并不会因为迭代步数增加而使得生成图像无休止地变得更优秀,在大于一定的迭代步数之后反而质量会快速下滑;

  • DDIM 和 Euler 等线性迭代方法则恰恰相反,质量往往依托于迭代的次数。但也存在边际效应的问题,当迭代步数过大时,再增加迭代次数也不会让画面产生显著变化;

  • 实际使用时需要根据画布大小和目标是否复杂来综合考虑。在512 * 512 的小尺寸标准化且无强烈细节要求的简单画面中,使用 Euler A / DDIM 等推荐迭代步数载 30 到 40 之间,而使用 DPM2 A 等需要高步数的算法时则推荐迭代步数翻倍。而使用 DPM Solver 系列则推荐 20 到 30 。

如果你想使用快速、融合、新颖且质量不错的东西,那么最好的选择是:DPM++ 2M Karras,20 – 30 个步骤UniPC 有 20-30 个步骤。

如果想要高质量的图像并且不关心收敛,那么不错的选择是:DPM++ SDE Karras 具有 10-15 个步骤(注意:这是一个较慢的采样器)DDIM 10-15 个步骤。

如果喜欢稳定、可重复的图像,请避免使用任何祖先采样器。如果您喜欢简单的东西,Euler 和 Heun 是不错的选择。减少 Heun 的步骤以节省时间

调度器(Scheduler):

  • Karras 以曲线的方式慢慢加速来优化减少噪声,用的最多的相对科学的算法
  • Exponential 指数曲线,比Karras极端,有背景虚化效果
  • Polyexponential Exponential的基础上额外增加了多项式函数来控制噪声的减少,细节稍有加强
  • Uniform 每步采样都用统一的方式均匀的减少噪声,适合快速的模型
  • SGM Uniform 在Uniform的基础增加了对SDXL ligthing模型的 支持

高清修复

由于目前stable diffusion V1-V1.5版本均是在 512 * 512 的原始训练素材基础上训练的,所以在用AI生图时,最好设置要生成的图片尺寸为 512 * 512 或 512 * 768 。但是,这样的图片分辨率对于专业设计师来说远远不够,我们有时需要1024以上的大图,此时就需要对图像进行二次生成式放大了。不是简单放大,而是通过神经网络对图像在更高尺寸上再生成。此时,高清修复便是经常用到的一个功能了,但勾选它会耗费额外的GPU计算资源和时间。另外放大后的图与原图细节会有略微不同。

Upscaler 放大算法(16种) Latent 潜变量、Latent (antialiased) 潜变量(抗锯齿)、Latent (bicubic) 潜变量(双三次插值) 、Latent (bicubic antialiased) 潜变量(双三次插值并抗锯齿)、Latent (nearest) 潜在(最邻近)、 Latent (nearest-exact) 潜在(最邻近-整数)、Lanczos 、Nearest 最邻近(整数缩放)、4x-UltraSharp、 ESRGAN_4 x、LDSR、 R-ESRGAN 4 x+、R-ESRGAN 4 x+ Anime6B 、ScuNET、ScuNET PSNR、SwinlR 4 x SwinlR_4 x。

种放大算法各有各的特点,在结合重绘幅度的情况下会对原图有一定的变形,尤其是脸部。如果要保持细微处不变建议使用Extras(后期处理)中的放大算法来放大图片,这样可以进行精准控制。但如果是第一次生成图片,则需要在此处进行。我们将在下面对比这16种放大算法。

目前Upscaler (放大算法 )的下拉菜单中,总共默认安装有16种放大算法,每一种放大算法都有各自适合的图像类型,有的对二次元类图片效果好,有的对真实场景真人照片类放大效果好。这些放大算法与tex2img(文生图)中Hires. fix(高清修复)所附带的放大算法中除了前6个Latent潜变量算法以外,后面12个都是一致的:

  • Latent: Latent系列采样方法,是一种基于 VAE 模型的图像增强算法,通过将原始图像编码成变量,并对其进行随机采样和重构,从而增强图像的质量、对比度和清晰度。

  • Lanczos:用于超分图像的传统算法。它根据每个像素点周围像素的远近关系不同赋予不同的权重,近的权重高,远的权重低,然后在放大的图像上进行补间。放大后的图像仍旧模糊 。

  • Nearest:是一种基于图像插值的算法,与Lanczos同属于传统算法,放大后图像仍旧模糊。

  • BSRGAN:比Nearest略好。

  • ESRGAN_4x (Real ESRGAN) :Enhanced Super-Resolution Generative Adversarial Networks (增强型超分生成对抗网络)的缩写,4x是适合放大4倍的意思,属于人工智能类型的算法。实测确实增加了很多看上去很真实的纹理,但是有时又会把一张图片弄得全是锯齿或怪异的纹理。适合真实照片质感图像,较符合人体皮肤的质感,面部轮廓,对毛孔处理较细致。不适合放大AI生成的图像,不具备去噪点功能。

  • R-ESRGAN 4x+:R是Real-Time的意思,+代表可放大4倍以上,可对图像去模糊降噪,有涂抹感,导致有偏硬的色块感。不适合放大AI生成的图像。

  • R-ESRGAN 4x+ Anime6B:Anime是二次元的意思,6B指的是在60亿参数的动漫数据集上训练的结果,其中包含了大量不同风格、不同质量的动漫图像。在动漫图像增强领域具有较高的准确性和效果,并且适用于不同类型的动漫图像处理。另外,Real-ESRGAN 系列是由腾讯 ARC 实验室研发的,值得鼓励!

  • 4x-UltraSharp:基于ESRGAN做了优化模型。UltraSharp顾名思义,会让图片变得平滑、锐利,适合修复表面纹理有问题的图片,很适合匹配真人质感模型使用。

  • LDSR:Latent Diffusion Super Resolution(潜在扩散超分辨率模型)的缩写。是耗时最长的,但同时也是效果最好的,尤其是对照片来说最好。

  • ScuNET:在Lanczos基础之上具备去噪点的功能,对人体肌肤有一定磨皮效果,如果你单纯只是想去噪点的话,用这个算法很适合。

  • ScuNET PSNR:与SCuNET相比,在真人质感领域几乎没有区别,适合动漫。

  • SwinIR_4x:使用了Swin Transformer的思想,属于对抗网络的新型算法,适合绘画类图片的放大,输出区域不稳定,有些区域模糊,有些区域又能放大细节。不适合放大AI生成的图像。

  • DATx2x3x4:针对写实图像处理,特别是皮肤纹理和毛发细节的保留,后期处理中零形变放大,文生图一次到位,不适合用于图生图重绘,可能导致变形和质感损失

  • 照片写实类推荐:4x-UltraShar、LDSR

  • 二次元推荐: R-ESRGAN 4x+ Anime6B、ScuNET PSNR

  • 绘画类:R-ESRGAN 4x、 SwinIR_4x

参考:www.zhihu.com/people/new4… zhuanlan.zhihu.com/p/689911168 zhuanlan.zhihu.com/p/668255424 juejin.cn/post/737616…