Stable Diffusion 采样器

·19 分钟阅读·3692··作者:冬眠

在使用 Stable Diffusion 生成图像时,采样器(Sampler)是一个关键参数,它决定了模型如何从纯噪声逐步生成最终图像。不同的采样器会产生不同的图像风格、细节表现、图像质量和生成速度。本文将深入解析各类采样器的工作原理和适用场景,帮助你做出最佳选择。

什么是采样器

扩散模型的基本原理

要理解采样器,首先需要了解 Stable Diffusion 的工作原理。扩散模型的核心思想包含两个过程:

前向扩散过程(训练阶段): 将一张清晰的图像逐步添加高斯噪声,直到变成完全的随机噪声。这个过程是确定性的,噪声按照预定的时间表(noise schedule)逐步增加。

逆向扩散过程(生成阶段): 从纯噪声开始,模型学习如何逐步去除噪声,最终还原出清晰的图像。这个过程就是我们所说的"采样"。

%%{init: {'theme': 'base', 'themeVariables': {'fontSize': '12px'}}}%%
graph LR
    %% --- 节点定义 ---
    Noise((纯噪声<br/>Pure Noise))
    
    Step1[步骤 1: 去噪<br/>Denoise]
    Step2[步骤 2: 去噪<br/>Denoise]
    
    Ellipsis[ ... ]
    
    StepN[步骤 N: 去噪<br/>Denoise]
    Final((最终图像<br/>Final Image))

    %% --- 连接关系 ---
    Noise ==> Step1
    Step1 --> Step2
    Step2 -.- Ellipsis
    Ellipsis -.- StepN
    StepN ==> Final

    %% --- 样式定义 ---
    
    %% 1. 噪声阶段:鲜艳的红色,白色文字
    classDef noise fill:#ff1744,stroke:#b71c1c,stroke-width:2px,color:#fff,font-size:12px
    
    %% 2. 早期去噪:深邃的电光紫,白色文字
    classDef early fill:#651fff,stroke:#311b92,stroke-width:2px,color:#fff,font-size:12px
    
    %% 3. 晚期去噪:明亮的青蓝色,深色文字
    classDef late fill:#00e5ff,stroke:#006064,stroke-width:2px,color:#000,font-size:12px
    
    %% 4. 最终结果:高亮的荧光绿,深色文字
    classDef final fill:#76ff03,stroke:#33691e,stroke-width:2px,color:#000,font-size:12px

    %% 虚线样式
    classDef phantom fill:none,stroke:none,color:#9e9e9e,font-size:12px

    %% --- 应用样式 ---
    class Noise noise
    class Step1,Step2 early
    class StepN late
    class Final final
    class Ellipsis phantom

采样器的作用

采样器本质上是一种数值求解器,用于求解描述逆向扩散过程的微分方程。不同的采样器使用不同的数学方法来近似这个求解过程,因此会产生不同的结果。

采样器的选择直接影响:

影响维度 说明
图像质量 细节丰富度、清晰度、伪影程度
生成速度 达到可接受质量所需的步数
风格特征 锐利度、柔和度、对比度等视觉风格
稳定性 相同参数下生成结果的一致性
收敛性 能否在有限步数内得到稳定结果

采样器分类

Stable Diffusion 中的采样器可以按照不同维度进行分类。

按数学原理分类

ODE 求解器(确定性采样器)

ODE(常微分方程)求解器将扩散过程建模为确定性的微分方程。给定相同的初始噪声和参数,总能得到完全相同的结果。

代表采样器: Euler(欧拉)、Heun、DPM2、DDIM、UniPC

特点: 生成结果可复现,适合需要稳定输出的场景。

SDE 求解器(随机性采样器)

SDE(随机微分方程)求解器在每一步都引入额外的随机噪声,使生成过程具有随机性。

代表采样器: Euler a(祖先版)、DPM2 a、DPM++ 2S a、DPM++ SDE

特点: 结果更多样化,可能产生更丰富的细节,但同一种子可能产生略有差异的结果

采样器名称中的 "a" 通常代表 "ancestral"(祖先采样),表示该采样器在采样过程中会添加额外噪声。

按发展阶段分类

经典采样器

这类采样器是最早应用于扩散模型的方法,计算原理相对简单。

