SDXL1.0 Lora模型訓練教程
大家好,
本文將會介紹最近的SDXL Lora訓練內(nèi)容細節(jié),
數(shù)據(jù)收集
本小節(jié),準備一下訓練數(shù)據(jù),30-50張左右,需要注意的事項:
不管是角色還是風格,數(shù)據(jù)盡可能的干凈,數(shù)據(jù)不要貪多,干凈很重要;
選擇高清的圖;
尺寸可以不用管,分辨率大于1024x1024即可,注意,你不需要將數(shù)據(jù)裁剪成1024x1024
打標簽
本小節(jié),給準備好的數(shù)據(jù)做標簽,做標簽的工具:
點擊"Captioning"完成標簽制作。
文件命名: 10_butterfly mogu painting, 關(guān)于文件的命名上,總是云里霧里的,看了官方的文檔,SDXL1.0之后,不在需要考慮特殊的字符了,按自己喜歡的去命名就行了。
訓練環(huán)境
本小節(jié),需要準備訓練環(huán)境,我還用的訓練環(huán)境是:kohya_ss
https://github.com/bmaltais/kohya_ss
關(guān)于如何安裝使用,請參考一下官網(wǎng)的鏈接。
開始訓練
參數(shù)解析:
learning_rate:設(shè)置為0.0001,如果你學習率給多大,你可以多花10分鐘去做一次嘗試,比如0.00001,然后觀察一下訓練結(jié)果;
unet_lr:設(shè)置為0.0001;
train_batch_size:設(shè)置為1,如果你對訓練不熟悉的,設(shè)置為1,準沒錯,不建議設(shè)置太大,因為數(shù)據(jù)不是很大,只有幾十張。同時batch size和學習率兩者是相關(guān)的,batch size越大,學習率可以小一些;
save_every_n_epochs:設(shè)置為1,因為這更有利于我參觀訓練結(jié)果;
resolution:設(shè)置為1024,1024, 當然你可以選擇更大的尺寸,比如1024,1360等;
network_dim:設(shè)置為32,這個數(shù)值會影響模型輸出的大小,數(shù)值越大,網(wǎng)絡(luò)的參數(shù)就越多,32就足夠了,不用設(shè)置到128;
network_alpha:設(shè)置為32,這個參數(shù)會影響保存出來的權(quán)重值,與network_dim等值,是我認為最好的數(shù)值;
lr_scheduler:設(shè)置為constant,
optimizer_type:設(shè)置為AdamW8bit,(lr_scheduler)這兩個參數(shù),選擇預選框中的任一一個,對最終的結(jié)果影響不會很大,只是收斂速度和過程會有所差異。
這幾個參數(shù)比較重要,所以單獨拎出來,其他參數(shù),可以參考文末的配置文件
測試結(jié)果
配置文件