前言
這篇討論的是LoRA訓練裡面,可能是最重要的一步,就是選圖的標準,以及提示詞的選取策略。
最近在詳細研究到底要如何練出優質穩定的LoRA,參考了幾個Youtuber,以及Reddit上的影片跟文字分享,把一些訣竅整理條列在下面。
一個人物LoRA品質優劣最重要的一點,就是可以在不同的風格下還保持著原始素材圖的人物特徵。
例如下圖,最左邊的是原始的訓練素材,右邊三張分別是動漫風(AnythingV5),擬真風(GhostMix)與真人向(RealDosMix)等不同風格下的呈現,基本上能把臉型眉宇、髮色、瞳色與身材等難以用文字規範的要素如實複製出來,就算及格了。可以說此LoRA訓練成功。
另外,在遇到素材圖沒有遇到的情況時,如果能穩定複製該有的特徵且沒有侵蝕想要的風格,例如下圖使用了玩偶風,陶瓷,金屬雕塑的風格,在能夠表現人物的特徵時,並沒有破壞這些指定風格的基本特色,我們可以說這個LoRA沒有出現過擬合(Overfitting)的問題。
選圖
根據許多LoRA訓練大佬的心得,選擇LoRA訓練的素材圖有幾個要點要注意:
- 大臉圖要多,AI訓練時需要學習的特徵越明顯越好,尤其是人臉。人類對於人臉的辨識能力經過幾百萬年的演化,能夠看出一兩個像素的差異,所以在訓練時,必須提供足夠多的大臉圖片,讓AI能盡量學到臉部特徵以及顏色。建議在訓練素材中,大臉照片至少要佔一半。半身照與全身照適量,超遠鏡頭則不必,因為會讓AI學到不屬於人物的景色。
- 不同攝影角度、表情、光影、髮型與肢體動作等不同變數,讓AI可以學習到這個角色的輪廓、光影表現、肢體比例與臉部肌肉等變數。
- 高品質圖片。這裡說的高品質不只是解析度高,也包含了圖片要清晰,否則一坨糊掉的4K照片就會跟512x512的小圖片一樣無用。例如下圖,左邊的素材圖乍看之下眼睛是清楚的,但這是人腦補完之後的結果,如果放大看就會發現眼睛瞳孔是一片模糊的,右邊的素材圖,人物的眼睛與眼白是清晰分明的,這更能讓AI學到對人類來說很容易分辨好壞的細節。真人角色LoRA之所以難以訓練,一部分原因是因為相機拍照後的人物特徵其實是模糊的,儘管解析度很高,但因為搖晃、人物動作與過曝等問題,造成影像在放大時其實是模糊不清晰的,AI難以學習。
- 規範圖(regulation images),規範圖是用於AI訓練時避免LoRA過擬合的手段,當AI訓練的步數越多,就越能學到更多的人物特徵,但同時也會讓成果太過符合素材圖的圖片。為了避免這種情形,挑選許多同類型但不同人物的圖來當作規範圖就能避免LoRA太早過擬合。例如我要訓練一個特定女性擬真角色,就可以選許多女性的動漫、擬真與真人照片當作規範圖。但不需要選到印象派、抽象主義或野獸派風格的女性圖片,因為這分類差太遠了,反而會讓AI難以學習角色特徵。
提示詞
在產生訓練素材時,同時會產生相對應的提示詞文字檔,這些提示詞有幾個原則:
- 如果是人物LoRA,應該要包含他們的分類提示詞,例如1girl,1boy,a woman,a man之類的,因為基本的Dreambooth在訓練圖片時就有包含分類提示詞,而人物LoRA則是在分類提示詞之前再放入識別詞,所以如果要訓練一個名為Asuka123的女性角色,通常提示詞文件檔的開頭會是Asuka123, 1girl, ......
- LoRA的識別詞越特別越好,通常加入數字效果更好,因為Stable Diffusion的文字系統包含了數百萬以上的詞組,太過平常的識別詞會造成模型混淆,例如Jack這個詞就會產生一個西方男性,所以如果要訓練的人物就叫Jack,最好加個數字例如Jack1988之類的識別詞。
- 文件檔中的提示詞,代表的是LoRA中的變量(Variant),而沒有被提示詞描述的東西,就是LoRA中的不變量(Invariant)。以下面這幅畫為例,它擁有這樣的提示詞:
ProfShannon, 1girl, solo, looking at viewer, jewelry, upper body, earrings, outdoors, parted lips, day, cape, lips, grey eyes, floating hair, brooch, wind, gem, black cape
除了開頭識別詞ProfShannon之外,其他的提示詞都是變量,也就是說looking at viewer(看著鏡頭),earrings(耳環),floating hair(飄揚的頭髮)等等提示詞在這個LoRA都是可變的,不是這個LoRA固有的一部分。至於其他的不變量,例如角色的眉毛形狀,膚色,臉型,髮型,身材,表情與服裝配色等沒有提到的東西,就會被AI辨識並認為是這個LoRA的一部分。
這就是LoRA能穩定製造同一個角色的原因,AI將沒有提示,或語言無法提示的東西訓練進LoRA之中。
當我使用這個LoRA時,如果沒有其他的提示,出現的角色就應該必定是黑髮高馬尾劍眉(不變量)的女性角色。而有沒有耳環,頭髮飄不飄逸(變量)則是AI自行決定。至於街景,燈光色調,由於我的提示詞沒有提起,如果素材圖的街景與燈光色調都是類似的,那也會被揉進LoRA裡面,變成角色出場時固有的色調。由於這種東西很難用提示詞描述,所以不想讓角色LoRA出來時的光源都有類似的傾向,就要加入不同背景與色調的其他素材圖來沖淡這種傾向。這也就是希望角色素材圖能夠有不同場景不同角度不同光影的原因。
參照