提升 Stable Diffusion(SD)图像生成速度的核心在于优化硬件配置、调整软件参数以及精简模型结构。最直接有效的方案是启用 GPU 加速(CUDA)、开启 xFormers 优化以及使用 LCM-LoRA 模型。
以下是具体的优化方案:
1. 硬件与驱动优化
- 启用 GPU 加速:确保使用的是 NVIDIA 独立显卡(推荐 4GB 显存以上)。在 WebUI 设置中,确认选择了正确的显卡,并安装对应版本的 CUDA Toolkit。
- 更新显卡驱动:保持 NVIDIA 驱动为最新版本,以获得最佳的计算兼容性。
- 显存管理:如果显存较小(如 4GB-6GB),务必在启动参数中添加
--medvram 或 --lowvram 来优化显存分配,防止爆显存导致的卡顿。
2. 关键参数调整
- 采样步数 (Sampling Steps):默认 20-30 步通常足够。降低步数(如 15-20 步)能显著提速,但过低会导致图像质量下降。
- 采样器 (Sampler):选择高效的采样器。例如 DPM++ 2M Karras 或 Euler a 通常比旧版采样器收敛更快,能用更少的步数生成高质量图像。
- 分辨率 (Resolution):生成高分辨率图像(如 1024x1024 以上)会成倍增加计算量。建议先生成低分辨率(如 512x512),再通过 Hires. fix 或后期放大处理。
- 批处理与队列:如果需要大量出图,利用批量处理功能,但注意这会增加显存压力。
3. 模型与算法优化
- 启用 xFormers:这是提升速度最明显的手段之一。在启动参数中添加
--xformers,可以大幅优化显存使用和计算效率。 - 使用 LCM-LoRA:这是目前最快的方案。通过加载 LCM-LoRA 模型,可以将采样步数降至 4-8 步 即可生成高质量图像,速度提升 3-5 倍。
- 模型选择:使用 SDXL Turbo 或 SD Turbo 系列模型,这些模型专为少步数生成设计。或者选择经过剪枝的轻量化模型(如 Pruned 版本)。
- ControlNet 优化:如果使用了 ControlNet,尽量只开启必要的预处理器,并降低预处理器分辨率。
4. 进阶加速技术
- TensorRT / ONNX 加速:对于高级用户,可以将模型转换为 TensorRT 格式(NVIDIA 专用),这能带来极致的推理速度提升,但配置过程较为复杂。
- 半精度推理 (FP16):确保模型以 FP16 精度运行(默认通常已是),相比 FP32 能减少一半的显存占用和计算量。
常用启动参数对比表
| 参数 | 适用场景 | 作用 |
|---|
--xformers | 通用(NVIDIA 显卡) | 优化注意力机制,提速并降低显存占用。 |
--medvram | 显存 4GB-6GB | 优化显存分配,牺牲少量速度换取稳定性。 |
--lowvram | 显存 <4GB | 极度显存优化,速度会明显下降。 |
--no-half | 旧显卡/AMD 显卡 | 禁用半精度,解决某些显卡的黑图或报错问题。 |
--opt-sdp-no-mem-attention | 特定显卡 | 另一种注意力机制优化,视显卡型号效果可能优于 xFormers。 |
提速方案效果对比
| 方案 | 提速幅度 | 画质影响 | 实施难度 |
|---|
| 开启 xFormers | 20% - 30% | 无 | 低 |
| 降低采样步数 | 30% - 50% | 轻微 | 低 |
| 使用 LCM-LoRA | 300% - 500% | 轻微(风格略有变化) | 中 |
| 使用 Turbo 模型 | 500% + | 明显(细节略有损失) | 低 |
| TensorRT 加速 | 200% - 300% | 无 | 高 |
建议优先尝试 LCM-LoRA 配合 DPM++ 2M 采样器,将步数设为 8,这是目前平衡速度与质量的最佳实践。