17 零基础学webUI | Controlnet精讲(03)-动作姿态类控图详解
序号 | 分类 | Controlnet名称 | 备注 |
1 | 线条约束 | Canny(硬边缘) | 约束性强,可以识别详细线条 |
SoftEdge(软边缘) | 柔和的线条 | ||
MLSD 直线、最小线段检测 | 主要用于建筑空间 | ||
Lineart 线稿提取 | 粗细不同的线条 | ||
Scribble 涂鸦 | 粗略线条、发挥空间大 | ||
2 | 三维关系、 空间深度 | Depth 深度 | 空间层次关系 |
Normal 法线贴图 | 纹理效果常用 | ||
3 | 人体姿态、手势与表情 | Openpose 姿态控制 | 姿势、表情、手势控制 |
4 | 图像风格转换 | Shuffle 随机 | 打乱图片元素重新组合 |
IP-Adapter (图像)风格迁移 | 参考图像画风、换脸等 | ||
T2l-Adapter (文字转图)风格迁移 | 参考原图画风 | ||
Reference 参考图引导 | 模仿原图绘画 | ||
Instant-ID 换脸 | 人物换脸 | ||
5 | 图片修复与编辑 | Recolor 重上色 | 老照片修复 |
Inpaint重绘 | 类似于局部重绘,但融合效果更好 | ||
Tile 分块 | 分块重采样,细节方法 | ||
6 | 结构理解 | Seg 语义分割 | 根据色块代表不同含义 |
7 | 其它 | InstructP2P 指令式编辑 | 变换场景、特效 |
Revision 图像修订 |
控制人体姿态、手势与表情的controlnet便是大名鼎鼎的openpose,它可以检测人体结构的关键点,如头部、肩膀、胳膊、手指、腿部等,并生成与之对应的骨骼图,从而来还原参考图像中人物的姿势和表情,被广泛应用于人物类图像的生成。
1 openpose分类
OpenPose 常用的共有9种处理方案,分别是:
(1)早期的dw_openpose_full、openpose_full、openpose_hand、openpose_faceonly、openpose_face、openpose等六种,可以检测五官、四肢、手部等并生成骨骼图;
(2)后期出现的densepose_parula (black bg & blue torso)、densepose (pruple bg & purple torso)两种肢体分色图,可以表现出肢体的轮廓以及重叠关系;
(3)专门用于动物姿态检测的animal_openpose;
2 姿态检测--骨骼图
2.1 骨骼图预处理器分类
(1)openpose :检测姿态主要关键点,初略表现人体姿态;(其余算法在此基础上增减对比)
(2)face:在openpose基础上增加对面部的识别,包括眼睛、鼻子、嘴巴等五官和脸部轮廓;
(3)faceonly :只检测面部的轮廓点信息,用于仅刻画脸部细节的需求;
(4)hand :在 openpose 基础上增加手部姿势的识别;
(5)full :以上所有预处理功能的集合,人物各部位细节均进行检测;
(6)dw_full:“二阶蒸馏”--提升模型泛化能力后的“full”,可以看做是openpose_full的升级版本。
2.2 预处理器效果对比
6种不同预处理器基本上可以从名称上看出检测的侧重点,对比效果图如下:
openpose 姿态 | openpose_face 姿态及面部 | openpose_faceonly 仅面部 |
| | |
openpose_hand 姿态及手部 | openpose_full 姿态、手部及面部 | dw_openpose_full 二阶蒸馏-全身姿态估计 |
| | |
openpose_full及dw_openpose_full都是同时包括姿态、手部及面部的预处理器,我们放大看一下可以看出两者并无明显差异,dw_openpose_full(二阶蒸馏版本)仅在手部识别上面有略微区别。
2.3 案例应用
生成已知图像中人物相同姿势的图片
正向提示词:
1 girl,asian faces,20 years old,long black hair,white shirt,necklace,neck,khaki trousers,frontal photography,look ahead,urban tiantai,sunset,sunset,soft tones,pastel_color,high_contrast,face highlight,natural skin texture,high definition,sky_background,HD,8K,
反向提示词:DeepNegative_xl_v1,
参数设置如图:
生成效果图:
3 姿态检测--肢体分块表现
densepose_parula (black bg & blue torso)、densepose (pruple bg & purple torso)是后期新增的姿态检测方法,它们提取出的是人物的轮廓,把肢体和躯干主要关节划分成不同色块进行姿态表现。
两者的主要区别是densepose生成的是紫色背景和主体,而densepose_parula生成的是黑色背景和蓝色主体。
3.1 预处理器模型安装
因为densepose是后期新增的检测方法,如果你的整合包中无相关预处理及模型,可按下面地址进行安装:
预处理器下载地址为:
https://huggingface.co/LayerNorm/DensePose-TorchScript-with-hint-image/resolve/main/densepose_r50_fpn_dl.torchscript
预处理器文件安装地址为:
根目录\extensions\sd-webui-controlnet\annotator\downloads\densepose\
https://huggingface.co/bdsqlsz/qinglong_controlnet-lllite/resolve/main/Annotators/rtmpose-m_simcc-ap10k_pt-aic-coco_210e-256x256-7a041aa1_20230206.onnx
3.2 案例应用
仅调整预处理器为densepose,其余参数均不变,生出图像如下:
4 动物专用姿态预处理器
animal_openpose是一款专门针对狗、马等四足动物的预处理器,提取的是动物的骨架图。
我们尝试对两足动物进行处理,发现预处理器效果骨骼图略显奇怪,且出图过程均未控制成功。对无脊椎动物进行测试,则是未识别成功。
| |
| |
| |
5 姿态编辑
openpose检测的姿态是可以在预处理图中进行二次编辑的,可以在参考图基础上删除不需要的区域或者改变目标人物的姿态等。
在预处理结果预览图得右侧有两个编辑按钮,其中一个以图片形式发送姿态图到在线ps页面通过图形处理方式修改姿态图像,另一个(下图红框按钮)则可以直接在页面中通过拖动鼠标调整姿态节点和线条位置,常用第二个按钮功能进行姿态调整。
点击进入后,可以同时看到参考底图和姿态骨骼图,通过鼠标点击拖动即可以直接调整骨骼图位置。
修改完成后,点击左上角的“将姿势图发送到controlnet”,可以看到预览图中已经是修改姿势及尺寸后的姿势图。
如果没有参考照片,想获得一个特定的人物姿势,可以通过专门提供姿势图的网站进行获取,如:
PoseMy.Art
这里有很多预设的姿态模型,同时也可以对预设的模型进行姿态调整。