StableDiffusion 采样算法和调度器如何选择?
> 注意:本文列举内容为多数情况下的使用建议,有些模型会有特殊的情况,请根据自己的模型做调整! ##
渲染中...
> 注意:本文列举内容为多数情况下的使用建议,有些模型会有特殊的情况,请根据自己的模型做调整! ## 常用采样算法 ### Eular 算法 - `Eular a`: 有 `a` 的代表祖先采样器,属于不收敛算法,采样步数会带来很多随即变化,可能有意想不到的效果; - `Eular`: 收敛算法,步数越高变化越小,一般用于稳定出图。 <!-- more --> ### DPM 算法 - `DPM++ 2M`: 最推荐的算法,收敛性好,速度快,质量尚可。 - `DPM++ SDE`: 随机微分方程算法,不收敛,但生成高品质图像,速度慢。 - `DPM++ 2M SDE`: `2M` 和 `SDE` 的折中算法,不收敛,速度有所提升。 - `DPM++ 3M SDE`: 速度和 `2M` 算法相似,但需要更多采样步数,建议调低 `CFG` 值,采样步数大于 `30` 步效果更佳。 ## 调度器 - `Automatic` (自动): 通常是默认选项,软件会根据情况自动选择合适的调度器,适合不熟悉调度器或希望快速尝试的用户。 - `Uniform` (均匀): 最简单的调度器,每一步都以相同的步长进行采样,效果中规中矩,适合对速度和质量没有特别要求的场景。 - `Karras`: 一种自适应步长调度器,在保证图像质量的同时,可以加快采样速度,是比较受欢迎和常用的调度器之一,适合追求速度和质量平衡的用户。 - `Exponential` (指数): 步长随采样进程指数增长的调度器,细节较少,画面偏柔和,适合生成风格化或卡通化的图像。 - `Polyexponential` (多项式指数): 步长变化更复杂的指数型调度器,可能在某些特定模型或参数下有更好的表现,但相对较少使用。 - `SGM Uniform` (SGM 均匀): 基于 Stochastic Gradient Langevin Dynamics (SGLD) 的调度器,在均匀步长的基础上进行改进,可能在某些情况下提供更好的质量。 - `KL Optimal` (KL 最佳): 据称质量较好且收敛较快的调度器,适合对图像质量有较高要求的用户。 - `Align Your Steps` (对齐步数): 专为低步数采样设计的调度器,在步数较少时能获得比其他调度器更好的效果,适合快速生成预览图或对速度有较高要求的场景。 - `Simple` (简单): 画面细节较少,风格偏唯美,适合生成二次元风格的图像或对细节要求不高的场景。 - `Normal` (普通): 比较均衡的调度器,细节比 Simple 丰富一些,适合对画面细节有一定要求的用户。 - `DDIM` (去噪扩散隐式模型): 一种相对均衡的调度器,没有明显的特点,效果中规中矩,可以作为尝试其他调度器之前的基准。 - `Beta`: 低步数采样效果不佳,需要较高采样步数才能发挥效果的调度器,适合对质量有较高要求且不赶时间的用户。 ### 总结 - 追求速度和质量平衡: `Karras` - 低步数快速生成: `Align Your Steps` - 二次元或唯美风格: `Simple` - 高质量图像: `KL Optimal`, `Beta` (高步数) - 均衡效果: `Normal`, `DDIM`, `Uniform` - 柔和风格: `Exponential` - 不确定如何选择: `Automatic` (默认) --- > 下面为一些额外信息记录,可以阅读了解更多信息,不阅读也不影响。 ## 2024新采样和调度器 ### 1个采样器 - `DDIM CFG++`: 更加可控,在 `CFG` 过大情况下,异常点较少; ### 6个调度器 - `KL Optimal`: 被认为比 Karras、Uniform 等调度器质量更好,并且收敛更快。 - `Align Your Steps`: 专为低步数快速生成图像而用,少于 10 步时,效果比 `Karras`、`Exponential` 效果好。 - `Simple单一值`: 画面细节减少,更唯美,不容易出错,适合二次元风格。 - `Normal`: 比较均衡的调度器,比 Simple 多一些细节。 - `DDIM`: 相对均衡的调度器,不极端,没有太大的特色。 - `Beta`: 低采样步数下效果不好,需要采样步数大于 20 步效果更好。 ## 其他小知识 1. 算法名称中带有 `Henu` 的,可以认为是 `Eular` 的升级版,出图效果会更好,但是时间会慢非常多(大概一倍),所以不常用。 2. `DDIM`、`PLMS`、`LMS` 均为第一代采样器,效果较差,因此几乎不用; 3. 同名算法时,`M` 算法一般是 `S` 算法的升级版,比如 `DPM++ 2M Karras` 是 `DPM++ 2S Karras` 的升级版,因此一般有 `M` 用 `M`, `S` 不常用;
END
评论
登录后查看和发表评论
前往登录