Stable Diffusion -- 訓練LoRA(二)

2023/04/11閱讀時間約 6 分鐘
靠著LoRA加上天時地利,就可能跑出驚喜等級的圖

前言

這次要介紹的LoRA訓練法,特別適用於下列對象:
  • nVidia顯卡不夠高級,跑不動訓練程序
  • 根本不是nVidia的使用者,Stable Diffusion的訓練程序不支援
  • 不想花錢花電力花顯卡時間訓練
這個方法主要是借用Google Colab的威力,直接靠Colab強大GPU與夠大的顯卡記憶體,能夠非常充足地訓練出品質非常優異的LoRA模型。

更新

由於該頁面的作者更新了整個架構,因此本章節的步驟不再有效,請移駕
下面的文章保留作為存檔。

第一步,上傳訓練圖:

首先,你必須登入Google,進入Google雲端硬碟
然後,創建一個多層的資料夾,根據你的LoRA的名稱,格式是:
我的雲端硬碟 -> Loras -> <專案名稱> -> dataset
以下是舊版的路徑,已經不再使用:
我的雲端硬碟 -> lora_training -> datasets -> <專案名稱>
以我為例,我創建的路徑為:
我的雲端硬碟 -> Loras -> Vallaria -> dataset
以下是舊版的路徑,已經不再使用:
我的雲端硬碟 -> lora_training -> datasets -> Vallaria
之後,將 Stable Diffusion -- 訓練LoRA(一) 製作好的訓練圖以及提示詞文檔全部上傳到這個目錄裡面,結果會像下圖一樣:
雲端硬碟的目錄結構會長得像這樣:

第二步,使用Colab訓練:

訓練素材準備好之後,就可以打開Colab頁面來訓練了。
首先,登入這個頁面:
裡面有幾個欄位要填寫,需要修改的有這幾個:
project_name: 等同於你放在Google雲端硬碟的目錄名,以我為例這裡是Vallaria
training_model:有兩個原始模組可以挑選,如果要用在動畫圖片上可用Anime,否則選Photorealism。我自己是用Photorealism訓練,用在動畫類的模組上也沒啥問題。
  • num_repeats:每張圖被訓練的次數,這邊我選10
  • training_unit:我選擇Epochs
  • how_many:我選擇20
  • train_batch_size:同時訓練的圖的數量,通常是2
  • 其他參數保持不變即可。
在這邊你要依照你的訓練圖的數量來決定num_repeats的數量,有一個算式是:
訓練圖總數 X 每張訓練步數 X Epochs數量 = 總訓練數。
以我的20張訓練圖為例:
20張 X 10步 X 20個Epochs = 4000。
這個數字要超過4000,這樣LoRA的品質才會好,而通常低於6000,免得Colab的每日免費時數被用完。
當訓練數量低於2000,出來的LoRA非常難看,角色的特徵能被抓出來,但是成品的臉型邊緣會一團模糊,更細部的特徵例如雀斑、膚色會大面積不穩定在臉上擴散。當訓練數量到達3000以後,大部分的品質會趨於穩定,但是眼睛的特徵會過於模糊,使得人物的神色委靡。直到了4000以上的LoRA才能拿來用。
當一切都設定好之後,就可以按下左邊的開始圖示跑訓練了!
剛開始跑的時候,程式會要求你授權,讓它能存取你的Google雲端硬碟,請記得要允許。
如果一切正常的話,你就會在這區塊的最下方看到系統跑訓練的log了!
通常需要十到二十分鐘才能跑完。
當訓練完成後會出現連結,但其實,成果檔案就在你的雲端硬碟的目錄上:
我的雲端硬碟 -> Loras -> <專案名稱> -> output
你會在這個目錄上看到不只一個safetensors檔案,數字最大的那個就是最後訓練的成果LoRA檔案了。
就這樣,你已經輕鬆烘焙出你自己的LoRA了!

恭喜你,完成了!

是時候把你的LoRA模組放到stable-diffusion-webui的models/Lora目錄裡面,然後重開整個webui,就能看見它出現在Lora標籤下了,馬上用它來生出你想要的角色圖,驗證並同時犒賞犒賞自己吧!
我把用同一個LoRA跑出來的圖都放在 敬業的外拍Cosplayer -- Stable Diffusion繪製 裡面了,有興趣就看一下成果吧,你會發現角色的五官特徵大致上是一致的。
附註:有些真人向模型因為額外訓練素材的偏好,出來的女角色都會有強烈的髮色與瞳色偏好,權重不夠高的LoRA還無法直接蓋過,但LoRA權重過高又會影響整個畫風,這種情況下必須使用提示詞強制改變髮色與瞳色。
不論是哪種髮型跟服裝,你都能清楚看見角色的特徵是一致的。

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