在AI绘画中,手部问题一直是一个麻烦的问题。双手变形、手指缺失、手指多余这些问题常常困惑着我们。本文主要讨论一下关于Stable Diffusion中有哪些方法可以用于修复手部问题。
一. 素材准备
在文生图的功能界面生成一张有手部问题的图片。
- 大模型:majicMIX realistic 麦橘写实_v7
- 正向提示词
Prompt:a super beautiful chinese girl showing two hands,Open palms in a welcome sign,smiling,wearing pink dress,standing in the street,front view,upper body
提示词:一个超级漂亮的中国女孩伸出双手,张开手掌做欢迎的手势,微笑着,穿着粉红色的衣服,站在街上,正面,上身,
- 采样器:DPM++ 2M Karras
- 采样迭代步数:25
- 图片宽高:512*768
- CFG: 7
随机抽取一张手指有问题的图片
上面生成的图片2只手都有问题,后面都以这张图片的手部修复为例说明。
二. 方法1:使用图生图局部重绘修复手部问题
【第一步】:图生图局部重绘设置
在图生图局部重绘功能菜单界面,上传待手部修复的照片。
由于2只手都有问题,为了获取最好的修复效果,最好分两步修复,先修复左手,再修复右手。我们先使用上图右边的画笔,将左边手部区域涂白。
下面是图生图局部重绘相关参数设置
- 蒙版模式:重绘蒙版内容,专门针对手部问题进行重绘。
- 蒙版区域内容处理:原版
- 重绘区域:整张图片
- 采样器:DPM++ 2M Karras
- 采样迭代步数:25
- 图片宽高:512*768
- CFG: 7
- 重绘强度:0.7
【第二步】:大模型和正向提示词
大模型:majicMIX realistic 麦橘写实_v7
正向提示词:和生成图片的正向提示词保存一致。
【第三步】 图片的生成
由于生成的图片具有随机性,可能生成的图片不会立马满足我们的要求,建议多次生成,直到抽取到我们满意的一张图片为止。
【第四步】 重复上面的步骤,修复右手
相关说明:
(1)这种方式修复的手部存在随机概率,可能需要反复抽签才能抽取到满意的一张。
(2)修复的手部是否好看,这个和模型的渲染能力有关系。
二. 方法2:使用ControlNet的DWPose修复手部问题
【第一步】:图生图局部重绘设置
在图生图局部重绘功能菜单界面,上传待手部修复的照片。
我们将有问题的2只手使用画笔都涂白。
大模型、提示词、相关参数的设置和方法1中一样,这里就不赘余。
【第二步】:ControlNet Openpose模型设置
相关参数设置如下:
- 控制类型:选择"OpenPose(姿态)"
- 预处理器:dw_openpose_full
- 模型: control_v11p_sd15_openpose
关于dw_openpose_full识别手部的预览图,可见监测出人的脸,手部,姿势等都非常全面。
关于dw_openpose_full的介绍,可以参照之前的文章,里面有非常详细的讲解。【Stable Diffusion【进阶篇】:手部修复的实现方式(3)】
【第三步】:图片的生成
相关说明:
(1)这种方式修复的手部操作容易,可控性很强,而且目前的DWPose控制器好像可以自动识别出有问题的手部,将生成的预览图手部展示正常,无需我们再次编辑处理。
(2)生成的手指的长度和接头处仍然可能存在不正确性。
三. 方法3:使用ControlNet的HandRefiner修复手部问题
【第一步】:图生图局部重绘设置
在图生图局部重绘功能菜单界面,上传待手部修复的照片。
我们将有问题的2只手使用画笔都涂白。
大模型、提示词、相关参数的设置和方法1中一样,这里就不赘余。
【第二步】:ControlNet HandRefiner模型设置
相关参数设置如下:
- 控制类型:选择"Depth(深度)"
- 预处理器:depth_hand_refiner
- 模型:control_sd15_inpaint_depth_hand_fp16
关于使用depth_hand_refiner获取手部预览图效果如下。
【第三步】:图片的生成
好了,今天的分享就到这里了,希望今天分享的内容对大家有所帮助。
模型放在网盘里,感兴趣的小伙伴自取!
https://pan.quark.cn/s/b3df771404e2