采样器 全称 特点
Euler Euler Method 最基础的一阶方法,速度快但需要较多步数
Euler a Euler Ancestral Euler 的祖先采样版本,增加随机性
Heun Heun's Method 二阶方法,精度更高但每步计算量翻倍
LMS Linear Multi-Step 利用历史步骤信息,效率较高

DDIM/DDPM 系列

DDIM(Denoising Diffusion Implicit Models)和 DDPM(Denoising Diffusion Probabilistic Models)是扩散模型领域的里程碑工作。

采样器 特点
DDIM 确定性采样,支持跳步,速度快
DDPM 原始扩散模型采样方法,质量高但慢
PLMS DDIM 的改进版本,精度更高

DPM 系列

DPM(Diffusion Probabilistic Models)系列是近年来发展最快的采样器家族,在速度和质量上都有显著优势。

采样器 说明
DPM2 二阶 DPM 求解器
DPM2 a DPM2 的祖先采样版本
DPM++ 2M 多步二阶求解器,当前主流选择
DPM++ 2S a 单步二阶求解器,带祖先采样
DPM++ SDE 随机微分方程版本,细节更丰富
DPM++ 2M SDE 结合多步和 SDE 的优点

UniPC

UniPC(Unified Predictor-Corrector)是一种统一的预测-校正框架,结合了多种采样策略的优点。

特点: 收敛速度快,10-15 步即可获得高质量结果,是目前效率最高的采样器之一。

LCM

LCM 潜在一致性模型(Latent Consistency Models)采样器,由清华大学交叉信息研究院研发,它专为解决传统扩散模型采样步数多、生成速度慢的问题而生,仅需几步就能生成高质量图像。

LCM 借鉴一致性模型的一步推理理念,区别于传统扩散模型需多步迭代去噪,一致性模型的核心思路是追求 “一步完成推理”,大幅减少迭代次数。LCM 在此基础上引入潜空间,把高维图像数据压缩成低维潜在向量,进一步降低计算量,让快速采样成为可能。

特点:

  • 收敛速度快,10-15 步即可获得高质量结果
  • 细节表现优秀
  • 结果稳定可复现

适用场景: 高质量图像生成、专业出图、需要细节的场景。

推荐步数: 10-15 步

主流采样器

Euler 系列

Euler

Euler 是最简单的采样器,使用一阶欧拉方法求解微分方程。

优点:

  • 计算速度最快
  • 代码实现简单,易于理解
  • 兼容性最好

缺点:

  • 需要较多步数(通常 30-50 步)
  • 低步数时细节不足

适用场景: 快速预览、参数调试、对速度要求高的批量生成。

推荐步数: 30-50 步

Euler a

Euler 的祖先采样版本,在每一步都添加少量噪声。

优点:

  • 生成结果更具多样性
  • 某些风格下细节更丰富
  • 可能产生意外的创意效果

缺点:

  • 结果不完全可复现
  • 步数过高时可能过度添加噪声
  • 不适合需要精确控制的场景

适用场景: 艺术创作、探索性生成、追求独特风格。

推荐步数: 20-30 步(步数过高反而可能降低质量)

DPM++ 系列

DPM++ 系列是目前最受推荐的采样器家族,在速度和质量之间取得了极佳的平衡。

DPM++ 2M

当前社区最主流的采样器选择,"2M" 表示二阶多步(2nd order Multi-step)。

优点:

  • 收敛速度快,20 步左右即可获得高质量结果
  • 细节表现优秀
  • 结果稳定可复现
  • 适用范围广泛

缺点:

  • 某些特定风格下可能不如专门优化的采样器

适用场景: 日常创作、商业出图、大多数使用场景的首选。

推荐步数: 20-30 步

DPM++ 2M Karras

DPM++ 2M 配合 Karras 噪声调度的版本。Karras 调度在采样初期使用较大的噪声步长,后期逐渐减小,能够更好地处理细节。

优点:

  • 比标准版本细节更丰富
  • 收敛更平滑
  • 适合写实风格

缺点:

  • 对某些动漫风格可能过于锐利

适用场景: 写实摄影、人像、需要丰富细节的场景。

推荐步数: 20-30 步

DPM++ SDE

使用随机微分方程的 DPM++ 版本,在采样过程中引入随机性。

优点:

  • 细节极其丰富
  • 纹理表现出色
  • 适合生成复杂场景

缺点:

  • 速度较慢
  • 结果可能不稳定
  • 有时会产生过多细节

适用场景: 追求极致细节的创作、复杂场景、艺术风格。

