SDXL 和 Stable Diffusion 使用 Latent Consistency LoRAs 的快速推理
Hugging Face 推出了 Latent Consistency LoRAs(LCM LoRAs),这是一种方法,使得 Stable Diffusion 和 SDXL 模型能够在仅 4 到 8 步内生成高质量图像,而通常需要 25 到 50 步。这一进展显著降低了推理时间,使得在高端 GPU 上可以实现近乎实时的图像生成,并且大幅提升了低端硬件的可访问性。
LCM LoRA 方法概述
LCM LoRAs 利用 Low-Rank Adaptation(LoRA)来实现潜在一致性蒸馏,而无需单独对完整模型进行蒸馏。与其进行昂贵且数据密集的完整模型蒸馏过程,不如仅训练少量的适配器层。这些得到的 LoRAs 可以应用于基础模型的任何微调版本,从而在各种模型版本中提供潜在一致性蒸馏的好处。
实施过程包括三个主要步骤:
- 选择教师模型(例如,SDXL 基础模型或其微调版本)。
- 使用 Parameter-Efficient Fine-Tuning(PEFT)训练一个 LCM LoRA。
- 将 LoRA 与任何 SDXL 扩散模型以及
LCMScheduler一起使用,以实现高质量、低步骤的推理。
性能基准和硬件影响
LCM LoRAs 在各种硬件配置下将图像生成时间降低了一个数量级。对于 1024x1024 的图像,速度提升如下:
| 硬件 | SDXL LoRA LCM (4 步) | SDXL 标准 (25 步) |
|---|---|---|
| Mac, M1 Max | 6.5s | 64s |
| 2080 Ti | 4.7s | 10.2s |
| 3090 | 1.4s | 7s |
| 4090 | 0.7s | 3.4s |
| T4 (Google Colab Free) | 8.4s | 26.5s |
| A100 (80 GB) | 1.2s | 3.8s |
| Intel i9-10980XE CPU | 29s | 219s |
在 NVIDIA RTX 4090 上,响应时间低于一秒,使得 SDXL 能够用于需要实时交互的应用。在 M1 Mac 上,生成时间从大约一分钟降至大约 6 秒。
质量、引导和模型兼容性
推理质量与步数
虽然 1 步生成仅产生没有纹理的近似形状,但质量在 4 到 6 步之间迅速提升。相比之下,标准 SDXL 管道通常在大约 20 步之前生成的图像无法使用,而峰值细节需要 50 步。
引导尺度和负面提示
为了获得最大速度,建议将 guidance_scale 设置为 1,这实际上会禁用引导。若要使用负面提示,可以将引导尺度设置在 1 到 2 之间;然而,大于 2 的值通常无效。
与微调模型的兼容性
LCM LoRAs 与任何微调的 SDXL 或 Stable Diffusion 模型兼容。例如,可以通过加载对应的 SD v1.5 的 LCM LoRA 将该技术应用于 collage-diffusion(Stable Diffusion v1.5 的 Dreambooth 微调),从而实现专门风格的 4 步推理。
集成和高级工作流
Diffusers 集成
LCM 已完全集成到 diffusers 库中,提供以下访问:
- 原生
mps支持,适用于 Apple Silicon。 - 性能优化,包括
torch.compile()和 flash attention。 - 内存节省策略,例如在低 RAM 环境下进行模型卸载。
- 对 ControlNet 和图像到图像工作流的支持。
组合 LoRAs
通过使用 diffusers 和 PEFT 集成,用户可以将 LCM LoRAs 与常规的 SDXL LoRAs 组合。这使得诸如 CiroN2022/toy_face 之类的专门风格或主题 LoRAs 能够通过设置多个适配器及其各自的权重,从 LCM 过程的 4 步推理速度中受益。
可用模型和资源
Hugging Face 已发布多个 LCM LoRAs 和完整模型:
- LCM LoRAs:可用于 SDXL 1.0 基础版、Stable Diffusion v1.5 以及 Segmind 的 SSD-1B(一种蒸馏的 SDXL 模型)。
- 完整模型:源自 SDXL 1.0 基础版和 SSD-1B 的完整微调一致性模型。
训练和微调脚本现在已在 diffusers 仓库中提供,适用于 Stable Diffusion 1.5 和 SDXL,使社区能够执行完整模型蒸馏或更易于访问的 LCM LoRA 训练。