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 可以应用于基础模型的任何微调版本,从而在各种模型版本中提供潜在一致性蒸馏的好处。

实施过程包括三个主要步骤:

  1. 选择教师模型(例如,SDXL 基础模型或其微调版本)。
  2. 使用 Parameter-Efficient Fine-Tuning(PEFT)训练一个 LCM LoRA。
  3. 将 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 训练。

Sources