最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

SD-AI(5)lora模型的訓(xùn)練認(rèn)知

2023-05-17 10:31 作者:很閑的二胖  | 我要投稿

聲明:學(xué)習(xí)使用SD軟件請遵守相關(guān)法律規(guī)定,不得將產(chǎn)出內(nèi)容進(jìn)行不合法操作使用。
本文中出現(xiàn)的所有SD產(chǎn)出圖片僅用于學(xué)習(xí)交流,禁止非法使用,禁止商用。
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
因相關(guān)法律規(guī)定,文章內(nèi)不會出現(xiàn)NSFW相關(guān)圖像內(nèi)容。
內(nèi)容基于2023年5月SD發(fā)展?fàn)顩r所寫。
內(nèi)容僅為個人經(jīng)驗(yàn)和理解。
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一

四、模型訓(xùn)練:
1.lora原理。
1-1.LoRA 是什么?
在三、3-1.中我們有過對lora的初步了解。

從應(yīng)用結(jié)果上看,Lora 屬于調(diào)整優(yōu)化型的模型。
優(yōu)化方向包含以下↓類型以及更多其他類型。

當(dāng)使用Lora的時(shí)候,會有對應(yīng)的結(jié)果產(chǎn)生。
示例,在同一組詞條下,不用lora與代入使用一個虛擬人Lora的對比結(jié)果。


加入lora↓

如你所見,同樣的數(shù)據(jù)在有l(wèi)ora和無lora下的結(jié)果是不一樣的,與底模契合度高的模型,產(chǎn)生的差異會小,契合度低的模型,產(chǎn)生的差異會大。

1-2.SD的工作原理:

1-2-1.基本識別:為什么AI能夠識別你所提供的詞或自然語言?
因?yàn)樗坝脤?yīng)的詞條內(nèi)容做過訓(xùn)練。
所以在你提供對應(yīng)的詞時(shí),AI可以進(jìn)行對應(yīng)的數(shù)據(jù)調(diào)用。

如,輸入“條紋襯衫”↓,得到下面的結(jié)果。

但如果是這樣的一件衣服↓,我們想要讓它復(fù)現(xiàn),應(yīng)該輸入什么詞?

一件帶有藍(lán)色大理石花紋的灰色長裙?
或者別的?
測試一下↓

顯然它沒有理解到我們要什么。

將描述換成“一件帶有藍(lán)色大理石花紋的灰色無袖全身裙”


顯然,它仍然無法理解我們想要的。

改為結(jié)合圖片使用↓

肉眼可見的,它仍然無法理解。

當(dāng)加入lora后,可以得到想要的效果。


1-2-2.為什么會出現(xiàn)這樣的結(jié)果?

當(dāng)你給AI一個提示,無論是詞或者圖或兩個一起。
AI在拿到你的提示后,會尋找其中的數(shù)字特征。
然后再到自己的數(shù)據(jù)庫中,尋找與它找到的數(shù)字特征接近的其他數(shù)字特征。
假設(shè)AI認(rèn)為他找到的數(shù)字特征內(nèi)容與你提供的數(shù)字特征內(nèi)容差異小于3個數(shù)位就是你所給的提示內(nèi)容,那么它就會認(rèn)為你要的內(nèi)容就是這個。
而調(diào)用的數(shù)據(jù)庫中不存在你需求的數(shù)字特征,則不做提取或根據(jù)提取到的其他數(shù)值特征自由發(fā)揮。

數(shù)字特征不是圖像上的特征,而是數(shù)學(xué)上或組合公式上的特征,其識別方式和用眼睛看完全不同。

邏輯示例1:
提示“凳子”→AI識別該內(nèi)容→通過詞庫轉(zhuǎn)化為數(shù)字特征→尋找與該數(shù)字特征相近似的所有數(shù)字特征內(nèi)容→圈定數(shù)字特征范圍開始輸出(圖像開始出現(xiàn)噪點(diǎn))→生產(chǎn)的結(jié)果與提示內(nèi)容進(jìn)行對比→排除差異過大的值內(nèi)容,向著差異更小的內(nèi)容值靠近(圖像內(nèi)容開始逐漸清晰)→重復(fù)排除與靠近的過程→直到迭代步數(shù)結(jié)束或差異值達(dá)到預(yù)定范圍后結(jié)束。

迭代步數(shù)結(jié)束都未達(dá)到預(yù)定范圍的內(nèi)容,在圖像上會出現(xiàn)明顯的模糊,變形,扭曲等結(jié)果,以及沒有實(shí)現(xiàn)你想要的內(nèi)容。

而達(dá)到預(yù)定范圍后結(jié)束,雖然實(shí)現(xiàn)你想要的內(nèi)容,但其他你未指定的內(nèi)容,它會自由發(fā)揮,隨意進(jìn)行關(guān)聯(lián)組合。

因此,雖然它叫做繪圖,但實(shí)際上,它是一個圖像內(nèi)容的篩選組合工具,而且是一個相對粗糙的篩選組合工具,并不能根據(jù)圖片進(jìn)行圖像上的直接繪圖。

