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 模型相容。例如,該技術可以應用於 collage-diffusion(Stable Diffusion v1.5 的 Dreambooth 微調版),透過載入對應的 SD v1.5 LCM LoRA,實現專門風格的 4 步推理。
整合與進階工作流程
Diffusers 整合
LCM 已完全整合到 diffusers 庫中,提供以下功能:
- 原生
mps支援,適用於 Apple Silicon。 - 包含
torch.compile()和 flash attention 的效能優化。 - 如低 RAM 環境下的模型卸載等節省記憶體的策略。
- 支援 ControlNet 和圖像到圖像工作流程。
結合 LoRAs
透過 diffusers 與 PEFT 的整合,使用者可以將 LCM LoRAs 與普通的 SDXL LoRAs 結合。這使得專門風格或主題的 LoRAs(例如 CiroN2022/toy_face)能夠透過設置多個適配器及其相應權重,從 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 訓練。