本篇要来解说一个最近新增的ControlNet前置处理器dw_openpose_full,如何使用它来快速修正烂掉的双手手指。
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,效果才会明显,否则还是使用以前提过的方法成功率较大。