使用 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 來處理的。生成過程需要準備一個條件圖像(例如線稿圖),並將其連同提示詞一起傳遞給管道。
關鍵控制參數
兩個主要參數允許使用者微調適配器的影響:
adapter_conditioning_scale: 控制調節效果的強度。較高的值會增加外部訊號對輸出的影響。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.0和TencentARC/t2i-adapter-depth-zoe-sdxl-1.0獲得。 - OpenPose 引導: 使用
TencentARC/t2i-adapter-openpose-sdxl-1.0模型。