推荐步数: 25-40 步

DPM++ 2M SDE Karras

结合了 DPM++ 2M、SDE 和 Karras 调度的优点,是追求最高质量时的选择。

优点:

  • 综合质量最高
  • 细节与稳定性平衡好

缺点:

  • 计算开销较大
  • 需要更多步数

适用场景: 最终出图、商业级作品、不赶时间的精细创作。

推荐步数: 30-50 步

DDIM

DDIM 是一种确定性的快速采样方法,通过跳过部分扩散步骤来加速生成。

优点:

  • 完全确定性,100% 可复现
  • 支持较大的跳步,速度快
  • 适合图像编辑和 img2img

缺点:

  • 细节可能不如 DPM++ 系列
  • 低步数时质量下降明显

适用场景: 需要严格复现的场景、图像编辑、ControlNet 配合使用。

推荐步数: 20-50 步

UniPC

UniPC 是近期发展的高效采样器,采用统一的预测-校正框架。

优点:

  • 收敛速度极快,10-15 步即可
  • 质量稳定
  • 计算效率高

缺点:

  • 某些风格下可能略显平淡
  • 社区资源相对较少

适用场景: 快速生成、实时应用、对速度有严格要求的场景。

推荐步数: 10-20 步

噪声调度器

除了采样器本身,噪声调度器(Scheduler)也会显著影响生成结果。常见的调度器包括:

标准调度(Uniform/Linear)

噪声等间距分布,是最基础的调度方式。

Karras

由 Karras 等人提出的噪声调度方案,在采样初期使用较大的噪声步长,后期逐渐减小。

特点:

  • 细节更丰富
  • 收敛更平滑
  • 适合大多数场景

推荐组合: DPM++ 2M Karras、DPM++ SDE Karras

Exponential

指数型噪声调度,噪声衰减呈指数形式。

特点:

  • 早期去噪更激进
  • 可能产生更强烈的对比度

SGM Uniform

Score-based Generative Models 使用的均匀调度。

特点:

  • 与某些模型架构更兼容
  • 稳定性好

采样器选择指南

按使用场景选择

场景 推荐采样器 推荐步数 理由
快速预览/调参 Euler 15-20 速度最快
日常创作 DPM++ 2M Karras 20-25 质量与速度平衡
写实摄影 DPM++ 2M SDE Karras 30-40 细节丰富
动漫插画 DPM++ 2M 或 Euler a 20-30 风格适配
艺术创作 DPM++ SDE Karras 30-50 细节与随机性
最终出图 DPM++ 2M SDE Karras 40-50 最高质量
实时生成 UniPC 或 LCM 8-15 极速收敛
图像编辑 DDIM 20-30 确定性强

按风格选择

风格 推荐采样器 说明
写实人像 DPM++ 2M SDE Karras 皮肤细节、光影表现最佳
动漫/二次元 Euler a 或 DPM++ 2M 线条清晰、色彩鲜艳
油画/艺术 DPM++ SDE 笔触质感、纹理丰富
概念艺术 DPM++ 2M Karras 整体感好、构图稳定
科幻/机械 DPM++ 2M SDE 金属质感、细节锐利
风景 DPM++ 2M Karras 层次分明、色彩自然

按硬件条件选择

显存 推荐采样器 说明
4GB Euler、UniPC 步数可以适当减少
6-8GB DPM++ 2M Karras 主流配置的最佳选择
12GB+ DPM++ 2M SDE Karras 可以使用较高步数

采样步数选择

采样步数(Steps)是另一个关键参数,它决定了模型执行多少次去噪迭代。

步数与质量的关系

