2023-06-29|閱讀時間 ‧ 約 8 分鐘

Stable Diffusion進階 -- 紙娃娃穿衣法

紙娃娃穿上和服與牛仔襯衫
紙娃娃穿上和服與牛仔襯衫

前言

這篇要來探討一個建立角色穿著的手法,除了之前討論過的 Stable Diffusion進階 -- 穿衣換衣術 以及 Stable Diffusion進階 -- 拼貼換衣術 之外,還有一種更複雜,但是我覺得頗為有趣的方法,就是搭配眾多ControlNet設定以及Photo bashing手法,將裸體紙娃娃穿上衣服的紙娃娃穿衣法
紙娃娃穿搭法是一個很古老的遊戲設計,最早從地下城主(1987年出品)開始,角色扮演遊戲上很常見的角色裝備瀏覽機制,而在AI算圖的時代,這個手法可以透過拼貼衣服在人物上,加上三個ControlNet的操控,以及循環輸入(Loopback)做到。

手法

首先要準備一個起始圖,它可以是裸體或半裸的人物角色圖,或者穿著衣物的角色圖,只要確定該圖能讓ControlNet掃描出姿勢圖(Openpose)與法線圖(Normal),且最終姿勢是你要的即可。
例如我使用這個提示詞組來生成半裸的角色圖:
(masterpiece, top quality, best quality, official art, beautiful and aesthetic:1.3), extreme detailed, Cheefuyu, fantasy, naked, nude, smile, underwear, cowboy shot, underpants, bra lora:Cheefuyu:0.4
(什麼衣服的提示詞都不加就會變成裸體,年紀未滿十八歲請勿嘗試)
芙悠的半裸角色圖
接著從網路上找尋想要貼上的素材圖,例如藍色和服:
藍色和服
打開任何支援圖層的影像編輯軟體,例如GIMP,然後將衣服貼上角色,必要時用剪裁以及位移或複製貼上等功能,讓衣服能貼合在角色上,形狀爛掉也可以,AI很聰明的,它可以處理。然後將圖送進img2img或者Inpaint之中。因為塗塗抹抹很麻煩,本文章範例都是用img2img,但如果不想動到背景與人臉表情,建議使用Inpaint。
要使用的提示詞必須包括我們想要生成的衣服款式,可以不用指定顏色,因為ControlNet會幫我們顧到這一塊,但是如果衣服款式指定錯誤,就會生成完全不對的成果:
(masterpiece, top quality, best quality, official art, beautiful and aesthetic:1.3), extreme detailed, Cheefuyu, fantasy, smile, kimono lora:Cheefuyu25:0.4
在這個範例,指定的衣物是kimono(和服)。
把衣物蓋上人物的合成圖傳進img2img
接著設定img2img的屬性,最重要的是維持Denoising strength在0.45,使得服裝可以貼上人物身上,但同時又不會變成其他類型的衣服,如果使用的是Inpaint,可以將Mast Area改成Only Masked,這樣生成的衣服會更細緻一些些。
img2img設定
接著是ControlNet,在這裡會用到三個ControlNet的設定,所以記得根據 Stable Diffusion基礎 -- 安裝ControlNet 提到的方法開啟至少四個ControlNet。
第一個ControlNet要輸入原始的人物半裸角色圖,並選擇Openpose,生成姿勢骨架,確保在跑圖時人物姿勢不會走樣:
ControlNet的Openpose
第二個ControlNet一樣輸入原始的人物半裸角色圖,並選擇Normal(法線貼圖),且Contorl Weight(控制權重)要調低到0.2的程度,這樣可以讓AI知道該角色的身材曲線概況,且不會過分控制使得整件衣服都貼到了角色身上,變成超級緊身衣。如果需要更寬鬆更不貼合身材的效果,可以繼續調低Control Weight,甚至可以不使用。但根據我的測試經驗,沒有這個設定的話角色身材很常走樣。
ControlNet的Normal
第三個ControlNet設定要使用非常少提到的T2IA配上color grid(色彩格)。它需要非ControlNet作者研發的t2ia color grid模型,請依照前述ControlNet設定文自行下載安裝。
在第三個ControlNet內,輸入角色貼上衣物的圖片。使用這個模型時,要將Preprocessor Resolution(前處理器解析度)開到最大的2048,才能精細地指定衣物的顏色。第三組ControlNet負責的是衣物生成時該有的顏色與圖樣的參考。
ControlNet的T2IA
最後是Loopback的設定。經過許多測試,Loops(重複次數)設定在10,Final denoising strength(最終去噪力度)最好設定在0.55,可以讓許多生成的圖片符合我們的需求,但同時又有不同的貼合度與款式,這樣就比較容易選出想要的成果。
Loopback設定
接下來就是跑圖,並且在其中選擇想要的成果!
AI算圖結果
從算圖成果可以看到,前一兩張生成的衣物雖然顏色與圖樣非常接近原衣物,但是身材的貼合度上並不好,直到第三張開始,ControlNet normal發揮夠多的影響力,才能讓和服完美貼合角色的身材。但此時衣服的顏色與圖樣已經開始飄移。當算圖回數越多,衣服就會越貼緊角色的身材,直到變成貼身緊身衣為止。以我為例,我覺得第四張是達到衣物貼合、顏色與圖樣最完美的成果。
另一個例子是將人物穿上兩件式的牛仔襯衫與牛仔短褲,處理步驟一模一樣:
(masterpiece, top quality, best quality, official art, beautiful and aesthetic:1.3), extreme detailed, Cheefuyu, long hair, fantasy, slight smile, denim jacket, denim short jeans, denim shirt lora:Cheefuyu25:0.4
單寧襯衫與牛仔熱褲

缺點

使用該手法,缺點很明顯,就是設定非常複雜,且出來的衣物圖樣並不能百分之百完全對應輸入的衣物,所以是不能拿來當成商用試穿圖的。
但是在遊戲設計上,以及插畫漫畫使用上,就能替設計師省去非常多中期拼貼步驟,而可以專注在前期衣物設計,以及後期將衣物不正確的圖樣修正的步驟上。
祝大家AI算圖愉快!
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.