在AI绘画创作中,手部绘制始终是一个棘手的挑战。常见的双手变形、手指数量异常、形态扭曲等瑕疵常令人困扰。本文将详细介绍Stable Diffusion中几种切实可行的手部修复方案,帮助您解决这一难题。
一、素材准备:生成待修复手部图片
在文生图界面中,我们首先随机生成一张带有手部缺陷的图片,作为后续修复操作的测试样本。
- 大模型:majicMIX realistic 麦橘写实_v7
- 正向提示词:
Prompt:a super beautiful Chinese girl showing two hands, open palms in a welcome sign, smiling, wearing a pink dress, standing in the street, front view, upper body
提示词:一个超级漂亮的中国女孩伸出双手,张开手掌做欢迎的手势,微笑着,穿着粉色的衣服,站在街上,正面,上身,
- 采样器:DPM++ 2M Karras
- 采样迭代步数:25
- 图片宽高:512*768
- CFG: 7
随机抽取一张手指存在缺陷的示例图片:
上图中的两只手均有明显问题,后续所有修复操作都将以该图片作为处理对象。
二、方法1:利用图生图局部重绘修复手部缺陷
【第一步】配置图生图局部重绘参数
进入图生图局部重绘界面,上传刚才那张存在手部问题的照片。
由于两只手都有瑕疵,建议分两步处理——先修复左手,再修复右手。使用右侧画笔工具将左手区域涂白作为蒙版。
重绘参数设置如下:
- 蒙版模式:重绘蒙版内容,专门针对手部区域
- 蒙版区域内容处理:原版
- 重绘区域:整张图片
- 采样器:DPM++ 2M Karras
- 采样迭代步数:25
- 图片宽高:512*768
- CFG: 7
- 重绘强度:0.7
【第二步】选择大模型与正向提示词
大模型仍沿用majicMIX realistic 麦橘写实_v7,正向提示词与生成原图时保持完全一致。
【第三步】生成图片
由于每次生成结果具有随机性,一次不理想可多次尝试,直至获得满意效果。
【第四步】重复上述步骤修复右手
相关说明:
(1)该方法修复手部存在概率性问题,通常需要反复抽选才能得到理想结果。
(2)最终效果的好坏与模型的渲染能力直接相关。
三、方法2:借助ControlNet的DWPose修复手部问题
【第一步】配置图生图局部重绘参数
同样在图生图局部重绘界面,上传需要修复的照片。
这次直接将两只问题手全部涂白。大模型、提示词、参数设置与方法1完全一致,此处不再重复。
【第二步】设置ControlNet Openpose模型
参数配置如下:
- 控制类型:OpenPose(姿态)
- 预处理器:dw_openpose_full
- 模型:control_v11p_sd15_openpose
启用dw_openpose_full时,预览图可同时识别面部、手部及全身姿态,覆盖范围非常全面。
关于dw_openpose_full的详细介绍,可参考之前发布的《手部修复的实现方式》一文,其中有非常详尽的说明。
【第三步】生成图片
这里有一个值得关注的细节:目前的DWPose控制器似乎能自动识别异常手部,生成的预览图中手部显示正常,省去了手动编辑的步骤。不过,生成的手指长度以及关节衔接处偶尔仍会出现轻微瑕疵。
四、方法3:使用ControlNet的HandRefiner修复手部问题
【第一步】配置图生图局部重绘参数
同样在图生图局部重绘界面,上传存在手部问题的照片。
将两只问题手涂白。大模型、提示词、参数设置保持不变。
【第二步】设置ControlNet HandRefiner模型
参数配置如下:
- 控制类型:Depth(深度)
- 预处理器:depth_hand_refiner
- 模型:control_sd15_inpaint_depth_hand_fp16
使用depth_hand_refiner获取的手部预览图效果:
【第三步】生成图片
好了,今天的分享就到这里。希望这几种方法能帮您彻底攻克手部这个老大难问题。
