Stable Diffusion基础:ControlNet之人体姿势控制

在AI绘画中准确操控图片是一件比较困难的事情,不过随着 ControlNet 的诞生,这一问题得到了很大的缓解。

今天我就给我们共享一个运用Stable Diffusion WebUI + OpenPose ControlNet 仿制相片人物姿态的办法,作用能够参阅上图。

OpenPose 能够操控人体的姿态、面部的表情,有时候还能够解决坏手的问题(不要抱太大希望,下文会有介绍)。

OpenPose能够直接仿制一张图片的人体姿态,就像题图相同,也能够经过骨架图生成人体图片(什么是骨架图?下文会有介绍)。

下面咱们就以“文生图”为例,来看下怎么运用 OpenPose 。

装置ControlNet

一般的 Stable Diffusion WebUI 整合包或许镜像都现已装置了这个插件,假如你的还没有装置,需要先装置它。现已装置好的跳过这一末节即可。

办法是翻开 Stable Dissusion WebUI 前端页面,进入“扩展插件”-“从网址装置”,在“扩展插件的git仓库网址”中输入:github.com/Mikubill/sd…,然后点击“装置”,待装置完成后重启 SD WebUI。各种 ControlNet 模型和预处理器一般会在首次运用时主动下载装置。

Stable Diffusion基础:ControlNet之人体姿势控制

假如拜访github不畅,也能够经过其他方法下载插件包和对应的模型,然后自己布置到 stable-diffusion-webui 中。文章最终提供了我收拾的插件包和各种模型。

详细布置途径如下:

  1. ControlNet插件:/extensions
  2. ControlNet模型:/extensions/sd-webui-controlnet/models
  3. ControlNet预处理器:/extensions/sd-webui-controlnet/annotator/downloads

留意需替换 为你自己的SD WebUI布置途径,假如你的 SD WebUI 发动命令中配置了模型的途径,或许做了文件夹的软链接,也需要依据实际情况进行调整。搞不明白的能够联系我。

装置成功后,在“文生图”、“图生图”界面的下方会出现 ControlNet 区域,点击右侧的翻开按钮,下边有4个ControlNet单元,也便是咱们能够一起运用4个ControlNet模型操控出图的作用,一般也就够了。

Stable Diffusion基础:ControlNet之人体姿势控制

假如你的 ControlNet 只需1个单元,或许你想修正这个单元的数量,能够到“设置”中调整,如下图所示,找到“多重操控网:最大模型数量”,更改之后别忘了重启。

Stable Diffusion基础:ControlNet之人体姿势控制

仿制图片姿态

进入“文生图”界面,只需要挑选一个你喜爱的大模型,填写简单的提示词就能够了。文章最终提供了我收拾的模型合集,有爱好的能够参阅运用。

Stable Diffusion基础:ControlNet之人体姿势控制

然后在页面下方的 ControlNet 中设置 OpenPose,依照下图所示的步骤操作:

  1. 这儿只需要设置1个 ControlNet 单元,挑选第一个就行了。
  2. 上传你要仿制姿态的图片。
  3. 启用这个 ControNet 单元,一般挑选图片后会主动勾选。
  4. 选中“完美匹配像素”,让 ControlNet 主动核算一个合理的内部图片处理空间,涉及底层技术细节,无脑勾选就行了。
  5. Control Type 挑选 OpenPose。
  6. 预处理会主动带出,不用修正。它是用来从参阅图片中提取骨架图的。
  7. 模型会主动带出,不用修正。它是在生成图片时依据骨架图操控人体姿态的。
  8. 这个按钮能够将参阅图片的尺寸带到“文生图”参数中,假如参阅图片的高宽没有超越 1024 ,主张运用,超越1024的出图会比较慢,能够依照图片比例手动设置“文生图”中的高宽参数。

Stable Diffusion基础:ControlNet之人体姿势控制

最终点击“生成”就等着出图吧。这儿会输出两张图片,一张是运用大模型加OpenPose生成的图片,另一张是依据参阅图片生成的骨架图,咱们能够把这个骨架图仿制出来,今后继续运用或许共享给他人运用。

Stable Diffusion基础:ControlNet之人体姿势控制

留意看这个骨架图中是有一点手的形状的,所以理论上,假如咱们在骨架图中描绘了手的形状,生成图片中的手是会遭到必定束缚的。再来一张总统挥手的相片,这只手看着还不错,不过也是生成了很多张之后挑选出来的。

Stable Diffusion基础:ControlNet之人体姿势控制

生图参数:

a man in a suit waves from a plane window as he stands on the deck of a plane with his hand up, Beeple, sunglasses, a stock photo, american romanticism
Negative prompt: EasyNegative,bad hands,bad fingers
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 289185078, Size: 656×432, Model hash: c0d1994c73, Model: realisticVisionV20_v20, Denoising strength: 0.7, Clip skip: 2, ControlNet 0: “preprocessor: openpose_full, model: control_v11p_sd15_openpose_fp16 [73c2b67d], weight: 1.5, starting/ending: (0, 1), resize mode: Crop and Resize, pixel perfect: True, control mode: Balanced, preprocessor params: (512, -1, -1)”, Hires upscale: 2, Hires upscaler: Latent, TI hashes: “EasyNegative: c74b4e810b03”, Version: v1.5.1

运用骨架图姿态

在上一末节咱们运用 OpenPose 时,先提取了图片人物的骨架图,然后运用骨架图生成的图片,所以只需有骨架图就能生成图片了。这关于发明太便利了,毕竟没有那么多的图片能够参阅。

这儿为了演示便利,直接运用上一末节提取的骨架图。咱们只需要更改 ControlNet 这儿的设置,如下图所示:

  1. 上传相片运用骨架图。
  2. 预处理器设置为None,由于咱们不需要再从相片中提取人物的骨架图。

Stable Diffusion基础:ControlNet之人体姿势控制

其他参数都不变,直接生成就好了。

发明骨架图

骨架图从哪里来?这儿介绍一个网站、两个插件,都能够生成或许获取骨架图。

Avatar Pose Maker

这是一个制作骨架图的网站,能够调整人体的姿态、拍照的视角,也能够下载他人制作好的骨架图。

拜访地址:avatarposemaker.deezein.com/

翻开的页面如下图所示,我简单说下几个操作区域:

  1. 这儿挑选你要调整的身体部位
  2. 这儿设置详细身体部位的参数,能够调整姿态。
  3. 这儿能够调整人物的视角,是正面、侧面,仍是仰视、俯视等等。
  4. 这儿下载你发明的骨架图相片
  5. 这儿能够随机生成很多人体姿态。
  6. 这儿能够进入查看他人共享的姿态,有标签说明姿态是什么意义,挑选下载就好了。

Stable Diffusion基础:ControlNet之人体姿势控制

OpenPose Editor

这是 Stable Diffusion WebUI 的一个插件,插件拜访地址:github.com/fkunn1326/o…,插件装置办法参阅上文的“装置ControlNet”。

装置成功后,咱们能够在一级页签中看到“OpenPose Editor”,这个插件的运用比较简单,能够在绘图区域这儿直接调整人物的姿态,然后下载图片备用,或许直接发送到文生图、图生图等运用。

Stable Diffusion基础:ControlNet之人体姿势控制

这儿贴出我这个骨架图的出图作用:

Stable Diffusion基础:ControlNet之人体姿势控制

生图参数:

eastern girl,18 years old, standing, waving left hand, balck hair, long straight hair, blue eyes, white shirt, blue jeans, trees, blue sky, cloud
Negative prompt: EasyNegative, bad hands, bad fingers, malformed
Steps: 30, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 1995058330, Face restoration: CodeFormer, Size: 512×512, Model hash: 15012c538f, Model: realisticVisionV51_v51VAE, Denoising strength: 0.7, Clip skip: 2, ControlNet 0: “preprocessor: none, model: control_v11p_sd15_openpose_fp16 [73c2b67d], weight: 1, starting/ending: (0, 1), resize mode: Crop and Resize, pixel perfect: False, control mode: Balanced, preprocessor params: (-1, -1, -1)”, Hires upscale: 2, Hires upscaler: Latent, TI hashes: “EasyNegative: c74b4e810b03”, Version: v1.5.1

3D Openpose

这是又一个Stable Diffusion WebUI的插件,拜访地址:github.com/nonnonstop/…,不会装置的同学请参阅上文的“装置ControlNet”。

装置成功后,咱们能够在一级页签中看到“3D Openpose”,这个插件功能比较强大,咱们能够在一个3D的环境中调整人物的形态,可是操作上也会比较复杂,我们能够自己体会下。

  1. 双击骨架图中的关节部位能够调整这个关节的方向。
  2. 鼠标滑动能够调整人物的视角和大小。
  3. 特别支持了四肢的深度图、边缘检测图,用于优化四肢的生成,也能够单独只生成手。

调整好后,点击“生成”。

Stable Diffusion基础:ControlNet之人体姿势控制

生成后的预览图如下,第一张是骨架图,后边几张是用来画四肢的辅佐图。

Stable Diffusion基础:ControlNet之人体姿势控制

能够直接发送到文生图和图生图,也能够下载后备用。直接发送感觉不太好用,主张先下载再上传。ControlNet的设置方法和上文直接运用骨架图生成图片相同,留意不需要挑选预处理器。

Stable Diffusion基础:ControlNet之人体姿势控制

假如咱们希望对四肢进行专门的修正,能够运用画四肢的辅佐图。这儿挑选边缘检测这个ControlNet,留意仍是不要挑选预处理器,发动操控步数和完毕操控步数我们能够依据实际情况调整,文生图中不要从0到1,会影响图片的结构,图生图中能够运用部分绘图修手修脚。

Stable Diffusion基础:ControlNet之人体姿势控制

尽管咱们专门对四肢进行了处理,可是出图的作用仍是经常出现变形的四肢,作用是有的,但和希望的差距还比较大。下边是两个例子:

  1. 文生图带修手:

Stable Diffusion基础:ControlNet之人体姿势控制

  1. 先文生图,再图生图部分修手:

Stable Diffusion基础:ControlNet之人体姿势控制

资源下载

假如你下载插件和模型不便利,能够运用我收拾的资源包,重视大众号:萤火遛AI(yinghuo6ai),发消息:插件,即可获取下载地址。


以上便是本次共享的主要内容,假如有问题欢迎沟通交流。

假如你还没有运用过Stable Diffusion WebUI,能够先看这几篇文章,了解下怎么运用:

手把手教你在本机装置Stable Diffusion秋叶整合包

手把手教你在云环境炼丹(布置Stable Diffusion WebUI)

SDXL 1.0出图作用直逼Midjourney!手把手教你快速体会!