Stable Diffusion 的 LoRA 是什麼?如何使用?

2023/06/08閱讀時間約 3 分鐘
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 更有彈性且多變。

去哪裡下載 LoRA?

如何在 M1 Macbook 上跑 Stable Diffusion? 文末有推薦各種風格的 LoRA,或者直接上 Civitai 下載網友分享的 LoRA...

延伸閱讀

為什麼會看到廣告
KodingWork
KodingWork
大學唸的是生物,但持著興趣與熱情自學,畢業後轉戰硬體工程師,過著沒日沒夜的生活。之後憑一股傻勁創業,再度轉戰軟體工程師,一手扛起前後端、app開發,過程中雖跌跌撞撞,卻也累計不少經驗。 可惜不是那 1% 的成功人士,於是加入其他新創公司開發後端。沒想到卻在採坑的過程中拓寬了眼界,得到了深層的領悟。
留言0
查看全部
發表第一個留言支持創作者!