对比

First, you have to understand what samplers are. These are discretized differential equations. I'm not going to go into these at all in this post, but I've covered them before.
首先,你必须了解什么是采样器。这些是离散的微分方程。我不打算在这篇文章中讨论这些问题,但是我以前已经讨论过了。
DDIM and PLMS were the original samplers. They were part of Latent Diffusion's repository. They stand for the papers that introduced them, Denoising Diffusion Implicit Models and Pseudo Numerical Methods for Diffusion Models on Manifolds.
DDIM 和 PLMS 是最初的采样者。它们是潜在扩散资料库的一部分。它们代表了介绍它们的论文: 流形上扩散模型的去噪隐式模型和伪数值方法。
Almost all other samplers come from work done by @RiversHaveWings or Katherine Crowson, which is mostly contained in her work at this repository. She is listed as the principal researcher at Stability AI. Her notes for those samplers are as follows:
几乎所有其他的采样器都来自@RiversHaveWings 或 Katherine Crowson 的工作,这些工作大部分包含在她在这个仓库的工作中。她是稳定人工智能的首席研究员。她对这些采样者的说明如下:
  • Euler - Implements Algorithm 2 (Euler steps) from Karras et al. (2022)
    • Euler-实现 Karras 等人的算法2(Euler 步骤)(2022)
  • Euler_a - Ancestral sampling with Euler method steps.
    • Euler _ a-使用 Euler 方法步骤的祖先样本。
  • LMS - No information, but can be inferred that the name comes from linear multistep coefficients
    • LMS-没有信息,但可以推断名称来自线性多步系数
  • Heun - Implements Algorithm 2 (Heun steps) from Karras et al. (2022).
    • Heun-实现算法2(Heun 步骤) ,来自 Karras 等人(2022)。
  • DPM2 - A sampler inspired by DPM-Solver-2 and Algorithm 2 from Karras et al. (2022).
    • DPM2-一个受 DPM-Solver-2和 Karras 等人的算法2启发的采样器(2022)。
  • DPM2 a - Ancestral sampling with DPM-Solver second-order steps
    • DPM2a-DPM-Solver 二阶步祖先采样法
  • DPM++ 2s a - Ancestral sampling with DPM-Solver++(2S) second-order steps
    • 使用 DPM-Solver + + (2S)二阶步骤的 DPM + + 2S a-祖先采样
  • DPM++ 2M - DPM-Solver++(2M)
    • DPM + + 2M-DPM-Solver + + (2M)
  • DPM++ SDE - DPM-Solver++ (stochastic)
    • DPM + + SDE-DPM-Solver + + (随机)
  • DPM adaptive - DPM-Solver-12 and 23 (adaptive step size). See https://arxiv.org/abs/2206.00927
    • DPM 自适应-DPM-Solver-12和23(自适应步长)参见 https://arxiv.org/abs/2206.00927
The 'Karras' versions of these weren't made by Karras as far as I can tell, but instead are using a variance-exploding scheduler from the Karras paper, which of course is extra confusing given that most of the other samplers were inspired by that paper in the first place.
据我所知,“ Karras”版本并不是由 Karras 制作的,而是使用了 Karras 论文中的一个方差爆炸式调度程序,这当然更加令人困惑,因为大多数其他的采样程序都是受到了这篇论文的启发。
In terms of "what will I get at high step counts", most of the time you will get similar pictures from:
关于“我在高台阶上会得到什么”,大多数时候你会得到类似的图片来自:
  • Group A: Euler_a, DPM2 a, DPM++ 2S a, DPM fast (after many steps), DPM adaptive, DPM2 a Karras
    • 组 A: Euler _ a,DPM2a,DPM + + 2S a,DPM 快速(经过多个步骤) ,DPM 自适应,DPM2a Karras
  • Group B: Euler, LMS, Heun, DPM2, DPM++ 2M, DDIM, PLMS
    • B 组: Euler,LMS,Heun,DPM2,DPM + + 2M,DDIM,PLMS
  • Group C: LMS Karras, DPM2 Karras, DPM++ 2M Karras
    • C 组: LMS Karras,DPM2 Karras,DPM + + 2M Karras
As far as convergence behavior:
至于收敛行为:
  • Does not converge: Euler_a, DPM2 a, DPM Fast, DDIM, PLMS, DPM adaptive, DPM2 a Karras
    • 不会收敛: Euler _ a,DPM2a,DPM Fast,DDIM,PLMS,DPM 自适应,DPM2a Karras
  • Converges: Euler, LMS, Heun, DPM2, DPM++ 2M, LMS Karras, DPM2 Karras, DPM++ 2M Karras
    • 收敛点: 欧拉,LMS,Heun,DPM2,DPM + + 2M,LMS Karras,DPM2 Karras,DPM + + 2M Karras
By required steps:
按规定步骤:
  • Euler_a = Euler = DPM++2M = LMS Karras (image degraded at high steps) >
    • Euler _ a = Euler = DPM + + 2M = LMS Karras (高阶图像降级) >
  • LMS = DPM++ 2M Karras = Heun (slower) = DPM++ 2S a (slower) = DPM++ 2S a Karras >
    • LMS = DPM + + 2M Karras = Heun (慢) = DPM + + 2S a (慢) = DPM + + 2S a Karras >
  • DDIM = PLMS = DPM2 (slower) = DPM 2 Karras>
    • DDIM = PLMS = DPM2(慢速) = DPM2 Karras >
  • DPM Fast = DPM2 a (slower)
    • DPMFast = DPM2a (慢速)
These all give somewhat different results so a person could prefer the output of any of the models at a given CFG or step range. I do think that there is an argument to be made that DPM++ 2M and Euler_a are good generic samplers for most people, however, as they both resolve to a good picture at low seeds (sub-20) without a hit to iteration speed. DPM++ 2M has the advantage of converging to a single image more often (if you choose to run the same image at higher seed), but is slightly more prone to deformations at high CFG.
这些都给出了一些不同的结果,因此一个人可以更喜欢在给定的 CFG 或步长范围内的任何模型的输出。我确实认为 DPM + + 2M 和 Euler _ a 对于大多数人来说是很好的通用采样器,但是,因为它们都决心在低种子(低于20)的情况下获得一个好的图片,而不影响迭代速度。DPM + + 2M 的优点是更经常地收敛到单个映像(如果您选择在更高的种子上运行相同的映像) ,但是在高 CFG 时稍微更容易发生变形。
To combine all the above:
综合以上所有:
  • Fast, new, converges: DPM++ 2M, DPM++ 2M Karras
    • 快速,新,收敛: DPM + + 2M,DPM + + 2M Karras
  • Fast, doesn't converge: Euler_a, DPM2 a Karras
    • 快,不收敛: Euler _ a,DPM2 a Karras
  • Others worth considering: DPM2 a, LMS, DPM++ 2S a Karras
    • 其他值得考虑的: DPM2a,LMS,DPM + + 2S a Karras
  • Bugged: LMS Karras (at high steps
    • 昆虫: LMS Karras (在高台阶
  • Older, fast but maybe lower quality final result: Euler, LMS, Heun
    • 老,快,但可能质量较低的最终结果: 欧拉,LMS,Heun
  • Slow: DDIM, PLMS, DPM2, DPM 2 Karras, DPM Fast, DPM2 a
    • 慢: DDIM,PLMS,DPM2,DPM2 Karras,DPM Fast,DPM2 a
Loading...
目录
文章列表
王小扬博客
产品
Think
Git
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP