AI繪畫-SD三次元人物模型訓(xùn)練(煉丹)教程
歡迎來到覺悟之坡AI繪畫教學系列之第33篇。


之前發(fā)布過2篇動漫煉丹教程,使用的都是秋葉lora script?訓(xùn)練包。
主要訓(xùn)練二次元動漫人物,還是蠻好用的。
但在實際上,我們除了訓(xùn)練二次元人物之外,也常常要訓(xùn)練三次元人物。
比如福利姬老師可以訓(xùn)練自己的模型,然后替穿上各種美美的衣服來拍照,減少自己的日常工作量。

我們也可以訓(xùn)練模特人物之后,獲得自己的AI模特(注意,商用需授權(quán))。

還有的女生,也有用自己照片訓(xùn)練自己的lora,可以讓這個電子替身在賽博世界,替自己穿上美美的衣服,去各種地方,還能保留自己最美的年華和最好的樣子。
總之,三次元煉丹還是有蠻多應(yīng)用場景的。
但是,三次元煉丹比二次元煉丹相對要復(fù)雜一些(難一些),因為三次元里面的人物,是三維的,比二次元人物多一維,也就代表著機器需要學習更多數(shù)據(jù)才能學會你的人物特征,也意味著如果有一點沒學會或者沒學對,都會讓你的人物訓(xùn)練功虧一簣(不像,崩圖,泛化性差等)。
下面,給大家分享一下我們這邊的煉丹經(jīng)驗和步驟吧。
1.下載訓(xùn)練包
(1)下載星空大佬(獨立研究員-星空)的lora訓(xùn)練包,大概2.8G
https://pan.baidu.com/s/13bitXRlVRlcZrbo0s_lF0w?pwd=dpmt
下載完解壓。記得路徑里面不要有中文。

2.安裝python3.10版本
(如果你電腦已經(jīng)有python3.10的其他版本,也可以不用安裝。如果非3.10,則要安裝一下3.10)
(1)官方下載地址https://www.python.org/downloads/release/python-3108/
(2)下載安裝python

記得勾選path再點擊install now,后面就是按默認的選項即可。

裝好之后,開始菜單打開cmd命令提示符,輸入python,可以看到版本號說明安裝好了。

3. PowerShell 管理員模式打開 執(zhí)行Set-ExecutionPolicy Unrestricted
(1)開始菜單輸入powershell,用管理員身份運行

(2)輸入Set-ExecutionPolicy Unrestricted并回車,如果提示y/n則輸入y再回車。沒提示就不用管。

4.安裝環(huán)境依賴
右鍵單擊訓(xùn)練包里面的install.ps1,選擇用powershell運行。

等待他安裝完畢。如果安裝中間報錯。則關(guān)掉這個install.ps1的黑色小窗重新右鍵單擊install.ps1用powershell運行,以再次執(zhí)行安裝。
安裝完成后,他會顯示下面菜單。

可以通過數(shù)字按鍵來選擇選項,0是第一個選項,1是第二個選項,以此類推。選好按回車確認。
建議按照以下選擇來設(shè)置:
This machine(本機)
No distributed training(非分布式訓(xùn)練)
No
Yes
Inductor
yes

5.準備訓(xùn)練集(圖片素材)
下面就以我們熟悉的三上Yua老師為例,來準備素材吧。
(1)準備好合適的照片集合,建議準備50張以上的照片素材,且分辨率需要是你目標訓(xùn)練分辨率的2倍以上(比如你想訓(xùn)練512x512的,那素材至少1024x1024),方便后續(xù)裁剪和加工。不要少于30張。要有不同的角度。不能都是正臉大頭照。

注意:
臉部有遮擋的不要(比如麥克風,手指,雜物等),
背景太復(fù)雜的不要(比如廣告板,上面一堆字,或者夜市背景太亂)
分辨率太低的不要(目標分辨率2倍以下的不要,方便裁切),
光影比較特殊的不要(比如暗光,背光等)。
不像本人特征的不要(比如大部分訓(xùn)練集都是長發(fā),那么短發(fā)顯臉大的不要)
化妝太濃重的,美顏太嚴重的不要。
(2)把圖像裁剪成合適大小。
訓(xùn)練真人建議至少裁剪成512*768,如果顯存夠大,最好裁剪成1024像素以上。(圖像越大,訓(xùn)練速度越慢,顯存占用越高)
三種裁剪方法,從快而不精確到慢而精確的方法依次是:
a)用webui的圖像預(yù)處理(preprocesser)自動裁剪(見后面打標部分)。
b)用https://www.birme.net/之類的圖像批處理軟件裁剪。
c)用photoshop,美圖秀秀之類的軟件手動裁剪圖像。

