LoRA 是什麼?為何在 Stable Diffusion 社群討論中常常出現?Prompt 有時看到很奇怪的文字是什麼?本文一次解答上述問題,並用白話文簡介 LoRA 原理,讓大家在操作時更有感覺!
目錄
LoRA 是什麼?
在 最詳細的 Stable diffusion WebUI 操作教學 – txt2img | Part 1 中提到,所有算圖的第一步是選擇模型(model,或者說 checkpoint)。
雖然每個 checkpoint 都是 Stable Diffusion model,但因為透過不同圖片訓練,神經元權重
不同,因此有各自的風格(簡單想像,大家都是人類,但因為學習、經驗等不同,因此大家都能展現出獨特的自己)。
此時會發現幾個問題:
- checkpoint 檔案非常大,動輒 2 ~ 7 GB 不等,若需要多種風格,將佔用大量硬碟空間
- 每個 checkpoint 不能在算圖操作時
直接疊加
,需先透過Checkpoint Merger
作混合,產生出新的 checkpoint 才能使用 - 若要 fine tune model 訓練新的風格,因模型過大,需大量硬體資源才能辦到
為了解決 fine-tuning large-language models 的問題, Microsoft researchers 提出 LoRA: Low-Rank Adaption of Large Language Models 方法。
簡單說明重點:
- LoRA 透過 inject 的方式,在大型語言模型中,每個 transformer block 前插入一層 trainable layers (rank-decomposition matrices)
- fine tune 訓練時,固定 model 所有神經元權重,只訓練 inject trainable layers 的權重,因此訓練參數量可以大幅下降
- 權重參數下降代表檔案大小也變小,因此 LoRA 只有幾百 MB(通常是 151 MB)
若以上太學術看不懂沒關係,可以簡單把 LoRA 當成風格濾鏡
來理解。在 Prompt 中加入 LoRA 引用,即能大幅改變算圖的結果,甚至也能同時套用多個 LoRA 來取得混合風格。使用上比單純更換 model 或作 checkpoint merge 更有彈性且多變。
延伸閱讀:Using LoRA for Efficient Stable Diffusion Fine-Tuning
去哪裡下載 LoRA?
在 如何在 M1 Macbook 上跑 Stable Diffusion? 文末有推薦各種風格的 LoRA,或者直接上 Civitai 下載網友分享的 LoRA,還能參考大家的 Prompt
延伸閱讀:最詳細的 Stable diffusion WebUI 操作教學 – txt2img
如何安裝 LoRA 到 Stable Diffusion WebUI?
將下載好的 LoRA 檔案放入 stable-diffusion-webui/models/Lora
資料夾中即可。
回到 WebUI,點一下 Refresh 就能看到新增的 LoRA
延伸閱讀:如何在 M1 Macbook 上跑 Stable Diffusion?
如何使用 LoRA
點想要套用的 LoRA,WebUI 會自動把 LoRA 的名稱加入 Prompt 中。如果熟悉名稱也能直接鍵入節省時間。
LoRA 名稱冒號旁邊的數字是權重,可以想像成套用的比例
,數字越大效果越明顯,反之則越弱。
套用 LoRA 的效果
以下我們就來看看都是使用基礎模型 ChilloutMix-ni
但套用不同 LoRA 算圖的結果
套用 hanfu
套用 墨心 MoXin
同時套用兩個 LoRA
既然有特殊國籍的 LoRA (如 Korean Doll Likeness), 能夠混合兩種 LoRA 做出混血妹嗎?可以的!只需調整兩者的權重比例即可。
使用 Korean Doll Likeness + Russian Doll Likeness 作為範例,將比例配置做成對照圖如下:
能發現
- 當 Korean Doll Likeness 比例
相對
上升時,五官會變得比較偏東方人,反之五官輪廓則變深 - 除了相貌外,衣服、背景也會有所改變
因此可以得知,LoRA 因訓練圖片來源偏差性,同樣的 Prompt ,會算出截然不同的結果。
另外也觀察到,當兩個 LoRA 權重都是 0.7 時,畫質發生衰減,因此權重也不能無限往上拉。若要調混合比例,可以透過調整 LoRA 權重比例達成,不一定要把值拉到很大。
以上就是 LoRA 的基本介紹和使用範例,大家可以試試看!
延伸閱讀
如何用 Stable Diffusion 產生高解析度的圖?
最詳細的 Stable diffusion WebUI 操作教學 – txt2img
如何在 M1 Macbook 上跑 Stable Diffusion?
免費用 Google Colab 玩 Stable Diffusion WebUI
不用顯卡也能玩 Stable Diffusion WebUI – 使用 AWS 架設
如何安裝 CUDA、cuDNN 到 Ubuntu 20.04?