C31:用 LoRA 微調擴散模型:逐步指南

LoRA(即低秩自適應)正在改變擴散模型產生特定風格和主體的方式。透過修改擴散模型中交叉注意力層的權重,LoRA 讓創作者能夠針對獨特的藝術或技術需求微調輸出。本文將探討 LoRA 的工作原理、實際應用,以及如何使用 ComfyUI 等工具將它們逐步整合到工作流程中。



什麼是 LoRA?

LoRA(低秩自適應)是小型模型,旨在引導擴散模型實現特定的結果,例如重現獨特的風格或主體。它們透過將大型資料矩陣分解為更小的低秩矩陣來實現這一點,從而減少所需的儲存和算力。這使得 LoRA 成為微調擴散模型的高效且可擴展的方案,無需重新訓練整個模型。

LoRA 的主要特點:

  • 資料效率:LoRA 儲存的資料遠少於完整的擴散模型,只關注自適應所需的參數。
  • 交叉注意力層修改:LoRA 調整擴散模型內的特定層,以實現預期結果。
  • 靈活性:LoRA 可應用於藝術、影像產生和技術建模等多個領域。

實際範例:在 ComfyUI 中使用 LoRA

為了展示 LoRA 的強大功能,讓我們來看一個使用 Aether Cloud LoRa 的實際範例,該模型專為 SDXL 模型而設計。

ComfyUI 中的 LoRA

步驟 1:搭建工作流程

在 ComfyUI 中,首先建立一個基本的文生圖工作流程,使用 Juggernaut XL 模型。該模型能產生高品質的雲朵,但加入 LoRA 後,輸出效果可以進一步優化。

  • 載入 LoRA:
    • 使用 LoraLoaderModelOnly 節點載入 LoRA 模型。
    • 將此節點連接到 載入檢查點節點 和 KSampler 節點。
  • 調整模型強度:
    • 這個模型強度參數 控制 LoRA 對輸出的影響程度。
    • 先從預設強度 1 開始,並根據需要進行調整。

步驟 2:比較輸出結果

載入 LoRA 後,將工作流程排入佇列並比較結果:

  • 不使用 LoRA:Juggernaut XL 產生的雲朵很逼真,但缺乏藝術感。
  • 使用 LoRA(強度 1):輸出變得更加抽象,反映了 Aether Cloud LoRA 的獨特特徵。

為了在真實感和抽象感之間找到平衡,請將強度降低到 0.5 並重新執行工作流程。這一調整將 Juggernaut XL 的內在特性與 LoRA 的藝術風格融合在一起。

步驟 3:增加細節

如需更多細節,請增加推論步數:KSampler 節點:

  • 20 步:能產生不錯的結果,但缺少精細的細節。
  • 30 步:增加了令人信服的細節,並提升了整體品質。

進階技巧:使用 LoRA 進行局部重繪

LoRA 還可用於局部重繪,讓你在保留整體構圖的同時修改影像的特定區域。

範例:建立一朵心形雲

  1. 搭建局部重繪工作流程:
    • 使用 CropAndStitch 節點 並在要修改的區域上繪製遮罩。
    • 調整參數,例如 denoise strength(如 0.8),以確保底層影像為新產生的內容提供大致的形狀。
  2. 修改提示詞:
    • 使用一個具體的提示詞,例如「two birds kiss each other in the sky.」
  3. 執行工作流程:
    • 將工作流程排入佇列,並將局部重繪的結果與原始影像進行比較。

這項技術可以精確控制輸出,將 LoRA 的特徵與基礎模型融合,從而實現驚豔的效果。


使用 LoRA 的最佳做法

  • 嘗試不同的強度參數:調整模型強度,以平衡原始模型的特性與 LoRA 的影響。
  • 優化推論步數:步數越多通常細節越好,但可能會增加處理時間。
  • 與 CLIP 文字編碼器結合:某些 LoRA 需要連接到 CLIP 文字編碼器才能獲得最佳效能。

參考資料

1 thought on “C31: Fine-Tuning Diffusion Models with LoRAs: A Step-by-Step Guide”

發表留言