更新於 2023/05/18閱讀時間約 4 分鐘

Stable Diffusion進階 -- 穿衣換衣術

這次要來講一下,如何使用簡單的inpaint與基本的ControlNet來做到幫人物角色穿上服裝的穿衣術以及換衣術。 很多時候我們用AI算出來的圖,構圖與人物動作還有表情都是我們很滿意的,但是人物的衣服可能缺少了,也可能跟提示詞要求的不一樣,這時候我們可以用很多方法來修正,我自己用過最不需要修圖軟體和太多外掛的方法是利用inpaint,加上ControlNet的openpose來做到替人物穿上衣服的效果。 首先,我們以這張圖為例:
範例圖片,我們要替她加上靴子
範例圖片,我們要替她加上靴子
這張圖符合我的要求,但是當初為了讓跑圖不會出現太多全身圖,所以沒有指定鞋子的款式。但是我其實想要讓人物穿上長靴子,而非拖鞋或鞋子。

這時候我們就要用inpaint,選取要改變的地方,也就是小腿部分,然後選用這些選項:
  • Mask Mode: Inpaint masked
  • Masked Content: Fill
  • Inpaint area: Only masked
  • Denoising Strength: 0.5到0.6
inpaint遮罩選擇小腿
inpaint設定
設定完之後,請在提示詞內打上要幫角色加上的衣服,而且只提及關於這個衣服的敘述,在這個例子裡,是黑色精細過膝靴,洛可可風格,以及提高品質的提示詞:
(black intricate thigh high boots:1.5), rococo style,
(masterpiece, top quality, best quality), extreme detailed, highest detailed

這些都做完之後,打開ControlNet的面板,將同一張圖拉進來,效果指定openpose,記得點選Enable,Pixel Perfect以及Allow Preview,然後按一下爆炸按鈕確認程式能辨認人物的骨架。
ControlNet選擇Openpose
一切就緒之後,就可以先跑一張圖,看看AI是否能正確地將靴子穿到人物腳上。確認之後就可以放膽開始跑個十幾張,選自己覺得風格最對味的:
從多張圖中選擇自己喜歡的靴子
你會注意到,即使有了openpose的幫助,人物的靴子的姿態也不會全部一樣,因為openpose沒有第三個維度的概念,所以要多跑幾張圖才能挑到自己喜歡的姿勢。
你也會注意到,AI其實有考量到靴子的厚度,所以靴子的粗細會比原來的小腿略粗,小腿塞進鞋口的肌肉也會變形,AI真有你的!
完成圖

當然,這個手法也能用在替換已經穿好的衣物上,但是在inpaint的設定上略為不同。首先,在下面這個例子裡,我們要將白色和服換成黑色妖豔禮服:
要換掉白色和服
我們首先選取整件衣服,然後使用跟上一個例子幾乎一樣的設定,只差在:
  • Masked content選用Original而非fill。
  • Denoising Strength選擇0.6以上到0.75這個區間。
ControlNet的設定則保持不變。
inpaint的設定
這樣,我們就有很大機率可以變出黑色的禮服:
黑色禮服!
祝大家AI算圖愉快!

進階技巧目錄:
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.