使用 T2I-Adapters 進行 SDXL 的高效可控生成

T2I-Adapter-SDXL 是一個輕量級即插即用的引導模型,允許使用者在保持基礎模型凍結的情況下,利用外部訊號來控制 Stable Diffusion XL (SDXL) 的生成。透過將內部模型知識與外部控制訊號對齊,T2I-Adapters 提供了一種計算上高效的 ControlNet 替代方案,以實現豐富的編輯和控制效果。

與 ControlNet 相比的效率提升

與 ControlNet 相比,T2I-Adapters 在參數數量和計算成本上提供了顯著的減少。儘管 ControlNet 需要在每個去噪步驟中同時運行 ControlNet 和 UNet,並涉及複製 UNet 編碼器,但 T2I-Adapters 在整個去噪過程中只需運行一次。

SDXL 基礎控制模型的模型參數和存儲 (fp16) 比較:

模型類型 模型參數 儲存空間 (fp16)
ControlNet-SDXL 1251 M 2.5 GB
ControlLoRA (rank 128) 197.78 M 396 MB
T2I-Adapter-SDXL 79 M 158 MB

如圖所示,T2I-Adapter-SDXL 與 ControlNet-SDXL 相比,參數減少了 93.69%,儲存空間減少了 94%。

技術實作與訓練

T2I-Adapter-SDXL 使用一個小型的 79M 參數適配器來驅動具有 2.6B 參數的 SDXL 模型。該模型是在 LAION-Aesthetics V2 資料集的 300 萬張高解析度圖像-文本對上,使用 diffusers 庫進行訓練的。

訓練配置

  • 訓練步驟: 20,000 到 35,000
  • 批次大小: 總批次大小為 128 (每個 GPU 16,透過資料平行)
  • 學習率: 常數 1e-5
  • 混合精度: fp16

在 Diffusers 中控制生成

diffusers 庫的整合是透過 StableDiffusionXLAdapterPipeline 來處理的。生成過程需要準備一個條件圖像(例如線稿圖),並將其連同提示詞一起傳遞給管道。

關鍵控制參數

兩個主要參數允許使用者微調適配器的影響:

  1. adapter_conditioning_scale: 控制調節效果的強度。較高的值會增加外部訊號對輸出的影響。
  2. adapter_conditioning_factor: 決定在去噪過程中應用調節的持續時間。值為 1.0 時將適配器應用於所有時間步,而值為 0.5 則僅將其應用於前 50% 的步驟。

支持的調節方式

T2I-Adapter-SDXL 提供了多種不同控制訊號的預訓練檢查點,使得多樣化的圖像生成工作流成為可能:

  • 線稿引導: 使用 TencentARC/t2i-adapter-lineart-sdxl-1.0 模型。
  • 草圖引導: 使用 TencentARC/t2i-adapter-sketch-sdxl-1.0 模型。
  • Canny 引導: 使用 TencentARC/t2i-adapter-canny-sdxl-1.0 模型。
  • 深度引導: 可透過 TencentARC/t2i-adapter-depth-midas-sdxl-1.0TencentARC/t2i-adapter-depth-zoe-sdxl-1.0 獲得。
  • OpenPose 引導: 使用 TencentARC/t2i-adapter-openpose-sdxl-1.0 模型。

Sources