Stable Diffusion -- 訓練LoRA(五)

2023/05/24閱讀時間約 5 分鐘

前言

這篇要來討論,我們是否能靠著一張圖,就能鍛鍊出LoRA。
之前在Youtube上介紹Stable Diffusion很有名的光頭佬Olivio Sarikas發過一個影片,介紹了如何使用一張圖來訓練LoRA:
我原本以為他要教如何從一張圖,生成許多素材圖來烘焙LoRA,但沒想到他是真的只靠一張圖,經過放大分割成二十幾張小圖來訓練LoRA。這樣的訓練法其實也是可行的,但是它只能用在風格、場景型的LoRA,而且對整體風格的干擾非常嚴重,除非是要大量生成類似的場景,要不然用處不大。
那,我們真的能只靠一張圖來生成LoRA需要的訓練素材圖嗎?
根據我在 Stable Diffusion進階 -- ControlNet新功能Reference 做的觀察,理論上只要是Reference能夠參照複製的角色圖,我們就能製作出大量的素材圖來訓練LoRA。而這篇就要來實作驗證。

實驗

這次我想從一個比較模糊的角色圖開始,藉由設定角色的個性與經歷來建立她的外貌特徵,然後開始產生素材圖,用這樣的方式模擬一般角色發想的流程。
這次的實驗從之前的一副圖「姐妹會秘儀」開始,由於這張圖的構圖非常有趣,充滿故事性,畫中的每個人物似乎都有一個可以說的故事,於是我決定把我覺得最有感覺的角色獨立出來製作LoRA:
姐妹會秘儀,紅圈為這次製作LoRA的目標
在這幅畫之中,這個角色只有一個大略的模糊形象跟衣著特色,如果要製作當成LoRA訓練的素材,解析度必須高,角色的五官特徵必須足夠銳利,否則就會練出一堆爛掉的圖。
所以首先必須將圖局部放大之後再Inpaint,並且用繪圖軟體修掉斑點與太過模糊的細節:
經過局部放大與Inpaint後的角色圖
從這個基礎角色圖,可以歸納出這個角色的外部特徵:
黑髮,高馬尾,深藍色眼睛,柳眉,三十歲以上,嚴肅,兩分瀏海。
接著來使用ControlNet的Reference前處理器來抽取這張基礎圖的特徵,然後透過不斷嘗試不同的提示詞來製作類似的角色:
ControlNet的Reference設定
經過幾次測試調整,我使用這樣的正面提示詞來引導原始參照圖產生我要的結果:
(masterpiece, top quality, best quality, official art, beautiful and aesthetic:1.2), (1girl:1.2),
35 years old, long ponytail, black hair, victorian dress, red dress, shawl, long sleeves, wide sleeves,
serious face,
extreme detailed, highest detailed, fantasy, dynamic pose, half body portrait
在這串提示詞中,35 years old, long ponytail, black hair, victorian dress, red dress, shawl, long sleeves, wide sleeves限制了角色的外部特徵,serious face限制了角色的表情,dynamic pose保證我可以產出多樣的姿態與攝影機角度,確保LoRA訓練時的素材圖擁有不同角度與光影。下面是幾張產生的訓練圖:
訓練素材圖
我使用了大約四十張訓練素材圖,然後使用這幾篇文章的流程來使用Google Colab訓練LoRA:
藉此產生了LoRA。

驗證

我使用X/Y/Z plot來測試在不同的權重,不同的表情在原始模型GhostMix下的表現:
X/Y/Z plot作LoRA成果比較
另外也要確認這個LoRA可以在其他模型,例如擬真系的RealDosMix裡面運作:
LoRA用在擬真系也能再現特徵
就這樣,我們完成了用一張草圖訓練出LoRA的策略了!
這個方法目前僅適用於能夠用ControlNet的Reference來再現特徵的圖,目前已知擬真系與真實照片不太能用這方法來製造訓練素材,所以目前它只適用於動漫畫人物的訓練。
祝大家AI算圖愉快!

LoRA目錄:
為什麼會看到廣告
5.8K會員
202內容數
寫奇幻小說,畫圖,心得,各式各樣作品的故鄉。
留言0
查看全部
發表第一個留言支持創作者!