這是一個我一直忘記也沒有拿出來講的事情,在 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 所提供的工具也是不錯。
這是我目前訓練 Lora 的流程概念筆記,訓練的過程其實大概就煮飯一樣,現在電子鍋很方便,就跟訓練器一樣,只是準備不周的話,飯會不會熟就是另一回事了。
訓練資料集
首先你需要明確的知道你想要訓練的「目標」是什麼,這樣才能準備資料。無論你訓練的目標是什麼,盡量多元的資料集是必須的。
1. 如果只訓練一個概念( Concept ),那麼請盡量刪除或抹去與這個概念會產生衝突的資料。
2. 訓練多個概念,可以透過特定的標籤( Tag )來解決,這樣會需要更多的訓練時間。
3. 如果你使用 ARB ( Aspect Ratio Bucket) 的訓練方式,可以不裁切資料集圖片(