2023-10-05|閱讀時間 ‧ 約 3 分鐘

Stable Diffusion進階 -- OpenPose手部修復

本篇要來解說一個最近新增的ControlNet前置處理器dw_openpose_full,如何使用它來快速修正爛掉的雙手手指。

首先,在介紹這個方法之前,已經有一些現成方法可以修正手指:

Stable Diffusion進階 -- 手部修復

Stable Diffusion進階 -- Loopback手部修復

這些方法的基礎都是使用實際的參考物,例如人偶網站的手,或者手指姿勢網站的手姿勢圖片來覆蓋掉原本的手,然後慢慢修正成想要的形狀。

ControlNet的dw_openpose_full

而在不久之前,ControlNet將一個非常強大的前置處理器dw_openpose_full加入了openpose家族,只要是ControlNet 1.1.400之後的版本都有納入這個前置處理器。這個前置處理器厲害的地方,就是他的預測非常準確,很多時候其他前置處理器會跑出亂七八糟姿勢圖的地方,它依然能正確解析,即使不對也八九不離十,只要透過openpose editor之類的外掛稍微處理,就能修改成自己需要的姿勢:

使用openpose editor,就能快速修正人物骨架

這個時候,配合inpaint與使用夠高的Denoising Strength,就有機會快速修正爛掉的手指。

修正範例

這裡有一張我產生的1152X768的半身圖,人物表情與姿勢都很好,問題是手指整個爛成一團麻花:

亂七八糟的手指啊!

這時候我們將整張圖與提示詞傳送到inpaint裡面,將手部整個圈選起來,然後在inpaint設定裡使用0.8的高強度Denosing Strength,讓Stable Diffusion有足夠的雜訊來重繪。

0.8的高強度Denoising Strength

之後,打開ControlNet的設定,選擇Openpose,並選擇dw_openpose_full這個前置處理器,然後就能試著區域重繪了!

ControlNet的設定

dw_openpose_full對於手指偵測非常在行,爛掉的手一樣可以大致偵測出可能的位置,如果不滿意,就可以使用openpose editor微調一下。

試著重複跑幾張,應該很容易出現可接受的修正圖:

手指差不多都正確修正了

通常修正完的手指還會有些小缺陷,需要用到繪圖軟體的塗抹工具來做粗修正,然後再丟回Stable Diffusion做小打磨,就能得到很不錯的正確手指了!

通常使用這個方法時,手的部位必須夠大,最好超過150X150,效果才會明顯,否則還是使用以前提過的方法成功率較大。

祝大家AI算圖愉快!

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.