邏輯示例2:
提示“1個女孩”,
與靜態(tài)物體不同的是,靜態(tài)物體通??梢詥为?dú)存在于一個空間內(nèi),自身可以不攜帶其他物體。
但人不一樣,有頭,有四肢,有手腳,有穿著。
而在各個大的模塊分類中,又有各種細(xì)分,
頭由發(fā)、耳、面、形等組成,
面中又有眉毛、眼睛、鼻子、嘴巴,張開嘴還有牙齒、舌頭、口腔。
臂有上下肢,頭身有脖子鏈接,男性還有喉結(jié)。
女性身體有性別特征。
手腳有掌、指節(jié)、指甲等。
服裝更是多樣化。
因此,人這類帶有多重必要特征的提示詞,AI需要進(jìn)行的基礎(chǔ)特征對比量遠(yuǎn)比一般的靜態(tài)物體要高。

當(dāng)只是輸入“1個女孩”時(shí),則需要的各個內(nèi)容AI會根據(jù)能夠表現(xiàn)出“1個女孩”這個詞特征的內(nèi)容進(jìn)行隨機(jī)組合。


如果我們需要控制更多的內(nèi)容,則通過添加tag詞或者模型來進(jìn)行內(nèi)容的控制。
tag使用方式可以在↓進(jìn)行學(xué)習(xí)。
SD-AI(3)模型的認(rèn)識和使用

一幅圖理想情況下是符合所有的提示內(nèi)容。
但詞組有上限,太多了AI也會識別不過來,對比組合也會出現(xiàn)各種不匹配的問題,且數(shù)據(jù)庫中不一定有你想要的內(nèi)容。
所以結(jié)果通常是圖片符合了內(nèi)容A,就不符合內(nèi)容B。

lora則可實(shí)現(xiàn)替代一部分tag定向組合的方式以及同時(shí)向數(shù)據(jù)庫補(bǔ)充內(nèi)容的效果。

但lora一定是能夠?qū)崿F(xiàn)所有效果嗎?
未必。

1-3.權(quán)重:

玩過電商或流量的伙計(jì)都知道,各個渠道中的流量分配是由綜合權(quán)重決定的。
搜索權(quán)重高,則商品展示靠前、視頻內(nèi)容靠前、圖文內(nèi)容靠前、網(wǎng)站搜索結(jié)果靠前。
廣告權(quán)重高,則花錢多,花的效率高的靠前。

在SD中同樣有權(quán)重這一概念,并且是數(shù)值化的可視權(quán)重值。
在【SD-AI(3)模型的認(rèn)識和使用】中也有講到tag詞的加權(quán)與降權(quán)。

1-3-1:怎么理解權(quán)重?
你人在上海,打算去旅游,你是開車?還是打車?還是坐飛機(jī)?還是坐地鐵?還是坐動車?
顯然,沒有目的沒法決定。
這時(shí)你設(shè)定一個目標(biāo),要去成都太古里看人文風(fēng)景,但你單程預(yù)算只有3000元。
你怎么實(shí)現(xiàn)這一目標(biāo)?
全程開車,累。
全程打車,貴。
全程坐飛機(jī),到不了。
全程坐動車,到不了。
全程坐地鐵,沒通那么遠(yuǎn)。
這時(shí)候就需要對你的行程進(jìn)行組合。
市內(nèi)交通,跨城交通,市內(nèi)交通。
市內(nèi)擁堵,那么打車和開車都不是首選,權(quán)重自然低,
飛機(jī)動車顯然沒有市內(nèi)使用條件,直接沒權(quán)重,
地鐵能無視堵車和紅綠燈問題,公交能在短距離上有足夠的優(yōu)勢,顯然要達(dá)到你的目的,這倆在市內(nèi)交通中的權(quán)重應(yīng)該拉高,即優(yōu)先選擇。
而跨城交通,公交地鐵沒使用條件,直接沒權(quán)重,
開車打車都可以,但開車費(fèi)油,打車費(fèi)錢,你的兜里揣多少和你的身體狀態(tài)決定你使用這倆的權(quán)重高低。
飛機(jī)和動車在花費(fèi)上比打車低,疲勞程度上比開車低,顯然要達(dá)到目的,這倆在跨城交通中的權(quán)重應(yīng)該拉高,即優(yōu)先選擇。

1-3-2:調(diào)整權(quán)重的目的:

回到SD,權(quán)重的目的在于幫助你更好的達(dá)成你想要的效果(目的)。

示例:一張熊貓人圖。



目標(biāo),在保持動作和基本內(nèi)容的同時(shí)進(jìn)行2D或3D的優(yōu)化。
那么,拆解目標(biāo)后,第一步首先是做定型。
如果無法定型,改再多的畫風(fēng)也白搭。
只有定型后,才能向著2D的其他畫風(fēng),或2.5D,3D等進(jìn)行遷移。
因此,從目標(biāo)結(jié)果上,定型的權(quán)重最高,所有的數(shù)據(jù)項(xiàng)設(shè)置,應(yīng)為定型來服務(wù)。

所以啟用ControlNet以固定形態(tài)。

原圖放入圖生圖,然后輸入tag為線條填充內(nèi)容,

然后決定你要優(yōu)化的方向。
如果要選擇保持2D,那就選擇2D類的基礎(chǔ)模型,
如果選擇轉(zhuǎn)為3D,就選擇3D類的模型。

如,我們選擇保持2D,選擇動漫類的底模進(jìn)行生產(chǎn),得到如下結(jié)果。

如果要朝著3D方向但非真實(shí)化方向,則選擇3D類的底模,或添加3D類的lora模型,可得到如下結(jié)果。

但由于模型的一些基礎(chǔ)內(nèi)容權(quán)重過高,導(dǎo)致我們的帽子發(fā)生了形變。
這時(shí)候就需要利用其他方式來解決這一問題。

如,帽子的詞更改為消防帽或者其他包裹頭部的帽子。
使“包裹頭部的帽子”從只有圖樣的低權(quán)重變?yōu)閳D+文的雙重權(quán)重疊加,增加它出現(xiàn)的概率。

當(dāng)使用消防帽這個詞將頭包裹住了,但又不想要火,則可以再添加“沒有火”或“禁止火”之類的詞,將火排除在外。
也就是火出現(xiàn)的權(quán)重從消防帽的連帶存在中剔除。




或者使用火焰lora,將其權(quán)重調(diào)整為負(fù),也能起到相同的作用。

權(quán)重不夠或者過重時(shí),自行對數(shù)值進(jìn)行調(diào)整以到達(dá)想要的效果。
只要能夠達(dá)到目的,lora本身是什么不重要,用于什么東西不重要,重要的是通過調(diào)整Lora的權(quán)重組合實(shí)現(xiàn)你想要的內(nèi)容。

若忘記如何調(diào)整權(quán)重,可復(fù)習(xí)【SD-AI(3)模型的認(rèn)識和使用】中的內(nèi)容。

1-3-3:訓(xùn)練集的文本權(quán)重:

與使用時(shí)的權(quán)重調(diào)整一樣,lora訓(xùn)練時(shí)同樣存在“權(quán)重”這一概念。
在文本框內(nèi),默認(rèn)越靠前的詞,學(xué)習(xí)時(shí)的識別和訓(xùn)練權(quán)重越高。


在混合應(yīng)用時(shí),結(jié)果表現(xiàn)也會相對更靠前。

2.Lora的數(shù)據(jù)調(diào)用:

和上面1-2-2的問題結(jié)果一樣,兩者遵從同一類調(diào)用邏輯。
區(qū)別在于,在使用lora的時(shí)候,數(shù)據(jù)庫的調(diào)用權(quán)重為:
lora數(shù)據(jù)庫權(quán)重>底模數(shù)據(jù)庫權(quán)重。
可以理解為,在排隊(duì)的時(shí)候,lora享有排隊(duì)的優(yōu)先權(quán),而底模在lora之后。

邏輯示例:一個穿著夏季服裝和絲襪的美女在室外。
此時(shí)同時(shí)啟用一個連衣裙lora,一個絲襪lora,一個人物lora。
當(dāng)權(quán)重一致時(shí),得到以下結(jié)果。

鎖定種子700660503,關(guān)閉lora,得到以下結(jié)果↓

兩者對比,可以很明顯的看出背景、人像、服裝、上身姿態(tài)、鞋子等都不一致。
在同一種子編號條件下造成這些區(qū)別的原因就在于:

對于我們輸入的提示內(nèi)容,
前者,AI在做完識別后,優(yōu)先從lora模型中調(diào)用對應(yīng)的內(nèi)容,然后再用底模補(bǔ)充其他內(nèi)容。
后者,AI在做完識別后,直接調(diào)用底模中的對應(yīng)內(nèi)容進(jìn)行生成。
而使用的lora中,根據(jù)lora說明,它們分別造成的影響范圍如下↓

所以出現(xiàn)它們的結(jié)果既有差異,又有重復(fù)或類似的情況。

在上圖的基礎(chǔ)上,繼續(xù)將輸入框內(nèi)容從自然描述調(diào)整為tag詞,其他不變,得到以下結(jié)果↓

然后啟用lora,但此次調(diào)整lora權(quán)重,得到如下結(jié)果↓

然后關(guān)閉其中兩個lora,調(diào)整襪子顏色,得到以下結(jié)果↓

對比以上內(nèi)容,可以看到在同一種子條件下,lora的作用影響。

那么,造成這些差異的細(xì)節(jié)是什么樣的?

對于上面的內(nèi)容,
自然段內(nèi)容為:
A beautiful woman wearing summer clothes and stockings is outdoors

提取關(guān)鍵詞后為:

1個美女,夏季服裝,長筒襪,在戶外。

tag段內(nèi)容為:
1girl, dress,stockings, handbag, outdoors,?

兩者描述看似一樣,生成結(jié)果也接近,但實(shí)際并不一樣。
前者的描述段,實(shí)際控制只有4個對象,后者的描述段,要多出一個名為“手提包”的控制對象。

這些控制對象,就是作為使用者要求AI必須要出現(xiàn)的對應(yīng)結(jié)果。



在繪制過程中,雖然AI會隨機(jī)生成內(nèi)容,但無論怎么改變,作為控制對象的這5個tag對應(yīng)的特征值都會表現(xiàn)在最終的圖像效果中。

在有l(wèi)ora的情況下,則表現(xiàn)為:
AI按照輸入順序識別提示詞轉(zhuǎn)化為特征值→從lora模型中尋找對應(yīng)的特征值進(jìn)行表達(dá)。
lora中不存在對應(yīng)的特征值,也沒有相似的特征值→進(jìn)入底模數(shù)據(jù)庫中尋找對應(yīng)的特征值表達(dá)→返回lora的數(shù)據(jù)庫尋找與底模提供的特征值近似的lora數(shù)據(jù)庫中的特征值。

