前往
大廳
主題

[AI繪圖] 使用kohya LoRA dreambooth訓練LoRA

WuLing | 2023-03-31 03:11:39 | 巴幣 4136 | 人氣 7994

前言
但我實在沒能力更新訓練LoRA的Colab,
只好另外寫一篇有在持續更新的Colab:kohya LoRA dreambooth
順便更新一下目前我對於訓練的理解。

收集資料&前處理
1. 準備一個想學習的資料集,圖片不需要固定解析度(enable_bucket預設為True)。
訓練角色時不需要服裝一致,除非你想要把服裝當成角色概念的一部分。
背景不需要去背,維持多元背景即可。
至於多角色圖,個人還是習慣裁掉以免影響訓練。
(我聽說可以使用多角色圖訓練,只是我個人的經驗是會有角色特徵汙染的現象,
不確定caption是不是要做特殊處理,還請高手指點了。

2. 接下來需要使用WebUI的dataset-tag-editor擴充。
將下列網址填在extension_urls:

3. 啟動WebUI以後,
切換到數據集標記編輯器,
把資料集資料夾貼在資料集目錄,
取消勾選Load caption from filename if no text file exists,
Use interrogator勾選If Empty,
Interrogators選擇wd-v1-4-swinv2-tagger-v2,
最後載入。

4. 載入完成以後,
切換到Batch Edit Captions,
Sort by選擇Frequency,Sort Order選擇Descending,
觀察資料集tag分布。
接下來要把想學習的概念tag刪掉,讓觸發詞「吸收概念」。
角色通常會刪掉描述頭髮、眼睛等臉部特徵。
服裝的話會把描述服裝特徵的tag都刪掉。
我這邊想把服裝當成角色概念的一部分,
就兩者全部刪掉。
勾選完記得按Remove selected tags。

5. 也可以切換到Edit Caption of Selected Image,
進行個別圖片的Caption處理。
點選Copy and Overwrite,
在下方Edit Caption區塊編輯Caption,
完成以後點選Apply changes to selected image。

6. 完成以後,按下Save all changes,才會儲存所有Caption改動。
這邊我取消勾選了Backup original text file,方便整理資料集。

7. 就這樣,資料集完成了。

訓練LoRA
1. Install Dependencies
勾選mount_drive後執行。

2. Download Available Model/VAE
選擇並執行下載訓練使用的基底模型,
這裡我使用預設的anything-v3-1和anime.vae.pt。
也有動漫推薦animefull-final-pruned,其他推薦stable_diffusion_1_5-pruned的說法。

3. Locating Train Data Directory
將資料集資料夾填在train_data_dir後執行。
如果有正規化資料集(可選)的話則填在reg_data_dir。

4. Custom Caption/Tag
在custom_tag填上觸發詞後執行。
程式會把custom_tag添加在資料集Caption的正前方。

5. Model Config
project_name填上專案名稱(LoRA檔名),
pretrained_model_name_or_path填上基底模型路徑,
vae填上vae路徑,
勾選output_to_drive,程式會把ouput和sample存在雲端硬碟。
完成後執行。

6. Dataset Config
instance_token填上觸發詞。
class_token填上正規化資料集(如果有的話)的類別,女性角色的話就是1girl。
(這兩個token只有在沒有caption檔的時候才有作用)
keep_tokens填上1,以保留在資料集Caption正前方的觸發詞。
完成後執行。
(作者提到這個版本想要訓練多個概念,需要修改dataset_config.toml。

7. LoRA and Optimizer Config
network_category選擇想要訓練的模型種類,這邊我選擇了LoHA。
conv_dim, conv_alpha, network_dim, network_alpha按照作者提供的建議值填寫。
完成後執行。

8. Training Config
num_epochs我調高到30,以評估不同epoch的效果,實際上的值依個人需求填寫。
save_n_epochs_type_value代表每幾個epochs存一次檔(預設),也是看個人需求填寫。
完成後執行。

9. Start Training
確認完這三個設定檔就可以開始訓練了。
sample_prompt是產生sample使用的prompt,可以自行修改。
個人習慣調低dataset_config的bucket_reso_steps,讓圖片不會被裁掉太多。
完成後執行開始訓練。

10. 輸出的模型會存在/content/drive/MyDrive/LoRA/output,
之後就可以在WebUI上測試LoRA效果了。

參考資料

創作回應

boshi
5-2的classtoken去哪了
2023-04-16 17:32:54
神之逝
5-2好像有問題
Traceback (most recent call last) ───────────────────────────────
│ in <cell line: 97>:97
│ in get_subfolders_with_supported_images:38
─────────────────────────────
FileNotFoundError: [Errno 2] No such file or directory: ''
2023-04-16 21:37:10
LIU
感謝回答上面的問題
目前我也是碰到跟樓上一樣的問題@@ 嘗試了好幾次一樣 導致Dataset Config跑不出來
不知道是否能指點迷津~

╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ in <cell line: 97>:97 │
│ in get_subfolders_with_supported_images:38 │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
FileNotFoundError: [Errno 2] No such file or directory: ''
2023-04-16 23:34:50
無敵超人
感謝大大,我試過換個資料庫,結果煉出來就變成別人了(特徵都在,但就是少了那個人物給人的感覺),看來只能一個一個慢慢測試是哪邊出問題了
2023-04-17 07:18:17
jim930917
5.5 Start Training失敗求解
CalledProcessError: Command '['/usr/bin/python3', 'train_network.py',
'--sample_prompts=/content/LoRA/config/sample_prompt.txt',
'--dataset_config=/content/LoRA/config/dataset_config.toml',
'--config_file=/content/LoRA/config/config_file.toml']' returned non-zero exit
status 1.
2023-04-19 16:43:05

更多創作