6.Tag打標和tag整理
(1)在stable diffusion webui的train(訓(xùn)練)-preprocess images(圖片預(yù)處理)下面,輸入你裁剪后的圖片地址和輸出結(jié)果地址。
下面輸入圖片尺寸(或者你想裁剪成的圖片尺寸。上面說的裁剪圖片最懶最快的方法就是這里)。
接著選擇split和use deepbooru for caption。
再點擊preprocess開始對圖片進行處理。

預(yù)處理完,你會發(fā)現(xiàn)目標文件夾里面每個圖片旁邊出現(xiàn)了一個txt文件,打開一看,里面是每張圖片的tag(標簽)

(2)整理每個圖片的標簽,每個圖片對應(yīng)的標簽第一句加上你要訓(xùn)練的trigger word(觸發(fā)詞),比如我要叫做sanshangyua,就打開每一個tag文件(txt)文件,在最前面加入sanshangyua這個關(guān)鍵詞。

這一步可以使用BooruDatasetTagManager 之類的tag管理工具批量處理提升效率。(https://github.com/starik222/BooruDatasetTagManager/releases)
部分專屬人物特征需要從tag里面刪除。
部分tag里面沒體現(xiàn)的重要場景可以手工補充tag。也可以用類似tagger之類的工具再跑一次tag來優(yōu)化。
7.設(shè)置訓(xùn)練文件夾
訓(xùn)練包里面新建一個train文件夾,里面放上你要訓(xùn)練的trigger word建一個文件夾。比如我就建一個sanshangyua文件夾,下面再建一個10_sanshangyua文件夾,里面放入剛剛處理完的圖片文件和tag文件。

8.設(shè)置訓(xùn)練參數(shù)并開始訓(xùn)練。
(1)右鍵點擊并用powershell運行訓(xùn)練包里面的run.ps1文件
(2)根據(jù)運行結(jié)果把提示的地址放瀏覽器地址欄打開

(2)選擇訓(xùn)練基礎(chǔ)模型,建議使用sd1.5或者chilloutmix系列模型。

(3)設(shè)置訓(xùn)練集地址和輸出地址以及訓(xùn)練的lora名字

(4)打開訓(xùn)練參數(shù)(training paramenters)頁面設(shè)置訓(xùn)練參數(shù),沒有標注的參數(shù)新手請按默認值。老手可以調(diào)著玩。

(5)訓(xùn)練參數(shù)-高級設(shè)置,use 8bit adam的勾記得去掉。其他的基本不用動。然后點擊最下面的開始訓(xùn)練。

(注意,我這768x1152的分辨率在執(zhí)行的時候報錯了,顯示說? assert max(resolution) <= max_bucket_reso,然后我把Enable buckets的勾去掉了就能正常運行。大家如果也報錯分辨率相關(guān)問題,建議使用512*512或者512*768的經(jīng)典分辨率,相對不容易出錯。)
(6)等待訓(xùn)練結(jié)束

訓(xùn)練完成,接著可以去output文件夾找到相關(guān)的文件,sanshangyua-xxxx.safetensors就是我們的訓(xùn)練成果。
我分辨率比較大,訓(xùn)練了20輪,所以時間比較長,花了五個多小時。
大家如果圖片分辨率小一些比如512x512,20-30張圖片,20輪,大概1小時左右。如果顯卡更好速度會更快。

9.訓(xùn)練測試
(1)把output文件夾中生成的幾個safetensors文件,放到stable-diffusion-webui-old\extensions\sd-webui-additional-networks\models\lora文件夾里面。(注意,需要提前下載安裝sd-webui-additional-networks插件。)

(2)設(shè)置測試prompt參數(shù)
測試prompt這里有3個注意點,
a)基礎(chǔ)模型要使用你的訓(xùn)練模型,比如你用的sd1.5或chilloutmix系列,那么你測試畫圖時要用的基礎(chǔ)模型最后也用sd1.5或者chilloutmix系列基礎(chǔ)模型。
b)記得在prompt區(qū)域加上你的trigger word觸發(fā)詞,比如我的是sanshangyua。Prompt區(qū)域還要加一個人物本來沒有的特征,比如白發(fā)。以便測試泛用性。
c)本身因為我訓(xùn)練集的圖片是1:1.5的,因此出圖比例我也寫1:1.5的512x768
(泛用性指的是,你訓(xùn)練的lora模型能否和其他模型很好的結(jié)合和拓展,比如你用chilloutmix訓(xùn)練的,那么用ralistic version模型能否跑出好圖。比如換衣服是否自然順暢,比如是否能自然順暢出全身照等(前提是你沒有訓(xùn)練全身照)。)