對于AI的數(shù)據(jù)調(diào)用來說,它并不會去理解你用自然語言表達(dá)的想要的內(nèi)容,只是尋找特征值近似的內(nèi)容進(jìn)行數(shù)據(jù)調(diào)用,排除特征值偏差過大的內(nèi)容。

只要最終結(jié)果符合控制要求,偏差值小于一定程度,對它來說任務(wù)就算完成。

但當(dāng)要求太過復(fù)雜、采樣步數(shù)過少或調(diào)用多個lora內(nèi)容的某段特征值重合,就會出現(xiàn)AI畫完但實(shí)際沒畫完的情況。

也因此,我們訓(xùn)練lora,大多數(shù)時(shí)候是需要讓它盡可能符合我們的提示詞,以達(dá)到獲取最優(yōu)解的目的,而不是隨機(jī)結(jié)果。

但一個lora越是與提示詞接近,與控制目標(biāo)越接近,其變化也就越小,甚至沒有變化。

3.模型訓(xùn)練(內(nèi)容基于個人測試,不代表通用和一定正確)。

目前應(yīng)用的訓(xùn)練包有很多類型,但本篇內(nèi)容僅基于秋葉的本地lora訓(xùn)練包進(jìn)行講解。

秋葉一鍵lora訓(xùn)練包原址(含下載地址):
B站,視頻編號:
BV1fs4y1x7p2

先看完秋葉大佬的視頻再繼續(xù)看下面的內(nèi)容。

3-1.train訓(xùn)練運(yùn)行文本:

底模路徑:
該位置的底模名稱可修改,將自己要用的底模放入訓(xùn)練包的
sd-models文件夾中,再將底模名稱填寫至訓(xùn)練文本的路徑處即可。
示例,
"./sd-models/model.ckpt"
"./sd-models/chilloutmix_NiPrunedFp32.safetensors"
"./sd-models/uberRealisticPornMerge_urpmv13.safetensors"

訓(xùn)練數(shù)據(jù)集路徑:
確定內(nèi)容為"./train\xunlian"?即可,檢查train文件夾下是否存在對應(yīng)的名稱為“xunlian”的文件夾。

沒有就去上方看秋葉大佬的視頻。

圖片分辨率:
必須是 64 倍數(shù)。
默認(rèn)為512*512。
理論上,這個尺寸可以無限放大,但在8G顯存的最低要求下,
可以訓(xùn)練的圖像素點(diǎn)最好不超過921600個。
換成方圖也就是960*960。
長圖512*1800或1800*512。
超過這個像素點(diǎn)當(dāng)然也能訓(xùn),但需要更好的GPU,更高質(zhì)量的原始圖片,否則單純的抬高訓(xùn)練集像素意義不大。

batch_size:
默認(rèn)為1,如果你的顯存只有8G,一般不動這個值。
如果你的顯存為12或更高,可以調(diào)整數(shù)值為2。
個人對該數(shù)值的理解是參照對比。

訓(xùn)練集通常會有很多張圖片,
假設(shè)這些圖都是李四今天穿的同一件衣服,但展現(xiàn)角度不同,其中有正面,有背面,有側(cè)面,有光線影響,有遠(yuǎn)有近。
那么,只存在張三時(shí),他會告訴你:
他看到李四今天穿了一件紅色的衣服。
他看到李四今天穿了一件綠色的衣服。
他看到李四今天穿了一件深紅色的衣服。
最后得到的結(jié)果就是李四今天穿了一件紅綠混合的衣服,其中部分紅色較深。
這是batch_size為1時(shí)的理解。

但當(dāng)batch_size為2時(shí),
張三告訴你:他看到李四今天穿了一件紅色的衣服。
王五告訴你:他與張三在同一時(shí)間同一位置看到李四穿了一件綠色的衣服。
這時(shí)就會出現(xiàn)對比。
AI會去印證,為什么會有兩個不同的結(jié)果,從而實(shí)現(xiàn)位置的相對確認(rèn)。

但這個值并不是越高越好,
過高的時(shí)候,也會出現(xiàn)混亂,可以理解為人多嘴雜。

需要根據(jù)具體的物體類型和需求進(jìn)行調(diào)整。

最大訓(xùn)練 epoch與每 N 個 epoch 保存一次:
屬于總步數(shù)的一部分。
總步數(shù)=圖片數(shù)量*圖片訓(xùn)練次數(shù)*epoch值;
通常建議會設(shè)置epoch值到10-16,但實(shí)物類一般用不到那么多,數(shù)值到9,每2個?epoch 保存一次就能找到不錯的結(jié)果。
如果做物體復(fù)現(xiàn),最大訓(xùn)練?epoch 7,每 1 個 epoch 保存一次都足夠找到想要的結(jié)果。

dim與alpha:
默認(rèn)32和16。
實(shí)物需要結(jié)合圖片量和圖片訓(xùn)練次數(shù)以及你的目標(biāo)決定。
如果是材質(zhì)一類的,一張圖片,重復(fù)10-20次,3個epoch,學(xué)習(xí)率默認(rèn)值下,那么dim與alpha可以設(shè)置到64與32。
如果重復(fù)5-10次,其他不變,dim與alpha可以設(shè)置到128和64;

