前言
這次要介紹的LoRA訓練法,特別適用於下列對象:
- nVidia顯卡不夠高級,跑不動訓練程序
- 根本不是nVidia的使用者,Stable Diffusion的訓練程序不支援
- 不想花錢花電力花顯卡時間訓練
這個方法主要是借用Google Colab的威力,直接靠Colab強大GPU與夠大的顯卡記憶體,能夠非常充足地訓練出品質非常優異的LoRA模型。
更新
由於該頁面的作者更新了整個架構,因此本章節的步驟不再有效,請移駕
下面的文章保留作為存檔。
第一步,上傳訓練圖:
然後,創建一個多層的資料夾,根據你的LoRA的名稱,格式是:
我的雲端硬碟 -> Loras -> <專案名稱> -> dataset
以下是舊版的路徑,已經不再使用:
我的雲端硬碟 -> lora_training -> datasets -> <專案名稱>
以我為例,我創建的路徑為:
我的雲端硬碟 -> Loras -> Vallaria -> dataset
以下是舊版的路徑,已經不再使用:
我的雲端硬碟 -> lora_training -> datasets -> Vallaria
雲端硬碟的目錄結構會長得像這樣:
第二步,使用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還無法直接蓋過,但LoRA權重過高又會影響整個畫風,這種情況下必須使用提示詞強制改變髮色與瞳色。
不論是哪種髮型跟服裝,你都能清楚看見角色的特徵是一致的。
LoRA目錄: