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 模型相容。例如,該技術可以應用於 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 訓練。

Sources