如果是凹凸表面,總步數(shù)200,dim最多也就到64。

一般物體,dim與alpha設(shè)置為64/32或32/16就足夠。

clip_skip:
訓(xùn)練風(fēng)格類模型,改為2的泛用性和易用性更好。
訓(xùn)練指定物體類模型,用1的復(fù)現(xiàn)性和泛用性更好。

學(xué)習(xí)率:

$lr = "1e-4":可理解為基礎(chǔ)學(xué)習(xí)率;
$unet_lr = "1e-4":數(shù)值與上方保持一致;
$text_encoder_lr = "1e-5":數(shù)值為上方的1/10至1/2;

描述段不改變,數(shù)值改變即可。
公式如下↓

1e-4=1乘以10的-4次方=0.0001;
2e-4=2乘以10的-4次方=0.0002;
1e-5=1乘以10的-5次方=0.00001;
2e-5=2乘以10的-5次方=0.00002;
9e-5=9乘以10的-5次方=0.00009;
以此類推。

各個訓(xùn)練對象采用的學(xué)習(xí)率對象并不一樣,需要根據(jù)具體的物體來決定。
文本學(xué)習(xí)率可在圖像學(xué)習(xí)率的十分之一至一半。
另,如果使用的alpha值為8或4,需要提高默認(rèn)學(xué)習(xí)率。

模型保存名稱:
這個自定義就行,之前輸出中文會亂碼,現(xiàn)在據(jù)描述是更新后可以輸出中文,但沒有測試。
不過沒有影響,可以在文件產(chǎn)出后的output文件中修改名稱,附加網(wǎng)絡(luò)加載不影響使用。
我自己通常用一下方式命名
"000XXX(編號序列)-XXX(品牌或類型)-XXXX(具體產(chǎn)品名)"

模型保存格式:
檢查你的格式是否為?"safetensors",不是就改成這個。

$network_weights:
在一個原有模型的基礎(chǔ)上繼續(xù)進(jìn)行訓(xùn)練迭代。
在此行內(nèi)容中的?""中填寫需要繼續(xù)訓(xùn)練的模型位置。
如,在訓(xùn)練文件夾的根目錄下新建一個“ercixunlian”的文件夾,
然后在此行文段中將?""更改為
"./ercixunlian/XXXXXXX(需要二次訓(xùn)練的模型名稱).safetensors"

優(yōu)化器設(shè)置:
3月的版本默認(rèn)為use_8bit_adam。
后續(xù)有更新其他優(yōu)化器。
如果你的文本中存在其他優(yōu)化器描述,則通過修改“=”符號后面的數(shù)值進(jìn)行開啟或關(guān)閉。

1=打開;
0=關(guān)閉;

如果沒有對應(yīng)的優(yōu)化器,則到秋葉、星空的B站或者笑臉網(wǎng)站去下載。
通常都有使用說明。

如果已經(jīng)安裝對應(yīng)的優(yōu)化器但在文本內(nèi)沒有,則自行添加描述段即可。
如,我的版本一開始沒有l(wèi)ion優(yōu)化器,在文件更新后,文件有了但文本沒有。
則添加了以下描述段到文本中進(jìn)行開啟。
$use_lion = 1 # use lion optimizer | 使用 lion 優(yōu)化器

優(yōu)化器的使用:
目前測試來說,優(yōu)化器的作用就像是你中午吃了什么一樣。
中午吃了炸雞漢堡,口干舌燥想喝水。
中午吃了火鍋,想喝點(diǎn)快樂水。
中午吃了面條,喝了湯,不用再額外添加什么。
完全取決于具體的產(chǎn)品,而沒有固定的誰更好。
優(yōu)化器的數(shù)據(jù)對比更多是基于配置環(huán)境、硬件條件、算法進(jìn)行的,而非對某個對象適用性。
并不具備普適的選擇條件。

Regular:
被翻譯為“正則化”。
使用需要在train文件夾中新建一個用于儲存對應(yīng)文件的文件夾。

文件夾名字需要和后續(xù)添加到文本中的描述一致。
如,設(shè)置為$reg_data_dir = "./train/reg"

3-2.Lora訓(xùn)練常見名詞:

3-2-1.Loss值:

Loss值的區(qū)間并非固定,根據(jù)不同的產(chǎn)品,內(nèi)容的復(fù)雜程度,內(nèi)容的存在數(shù)量類型,Loss值會存在不同的變化。

人像及帶人像的半身服飾,其訓(xùn)練的loss區(qū)間正如各個玩SD大佬所言,在0.06-0.08這個區(qū)間波動,最終可以得到相對較好的結(jié)果。

而對于物體和一些小物件,loss值即使低至0.009-0.02這個區(qū)間,也可以得到可用的結(jié)果(只是可用,不一定是最好的結(jié)果)。

當(dāng)訓(xùn)練透明背景圖物體的loss處于0.025-0.04這個區(qū)間時(shí),出現(xiàn)的結(jié)果會偏差很大,有擬合效果很好的,也有完全欠擬合無法生效的,這點(diǎn)原因未知。

但loss值只是參考,并非絕對普適,唯一能夠確定的是,練模型時(shí)相對穩(wěn)定的loss產(chǎn)出成品在使用上適應(yīng)性更強(qiáng)、有更少的顏色污染和更精確的指向性。

而不斷劇烈波動的loss值,最終效果差異很大,更難找到理想的成品。

