LoRA 是什麼?為何在 Stable Diffusion 社群討論中常常出現?Prompt 有時看到很奇怪的文字是什麼?本文一次解答上述問題,並用白話文簡介 LoRA 原理,讓大家在操作時更有感覺!
目錄
LoRA 是什麼?
雖然每個 checkpoint 都是 Stable Diffusion model,但因為透過不同圖片訓練,神經元權重不同,因此有各自的風格(簡單想像,大家都是人類,但因為學習、經驗等不同,因此大家都能展現出獨特的自己)。
此時會發現幾個問題:
- checkpoint 檔案非常大,動輒 2 ~ 7 GB 不等,若需要多種風格,將佔用大量硬碟空間
- 每個 checkpoint 不能在算圖操作時 直接疊加 ,需先透過 Checkpoint Merger 作混合,產生出新的 checkpoint 才能使用
- 若要 fine tune model 訓練新的風格,因模型過大,需大量硬體資源才能辦到
簡單說明重點:
- 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 更有彈性且多變。
去哪裡下載 LoRA?
延伸閱讀