編輯嚴選
Stable Diffusion -- 訓練LoRA(一)

2023/04/10閱讀時間約 6 分鐘


閒聊

就算有了LoRA,要跨到其他領域的模組,也要微調很久
剛剛在刷股癌的IG,看到一個很有趣的秘辛:
股癌的限時IG留言
從我自己學了LoRA之後,在動漫模型裡練出了我要的角色圖樣之後,再餵進colab訓練出LoRA,然後把LoRA用在真人向模型,結果就能弄出各種逆天實景:
在冰川遺跡上外拍
所以,Stable Diffusion上面除了學好提示詞算是基本技巧,接下來的LoRA,ControlNet3D OpenPose Editor等都是讓你的出圖時間更快的進階技巧。確實可以大幅縮短創作時間。
閒話時間結束了,開始正文吧。

準備

LoRA可以在很多地方下載不同的角色、物品、風格,例如Civita.com,huggingface.co。但是如果你想要訓練自己的LoRA,像我一樣,那你需要準備好訓練的素材圖,才能順利烘焙LoRA。
  • 數量:依照經驗,7張到100張都可以,但是張數過少,同一張訓練的次數會非常多,訓練出來的LoRA在高權重的時候會讓算出來的圖嚴重變形(尤其是背景部分)。所以最好是20張上下。當然你可以用鏡像出圖的方法讓訓練圖數量加倍,但這樣還是沒辦法避免高權重下整體變形的問題。
  • 品質:如果是訓練人物或物品的LoRA,最好不要有太多同一個角度,同一個表情的圖片,尤其在張數少的情況下,訓練出來的LoRA會有人物表情僵直的問題。人物的臉通常是LoRA的重點,最好能有面孔多角度,不同光影,不同表情,不同服裝配件,讓模型能夠涵蓋夠多的情況。切記不要加入模糊失焦、被擋住部份臉部的圖片,除非你準備的張數夠多。
  • 尺寸:以Stable Diffusion 1.X為基準訓練的圖片要求至少要是512x512像素的正方形圖片,而Stable Diffusion 2.X的話圖片至少要768x768像素。

裁切

當我們準備好圖片之後,就要開始裁切,如果沒有洩密疑慮的話,什麼美術工具都不會的美術小白可以使用BIRME這個網站,把過大的尺寸裁切成512x512的訓練素材圖:
使用BIRME裁切訓練素材

預處理

接下來是最重要的一步,LoRA的品質除了跟訓練圖本身的品質,以及訓練的設定有關之外,另一個重點是訓練圖的提示詞文本。
有關如何在Automatic1111上幫訓練圖提煉提示詞文本,在AI繪圖-用Lora打造你的夢幻模特兒吧!三集之二:訓練Lora模型圖片預處理小節就有詳盡的步驟,請自行觀看。
這裡要提的是不同處:
在Use BLIP for caption與Use deepbooru for caption這兩個選項,我都用BLIP來提煉提示詞,因為deepbooru給的提示詞實在太多了,很多其實是瞎猜,如果你的訓練圖超過30張,光是刪掉不對的提示詞就夠累了。
第二點,你必須打開每個提示詞文本檔案,一個一個修正提示詞,否則你怎麼訓練都不會練出有用的LoRA。
以我想要訓練的角色為例:
  • 名字(提示詞):Vallaria。
  • 外表特徵:銀白色頭髮,白皮膚,深藍色眼眸,黑眉毛,有雀斑。
名字最好是夠獨特的,如果太菜市場的名字,會跟模組裡面的同名物體衝突,如果真的不想取其他名字,試試看後面加數字,例如Jack999,避免衝突。
(順帶一提,SD裡面真的有一個叫Jack的提示詞,會算出成年男性,雖然每次叫出來的Jack都長得不一樣😄)
當你打開提示詞文件時,可能會看到像這樣的敘述:
a woman with white hair and blue eyes and black robe and a flower on the shoulder of the robe at a snowy street.
  1. 此時,要將對象提示詞a woman換成你要的角色名,在這個例子要換成Vallaria。
  2. 接著,把關於髮色white hair與眼眸顏色blue eyes等我們定義好的外表特徵也刪掉。
  3. 接著,觀察原本的圖片,把不是你想要但是顯示在圖片上的提示詞寫進去,例如頭上有戴帽的話就要加hat,背景的光線佈局與季節是秋光autumn lights,她手上有一根燭台之類的,與角色特徵無關,但是預處理程式沒抓出來的事情。
更改過的提示詞會變成這樣:
Vallaria with black robe and a hat on her head and a flower on the shoulder of the robe at a snowy street, autumn lights, candle stick on her hand
你大概會覺得這句子文法不通。沒關係,電腦在訓練時會將整個提示詞文本用自己的方法拆成一堆單詞,電腦是不太在乎文法的。
至於為什麼要刪掉特徵,加上沒提到的事情,是因為這就是訓練的目的。
AI學習算圖,就是建立在圖形與提示詞的關聯上,所以當電腦發現這是一個藍眼睛白皮膚白頭髮的女性,但是卻在提示詞文本上找不到眼睛顏色、頭髮顏色、皮膚顏色的提示詞,卻反而每張圖都有一個叫Vallaria的提示詞時,他就會學到Vallaria等於藍眼睛白髮的白人女性,以及諸如臉型,五官比例等等特徵。
相反地,你不要AI建立關聯的特質,就必須要盡量標示出來,例如我的訓練圖八成以上Vallaria都有戴上帽子或公主冠等頭飾,就必須要在每個出現的圖片上都標示在提示詞文本上,否則AI會認為頭上有頭飾是這個角色的外表特徵,訓練出來的LoRA會變成Vallaria出現時,頭上必戴公主冠的問題。

準備訓練

將訓練圖與文本都準備好之後,請上Google Drive確認自己有足夠多的空間(大約1到2GB),沒有Google帳號的請申請,我們將在下一篇開始訓練LoRA,而且這個方式不需要本機安裝任何東西,也不需要任何怪獸顯卡,人人都能用!
接下來,就是正式訓練:

參照


LoRA目錄:
為什麼會看到廣告
7.4K會員
221內容數
寫奇幻小說,畫圖,心得,各式各樣作品的故鄉。
留言0
查看全部
發表第一個留言支持創作者!