3-2-2.物體的欠擬合、過擬合、擬合:

通過對模型權(quán)重的調(diào)整和詞的全部調(diào)用,而不添加任何其他控制內(nèi)容。

如果一個模型在權(quán)重-2至2區(qū)間內(nèi),它都無法產(chǎn)生結(jié)果,那么從實(shí)際結(jié)果看,它是廢的,歸屬到欠擬合。

如果一個模型在權(quán)重-1至1區(qū)間內(nèi),它都能產(chǎn)生或反或正的結(jié)果,那么從實(shí)際結(jié)果看,它是擬合的。

如果一個模型在權(quán)重-2至2區(qū)間內(nèi),它都能有效果,且在值為1時(shí),它的應(yīng)用覆蓋范圍超過產(chǎn)品本身影響到其他內(nèi)容,從實(shí)際結(jié)果看,它是過擬合的。

當(dāng)模型的權(quán)重在0-1的區(qū)間能夠精確的復(fù)現(xiàn)lora中你的訓(xùn)練內(nèi)容,說明這個lora擬合的相當(dāng)合適。

從實(shí)際的應(yīng)用上來看,欠擬合的模型對物體的復(fù)現(xiàn)應(yīng)用效率為0,擬合和過擬合的模型則都可以通過調(diào)整權(quán)重和詞來達(dá)到想要的效果或者禁止某些效果的產(chǎn)生。

3-2-3.lora訓(xùn)練標(biāo)簽(訓(xùn)練文本):

tag標(biāo)簽的多少和模型的擬合程度并沒有絕對的關(guān)系,和loss值的穩(wěn)定性有關(guān)系,描述越清楚的tag,對應(yīng)訓(xùn)練時(shí)的loss值波動會相對較小。

對于風(fēng)格化模型的訓(xùn)練,tag標(biāo)簽需要多且準(zhǔn)確,原因在于調(diào)用模型的時(shí)候,較多的tag詞可以只調(diào)用其中一部分tag對應(yīng)的內(nèi)容,給予整體更多的變化。

對于物體的復(fù)現(xiàn)訓(xùn)練,取決于你想要用到該物體的什么部分。

如果是整體應(yīng)用,則減少訓(xùn)練時(shí)的tag詞,

如果需要多樣變化或者應(yīng)用于其他的物體,則增加訓(xùn)練時(shí)的tag詞。

同時(shí),如果需要做整體調(diào)用,還需要調(diào)整文本的學(xué)習(xí)率以及整體的tag標(biāo)簽量。

3-2-4.圖片預(yù)處理:

源目錄:
告訴AI需要處理的圖片在哪。
將你準(zhǔn)備用來訓(xùn)練的圖片文件夾地址復(fù)制粘貼到此處。

目標(biāo)目錄:
告訴AI處理好的圖片放在哪。
將你準(zhǔn)備用來存放處理好的圖片文件夾地址復(fù)制粘貼到此處。

尺寸:需要和train文本內(nèi)的尺寸一致(3-1.圖片分辨率)。

使用 BLIP 生成說明文字(自然語言描述):
生成結(jié)果會是一段描述句。

使用 deepbooru 生成說明文字(tags):
生成結(jié)果回事一個個tag詞。

下圖為兩者混合,藍(lán)色為?BLIP?生成,紅色為deepbooru 生成。

3-2-5.訓(xùn)練集的名稱:
標(biāo)準(zhǔn)命名規(guī)則為“XX(圖片學(xué)習(xí)次數(shù))_XXX(自定義名)”

圖片學(xué)習(xí)次數(shù)在上方有提到,需要結(jié)合訓(xùn)練集圖片內(nèi)容與總步數(shù)去做相對計(jì)算。
但各個目標(biāo)對象都有起始步數(shù)。
以訓(xùn)練集圖片為1的基礎(chǔ)情況,使用SD1.5底模訓(xùn)練進(jìn)行示例,
風(fēng)格類的步數(shù)需在3次以上,
材質(zhì)類的步數(shù)需在5次以上,
外形輪廓的步數(shù)需在3次以上,
人像帶背景類的步數(shù)需在8次以上,
指定實(shí)物訓(xùn)練類的步數(shù)需在12次以上。

雖然訓(xùn)練集圖片會增多,但通常不需要調(diào)整圖片重復(fù)次數(shù)。

3-2-6.Regular(譯為正則化):

由于AI的理解方式和人的大腦并不相同,你告訴它鞋子應(yīng)該穿在腳上,凳子應(yīng)該放在地上,但它是無法理解的。

對它來講,只有存在某內(nèi)容,和不存在某內(nèi)容,其內(nèi)容按照數(shù)據(jù)庫中已有的組合進(jìn)行調(diào)用,不存在真實(shí)物理、真實(shí)化學(xué)反應(yīng)等內(nèi)容,并不能去思考什么是“正確的位置和組合”。

而正則化可理解為告訴AI,內(nèi)容元素應(yīng)該出現(xiàn)在圖片的哪個相對位置。
內(nèi)容元素指你的圖像內(nèi)容,如人、家具、燈、鞋子等。

