這個筆記是最近大概兩個多月來訓練的總結,是特別針對 SDXL 真實系列訓練的所有過程。包含訓練集圖片處理、提示詞、Kohya 參數調整,基本上可以算是一個稍微進階一點的懶人包。如果是第一次練 SDXL 真人系列的話,可以做為參考。
前言
本次訓練是使用 Kohya GUI 24.1.4 版本進行,你的版本沒有那麼新也沒關係。但是,由於本次訓練使用到了 --enable_wildcard 的功能,所以請確保你的 Kohya 裡面所使用的 sd-script 是 0.
這是一個我一直忘記也沒有拿出來講的事情,在 Kohya 訓練參數當中,所使用的 face_crop_aug_range 一直都有一個誤會。
其實單純設定他是沒有效果的。
face_crop_aug_range
這個參數在 Kohya-ss/sd-script 當中,其實是需要針對檔案名稱作特殊處理,這個參數才會生效。然後我之前的文章好像都沒特別提到這件事情。
根據原始碼 train_util.py#L1095,
face_cx = face_cy = face_w
說在最前面的,你需要先訓練出一個屬於你自己的人物的 Lora,畢竟拿別人的 Lora 來用可能會有版權的問題,所以盡可能的自己訓練一個會比較好。
關於減法的訓練我在 2023 年的 SD 年會中已經聊過,這邊就不贅述。
關於訓練的減法
如果沒有看過的人可以看一下,這篇文章會用到裡面說的一些方式。
事前準備
訓練的方式就不提了,總之就是準備一個你覺得訓練的不錯的一個人物的 Lora,然後選擇幾個你喜歡的模型。
* 準備好一個人物 Lora,或是多個(如果你有訓練多個的話)
* 基底模型,例如 9527 Detail Realistic XL
* 或是 SD1.
由於 SDXL 的模型訓練的硬體需求實在很高,所以多半得靠第三方服務,或是自己去弄一台雲端的 GPU 來幫我們訓練。我在本地端用比較低的設定來跑,勉強還能夠訓練比較小型的 SDXL Lora,更高的需求就真的只能靠第三方。
所以這次就記錄一下各組訓練的數據,跟產出的對比。
TensorArt
我在上一篇文章 [TensorArt] Lora 訓練筆記 中,已經有介紹過。詳細的設定我就不在這邊贅述了。然後,官方已經把 Prodigy 優化器修好了,所以這次就用 Prodigy 來訓練。以下是本次訓練的相關參數,
Use Base Model:
對於硬體需求比較高的訓練,利用第三方平台算是一個不錯的選擇。當然,若你是有一些工程背景知識,使用 Colab 或是 Runpod 也是一個選項。但倘若是訓練入門的人,使用 TensorArt 所提供的工具也是不錯。