
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...
👉👉前往 KodingWork - Stable Diffusion 的 LoRA 是什麼?如何使用? 閱讀全文
延伸閱讀
如何用 Stable Diffusion 產生高解析度的圖?
最詳細的 Stable diffusion WebUI 操作教學 – txt2img
如何在 M1 Macbook 上跑 Stable Diffusion?
免費用 Google Colab 玩 Stable Diffusion WebUI
不用顯卡也能玩 Stable Diffusion WebUI – 使用 AWS 架設