reg訓(xùn)練集=讓AI在訓(xùn)練時(shí)排除該訓(xùn)練集中存在的內(nèi)容、組合方式、元素等。
在動漫平面與真實(shí)化上的體現(xiàn)尤為明顯,即訓(xùn)練動漫平面模型,但在正則化的訓(xùn)練集中放置真實(shí)化的圖片,AI就會排除掉真實(shí)化風(fēng)格。

在物體上的表現(xiàn)則是,于正則化訓(xùn)練集中放置物體的錯誤放置方式,以幫助AI在訓(xùn)練時(shí)讓物體放置于“相對正確”的位置中。

與batch_size不同的地方在于,batch_size的對比是多主體對同一物進(jìn)行隨機(jī)的印證描述,正則化是可以做單主體對同一物的固定印證描述。

正則化訓(xùn)練集中可以只有圖片,沒有文本。

正則化圖片名稱可與訓(xùn)練集中圖片名稱進(jìn)行對應(yīng),但不對應(yīng)的生成結(jié)果差別也不大。

3-2-7.訓(xùn)練集圖像:

透明背景:
優(yōu)勢是對于一個物體進(jìn)行獨(dú)立識別時(shí)不會容易出錯。
劣勢是過擬合的lora加載后,物體本身的顏色搭配也會被理解為lora風(fēng)格。
泛用性低,整體易調(diào)用性高,指定調(diào)用性低,復(fù)現(xiàn)程度高。

雜色背景:
沒有摳圖的或一些顏色混雜的都?xì)w于此類。
優(yōu)勢是訓(xùn)練風(fēng)格lora好用。
劣勢是訓(xùn)練指定物體時(shí),如果沒有做好文本描述,效果會比透明背景差很多。
泛用性高,整體易調(diào)用性高,指定調(diào)用性低,復(fù)現(xiàn)程度低。

有序組合背景:
優(yōu)勢是訓(xùn)練實(shí)物lora好用。
劣勢和上面一樣,對訓(xùn)練集文本要求非常高,且需要結(jié)合Regular使用。
泛用性低,整體易調(diào)用性低,指定調(diào)用性高,復(fù)現(xiàn)程度高。

三原色背景:
優(yōu)勢是色調(diào)識別精度更高。
劣勢是容易將顏色固化,特別是在出現(xiàn)與訓(xùn)練集同色詞時(shí),容易造成覆蓋。
泛用性高,整體易調(diào)用性高,指定調(diào)用性適中,復(fù)現(xiàn)程度低。

3-2-8.圖像與文本:

描述文段影響權(quán)重,當(dāng)沒有任何描述詞在內(nèi)的時(shí)候,則應(yīng)用范圍不可控,只能依賴于底模型的識別,泛化性高。

添加指定描述詞或自然語言后,該模型對于指定對象進(jìn)行應(yīng)用,但指定對象無法出現(xiàn)時(shí),模型可能無法生效,泛化性降低。

添加具體到對象的描述后,該模型只在固定對象出現(xiàn)時(shí)生效。

對應(yīng)的文本方式匹配對應(yīng)的圖像模式,嘗試得到自己想要的結(jié)果。

3-2-9.底模:
即大模型,
可以使用默認(rèn)的,也可以從C站等地方下載后復(fù)制到訓(xùn)練包根目錄的:
sd-models
文件夾中。

底模選擇
如果打算出3次元的圖,那就使用3次元的底模訓(xùn)練,出二次元的圖就用線稿或者二次元底模訓(xùn)練,3次元底模細(xì)節(jié)度和線條銳度高于二次元底模。
訓(xùn)實(shí)物用二次元底模則會出現(xiàn)挺多意外的情況,有好有壞。
訓(xùn)二次元內(nèi)容用實(shí)物底模,一些線條表現(xiàn)差異會較大。
選好后到train中設(shè)置好。

4.訓(xùn)練操作流程:

在看完秋葉大佬的視頻,并學(xué)習(xí)完上面的內(nèi)容后,可以實(shí)際進(jìn)行一次操作。

4-1.準(zhǔn)備好你的產(chǎn)品圖包。

4-2.對圖片進(jìn)行處理轉(zhuǎn)化為訓(xùn)練集:
4-2-1.預(yù)處理轉(zhuǎn)化:
使用3-2-4的方法,直接處理。
你會得到格式為下圖的文件。

4-2-2.手動轉(zhuǎn)化:
可使用截圖、PS等任意方式,將圖放入訓(xùn)練集中,只要尺寸符合你的標(biāo)準(zhǔn),不對圖片進(jìn)行處理也行。
但圖像名稱格式必須為:
“0000X(序列號)-0-XXX(自定義名稱).png”
文本則進(jìn)行新建,名稱格式必須為:
“0000X(序列號)-0-XXX(自定義名稱).txt”
一張圖對應(yīng)一個文本。

4-2-3.設(shè)置文件夾名稱:
設(shè)置方式按照3-2-5進(jìn)行操作。

文件放入train文本中的對應(yīng)位置。


4-3.對文本內(nèi)容進(jìn)行優(yōu)化:
你可以直接打開文本進(jìn)行修改,也可以像我一樣使用工具。

4-3-1.BooruDatasetTagManager:
打開BooruDatasetTagManager工具,
點(diǎn)擊軟件左上角的FILE,接著點(diǎn)擊load folder,
復(fù)制你的訓(xùn)練集文件夾地址,

粘貼到點(diǎn)擊?load?folder后彈出的文件選擇框中,回車,再點(diǎn)擊選擇文件夾。