(3)設(shè)置xyz參數(shù)
a) additional networks隨便選一個lora,激活additional networks插件。

b)設(shè)置xyz參數(shù)
x軸設(shè)置為 addnet model 1,然后點擊小黃筆記本,自動引入所有l(wèi)ora文件名。
Y軸設(shè)置為 addnet weight1,然后輸入0.6-1.
設(shè)置xy讓系統(tǒng)自動用不同的lora分別以0.6-1的權(quán)重跑prompt指令。

c)等待xyz出結(jié)果
10.對比結(jié)果,篩選表現(xiàn)好的lora進一步測試或回爐重造
(1)通過xyz對比圖,看哪一個訓(xùn)練結(jié)果表現(xiàn)最好,最像的同時泛化性最好。

如果沒有則回去調(diào)整訓(xùn)練參數(shù)重新訓(xùn)練。如果調(diào)整訓(xùn)練參數(shù)沒用的話大概率是訓(xùn)練集問題,重新收集整理裁剪訓(xùn)練集,并優(yōu)化tag。
(2)如果有表現(xiàn)比較好的lora,則復(fù)制出來,放到stable-diffusion-webui/models/lora文件夾下面。隨機跑幾張圖再測試一下,沒問題就修改lora名稱,刪掉多余l(xiāng)ora,方便后續(xù)使用。
(3)*可選 如果有又像又不像的,可以把對應(yīng)lora拉出來,再去重復(fù)訓(xùn)練一次,epoch設(shè)置5,每1 epoch保存一次。再優(yōu)中選優(yōu)。但是最好不要重復(fù)訓(xùn)練太多次,否則容易過擬合,要么圖像崩壞,要么泛化性非常差。
(4)記錄訓(xùn)練參數(shù),數(shù)據(jù),測試數(shù)據(jù),便于下一次迭代。
答疑:
1.之前都是推薦用秋葉的訓(xùn)練包,現(xiàn)在怎么用星空的訓(xùn)練包?
秋葉的訓(xùn)練包我發(fā)布過線上線下版,因此這次換一個訓(xùn)練包,讓大家多一個選擇。(而且星空這個訓(xùn)練包其實底層是github上面一個很流行的lora訓(xùn)練項目kohya_gui?https://github.com/bmaltais/kohya_ss的漢化增強版)。
各lora訓(xùn)練包的用法其實差不太多,主要參數(shù)也還是那幾個。
另外,秋葉訓(xùn)練包提示triton報錯不用管,正常,但是如果提示找不到其他包/模型,那么就需要點多幾次install確保環(huán)境依賴安裝完整。
2.本文的方法可以用于訓(xùn)練動漫人物嗎?
可以。但訓(xùn)練動漫可以不需要這么多圖片,有些訓(xùn)練參數(shù)也可以優(yōu)化。可以參考我之前的lora篇教程。
3.訓(xùn)練模型對硬件有什么要求
建議顯存8G以上,低于8G容易訓(xùn)練失敗。實在不行可以用線上版訓(xùn)練。
最后提醒,訓(xùn)練自己的照片請注意保管好訓(xùn)練成果,不要泄露你的Lora,避免引來不必要的麻煩。訓(xùn)練他人照片尤其是商用請先獲得授權(quán),否則有侵權(quán)法律風險。
好了,大家都學會了嗎?學會了記得點贊關(guān)注在看三連哦~
如果不會,有問題也可以私。
那么今天的課,先上到這里吧,下次再見,下課!
<End>
歷史教程文集,請查看AI繪畫教章合集
關(guān)注我們,更多有用又有趣的AI繪圖技能知識持續(xù)更新中~