%%{init: {'theme': 'base', 'themeVariables': {'fontSize': '12px'}}}%%
graph TD
    %% --- 核心节点 ---
    Root[采样步数设置<br/>Sampling Steps]

    %% 分支定义
    Low[步数 < 10]
    Mid[步数 15-30]
    High[步数 30-50]
    Over[步数 > 50]

    %% 结果描述
    ResultLow[图像模糊<br/>细节缺失<br/>结构不完整]
    ResultMid[质量与速度平衡<br/>适合大多数场景<br/>]
    ResultHigh[细节更丰富<br/>但收益递减]
    ResultOver[几乎无提升<br/>浪费计算资源]

    %% --- 连接关系 ---
    Root ==> Low & Mid & High & Over

    Low -.-> ResultLow
    Mid ==> ResultMid
    High --> ResultHigh
    Over -.-> ResultOver

    %% --- 样式定义 (高饱和度配色) ---
    
    %% 1. 红色警示 (不可用)
    classDef bad fill:#ff1744,stroke:#b71c1c,stroke-width:2px,color:#fff,font-size:12px
    
    %% 2. 绿色推荐 (最佳)
    classDef optimal fill:#00e676,stroke:#00c853,stroke-width:3px,color:#000,font-size:12px
    
    %% 3. 蓝色进阶 (可选)
    classDef good fill:#2979ff,stroke:#0d47a1,stroke-width:2px,color:#fff,font-size:12px
    
    %% 4. 橙色浪费 (不推荐)
    classDef waste fill:#ff9100,stroke:#e65100,stroke-width:2px,color:#000,font-size:12px

    %% 根节点样式
    classDef root fill:#263238,stroke:#fff,stroke-width:2px,color:#fff,font-size:12px

    %% --- 应用样式 ---
    class Root root
    class Low,ResultLow bad
    class Mid,ResultMid optimal
    class High,ResultHigh good
    class Over,ResultOver waste

不同采样器的推荐步数

采样器 最低有效步数 推荐步数 最高有效步数
Euler 20 30-50 100+
Euler a 15 20-30 40
DPM++ 2M 15 20-30 50
DPM++ 2M Karras 15 20-30 50
DPM++ SDE 20 30-40 60
UniPC 8 10-20 30
DDIM 15 20-50 100

注意: 对于祖先采样器(带 "a" 的),步数过高可能导致质量下降,因为会累积过多噪声。

CFG Scale 与采样器的配合

CFG Scale(Classifier-Free Guidance Scale)控制生成图像对提示词的遵循程度。不同采样器对 CFG Scale 的敏感度不同。

采样器类型 推荐 CFG 说明
确定性采样器 7-9 可以使用较高 CFG
祖先采样器 5-8 CFG 过高会放大噪声
SDE 采样器 6-8 中等 CFG 效果最佳

实用技巧

快速测试流程

  1. 使用 Euler 采样器 + 15 步快速测试构图和提示词
  2. 确认方向后切换到 DPM++ 2M Karras + 25 步精修
  3. 最终出图使用 DPM++ 2M SDE Karras + 40 步

避免常见问题

问题: 图像过于模糊

  • 解决: 增加步数或换用收敛更快的采样器(如 DPM++ 系列)

问题: 细节过度/噪点

  • 解决: 降低步数(对于祖先采样器)或降低 CFG Scale

问题: 色彩失真

  • 解决: 检查 VAE 设置,尝试不同的噪声调度器

问题: 生成结果不稳定

  • 解决: 切换到确定性采样器(如 DDIM、DPM++ 2M)

SDXL 与 SD 1.5 的采样器差异

SDXL 由于模型架构不同,部分采样器表现可能与 SD 1.5 有差异:

  • SDXL 推荐使用 DPM++ 2M SDE Karras
  • SDXL 通常需要更少的步数(20-30 步足够)
  • SDXL 对 CFG Scale 更敏感,建议使用 5-8

总结

采样器的选择没有绝对的"最佳答案",而是需要根据具体需求进行权衡:

  • 追求速度: Euler、UniPC
  • 追求质量: DPM++ 2M SDE Karras
  • 日常使用: DPM++ 2M Karras
  • 艺术创作: DPM++ SDE、Euler a
  • 精确控制: DDIM

建议初学者从 DPM++ 2M Karras 开始,这是目前社区公认的最均衡选择。随着经验积累,再根据具体风格和需求尝试其他采样器。

记住,采样器只是影响生成质量的众多因素之一,好的提示词、合适的模型和正确的参数配置同样重要。多尝试、多对比,才能找到最适合自己创作风格的组合。

相关推荐

Stable Diffusion 的版本演进

深入解析 Stable Diffusion 的版本演进,了解各个版本的特性和差异。

·14 分钟·
#Stable Diffusion#AI绘画

Stable Diffusion 模型下载指南

详细介绍 Stable Diffusion 模型的下载渠道、文件格式说明以及安装方法

·19 分钟·
#Stable Diffusion#Checkpoint

Checkpoint 模型详解与选择指南

深入解析 Stable Diffusion 的 Checkpoint 模型,帮助你选择适合自己创作需求的模型

·17 分钟·
#Stable Diffusion#Checkpoint