打開后,從左往右四個框分別是:
圖片展示欄,該圖片的現(xiàn)有文本內(nèi)容,工具欄,該文件夾的所有文本內(nèi)容。

雙擊該圖片的現(xiàn)有文本內(nèi)容進(jìn)行修改;
工具欄加號為添加新的詞條;
雙擊該文件夾的所有文本內(nèi)容部分,詞條快速添加到當(dāng)前圖片對應(yīng)的文本框內(nèi)。
修改完成后,點(diǎn)擊“√”進(jìn)行保存,
或點(diǎn)擊File,再點(diǎn)擊save all changes,保存結(jié)束。


工具在夸克的包內(nèi),【SD固定物體不變形教程】的沙發(fā)lora和本文中的連衣裙也在里面。
鏈接:https://pan.quark.cn/s/233551aee4c7

4-3-2.手動打標(biāo):
如果你需要使用時(shí),產(chǎn)品做整體展現(xiàn),那就對圖片少打標(biāo)簽。
如上圖中,就只做了一個連衣裙描述、形態(tài)描述、背景描述以及添加了一個通用觸發(fā)詞。

如果你需要使用時(shí),做元素化調(diào)用,那就對圖片多打標(biāo)簽。
如下圖中,對畫面的組成元素都描述一遍。

由于AI對圖片的識別和理解差異問題,所以訓(xùn)練集都最好自己手動打標(biāo)操作,而不是使用自動打標(biāo)。

打標(biāo)的內(nèi)容越細(xì)致,其泛用性越高,但使用時(shí)也容易欠擬合。
打標(biāo)的內(nèi)容越粗糙,其復(fù)現(xiàn)程度越高,但使用時(shí)也容易過擬合。

各類產(chǎn)品的必要標(biāo)簽打法會在后續(xù)涉及具體的產(chǎn)品內(nèi)容中展示。

5.運(yùn)行程序:
在調(diào)整好訓(xùn)練集內(nèi)容之后,右鍵點(diǎn)擊train.ps1,使用Powershell運(yùn)行。
運(yùn)行過程中可以看一下loss值的變化情況,相對穩(wěn)定的loss值產(chǎn)出的結(jié)果越接近想要的效果。

每輪訓(xùn)練的結(jié)果loss差值越接近,其訓(xùn)練效果也不會差。
loss值開始波動較大,但逐漸收斂,效果也不會差太遠(yuǎn)。

但要是前一輪的loss為0.09,后一輪變成0.02,下一輪又變成0.04,這種的結(jié)果恐怕好不了,多半是訓(xùn)練集或底模出現(xiàn)問題。
解決問題到上方對應(yīng)內(nèi)容進(jìn)行解決。

在模型訓(xùn)練完成后,將根目錄output文件夾下的訓(xùn)練結(jié)果復(fù)制到SD的lora文件夾下,運(yùn)行SD加載后調(diào)用使用。

下面的圖是上面示例中只有幾張底圖還有色差的低質(zhì)量訓(xùn)練集的產(chǎn)出結(jié)果,將就著做示例了。


一些問題:

Q.僅通過lora無法做到多圖位、多視角、多場景100%復(fù)現(xiàn)的原因:
因訓(xùn)練集中不存在一些圖位內(nèi)容,對AI來說,強(qiáng)行實(shí)現(xiàn)這些內(nèi)容就必須從底模中調(diào)取數(shù)據(jù),而不是根據(jù)已有的內(nèi)容去思考如何畫出剩下的內(nèi)容。
而在調(diào)取數(shù)據(jù)的過程中,又不可避免的將一些其他內(nèi)容連帶著帶出。
導(dǎo)致內(nèi)容差異越來越大。
而對于lora中存在的內(nèi)容,則可以直接進(jìn)行調(diào)取,在合適的權(quán)重位置,理論上可以實(shí)現(xiàn)100%同位復(fù)現(xiàn)。
但在實(shí)際測試中,受限于訓(xùn)練圖的基本質(zhì)量問題,目前只有純色或少紋飾內(nèi)容能夠100%復(fù)現(xiàn)。
如上方的復(fù)雜紋飾內(nèi)容,僅通過lora只能做到同位99%。
使用時(shí)需要搭配其他的插件進(jìn)行操作才能100%復(fù)現(xiàn)。

Q:安裝或運(yùn)行報(bào)錯:
在秋葉的視頻(BV1fs4y1x7p2)下方評論區(qū),找你出現(xiàn)的問題,對應(yīng)的都有解決方案。

最后,一些新工具和lora模型的測試內(nèi)容:



SD-AI(5)lora模型的訓(xùn)練認(rèn)知的評論 (共 條)

分享到微博請遵守國家法律
长岛县| 康马县| 乌兰察布市| 工布江达县| 罗田县| 玉溪市| 霍州市| 孟连| 大城县| 平遥县| 余姚市| 克什克腾旗| 集贤县| 眉山市| 曲松县| 澄迈县| 文成县| 平山县| 湟源县| 自治县| 修武县| 水城县| 安平县| 安新县| 钦州市| 浦江县| 陆川县| 綦江县| 赣榆县| 梧州市| 遂川县| 炎陵县| 德安县| 靖江市| 堆龙德庆县| 河北区| 昌图县| 宣恩县| 平舆县| 乳山市| 大埔县|