前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Stable Diffusion 倚天剑术》第 6 卷:控制小姐姐身体姿势

《Stable Diffusion 倚天剑术》第 6 卷:控制小姐姐身体姿势

作者头像
关键帧
发布2023-09-01 11:21:13
4520
发布2023-09-01 11:21:13
举报
文章被收录于专栏:关键帧Keyframe关键帧Keyframe

1、使用 ControlNet 控制人物的身体姿势

ControlNet 是一种通过添加额外条件来控制扩散模型的神经网络结构。它提供了一种增强稳定扩散的方法,在文本到图像生成过程中使用条件输入(如边缘映射、姿势识别等),可以让生成的图像将更接近输入图像,这比传统的图像到图像生成方法有了很大的改进。

在 Stable Diffusion 的基础上使用 ControlNet 就相当于给 Stable Diffusion 加了一个插件用于提供更精细的生成控制。

下面介绍几种可以用来控制人物身体姿势的方法:

1.1、Canny 边缘检测控制姿势

通过 Canny 模型可以对原始图片进行边缘检测,从而基于原始图片生成对应的线稿图。接着,在基于线稿图和提示词来生成具有同样线稿结构的新图,这样就实现了对新图的控制。当我们把这样的能力用在画 AI 模特上时,就可以实现对小姐姐姿势的控制了。

这里我们来介绍一下如何在 Stable Diffusion WebUI 中使用这个功能:

1)在 WebUI 中找到 ControlNet 面板,用目标姿势图生成线稿图

整个过程如下图所示:

使用 ControlNet 的 Canny 模型生成线稿图

  • 先在 WebUI 中找到 『ControlNet 栏』,点击右边的三角按钮展开面板。
  • 选中『启用(Enable)』和『开启预览(Allow Preview)』,这时候图像框会分为『原图(Image)』部分和『预处理预览(Preprocessor Preview)』部分。
  • 将目标图片拖到『映像档(Image)』框。
  • 在『预处理器(Preprocessor)』选择栏中选择『canny』,在『模型(Model)』选择栏中选择与之对应的『control_canny-fp16』。
  • 点击两个两个选择栏之间的『💥』按钮,稍等一会就会看到在『预处理预览(Preprocessor Preview)』框中生成了目标图片的线稿图。

此外,需要注意的是:

  • 由于 WebUI 以及 ControlNet 版本的不同,这里的界面布局可能会有一些差别,但是整个过程和参数设置大致如上同理。我们这里用到的是 ControlNet v1.1.104。
  • 面板中的其他参数一般不需要动,也可以自己调整一下试试效果,这里先不做深究。

2)在线稿图的基础上,使用文生图生成同样姿势的新图

在 ControlNet 面板做完上面线稿图的生成,再确认一下『启用(Enable)』已经选中,我们就可以开始常规操作画图了。

在提示词输入框、负向提示词输入框分别填好内容,在参数设置面板调整好参数,点击『产生(Generate)』即可。如下图:

根据 canny 线稿图生成新图

可以看到我这里的原图、Canny 线稿图、生成的新图对照如下,新图姿势和原图保持了一致:

<<< 左右滑动见更多 >>>

1.2、HED 边缘检测控制姿势

通过 HED 模型也可以对原始图片进行边缘检测,从而基于原始图片生成对应的线稿图,但是边缘更柔和。

在 Stable Diffusion WebUI 中使用这个功能的过程和上面使用 Canny 模型基本上一致,唯一的区别就是:

  • 在『预处理器(Preprocessor)』选择栏中选择『softedge_hed』,在『模型(Model)』选择栏中选择与之对应的『control_hed-fp16』。

其他步骤完全一样。这样我们生成 HED 线稿图来控制后续出图的姿势,如图:

使用 ControlNet 的 HED 模型生成线稿图

这里的原图、HED 线稿图、新图对照如下:

<<< 左右滑动见更多 >>>

1.3、Depth 深度检测控制姿势

通过 Depth 模型可以提取原始图片中的深度信息,提取原始图片深度结构对应的深度图,这个深度图里,越亮的部分越靠前,越暗的部分越靠后。然后,基于深度图和提示词就可以生成具有同样深度结构的新图了。这样也可以实现对小姐姐姿势的控制。

和上面一样,在 Stable Diffusion WebUI 中使用这个功能的过程和使用 Canny 模型基本上一致,唯一的区别就是:

  • 在『预处理器(Preprocessor)』选择栏中选择『depth_ 开头的预处理器(depth_midas/depth_leres/depth_zoe)』,在『模型(Model)』选择栏中选择与之对应的『control_depth-fp16』。

这里提到的 Depth 深度检测的预处理器有几种选择:depth_leres、depth_midas、depth_zoe,它们有什么区别呢?

  • depth_midas,MiDaS 深度信息估算预处理器,是用来检测空间距离的,可以生成一张由近到远的深度图。一般用在较大纵深的风景,可以更好表示纵深的远近关系。
  • depth_leres,LeReS 预处理器成像焦点在中间景深层,这样的好处是能有更远的景深,且中距离物品边缘成像会更清晰,但近景图像的边缘会比较模糊。
  • depth_zoe, ZoeDepth 是一种结合了相对深度估计和度量深度估计的深度信息估算预处理器,支持较好地泛化到不同的领域,同时仍然保持准确的度量尺度。

参考:ZoeDepth is an AI Model for Multi-Domain Depth Estimation[1]

其他步骤完全一样。这样我们生成 Depth 深度图来控制后续出图的姿势,如图:

使用 ControlNet 的 Depth 模型生成深度图

这里的原图、Depth 深度图、新图对照如下:

<<< 左右滑动见更多 >>>

1.4、Normal Map 法线贴图控制姿势

通过 Normal Map 模型可以提取原始图片的凹凸信息,生成一张原图的法线贴图,这样便于 AI 给图片内容进行更好的光影处理,它比深度模型对于细节的保留更加的精确。法线贴图在游戏制作领域用的较多,常用于贴在低模上模拟高模的复杂光影效果。

和上面一样,在 Stable Diffusion WebUI 中使用这个功能的过程和使用 Canny 模型基本上一致,唯一的区别就是:

  • 在『预处理器(Preprocessor)』选择栏中选择『normal_ 开头的预处理器(normal_bae/normal_midas)』,在『模型(Model)』选择栏中选择与之对应的『control_normal-fp16』。

这里提到的 Normal Map 法线贴图的预处理器有几种选择:normal_midas、normal_bae,它们有什么区别呢?

  • normal_midas,使用 MiDaS 模型来估算图像的深度信息,并在这个基础上来生成法线贴图。
  • normal_bae,Normal Map BAE 这个模型可以接受来自渲染引擎的法线贴图,只要法线贴图遵循 ScanNet 的协议即可。

参考:ControlNet v1.1[2]

其他步骤完全一样。这样我们生成 Normal 法线贴图来控制后续出图的姿势,如图:

使用 ControlNet 的 Normal 模型生成法线贴图

这里的原图、Normal 法线贴图、新图对照如下:

<<< 左右滑动见更多 >>>

1.5、OpenPose 姿势识别控制姿势

通过 OpenPose 模型可以检测原始图片的骨骼形态信息,从而生成一张原图的骨骼姿势图。接着,再基于骨骼姿势图和提示词来生成具有同样骨骼姿势的新图,这样就实现了姿势控制。

和上面一样,在 Stable Diffusion WebUI 中使用这个功能的过程和使用 Canny 模型基本上一致,唯一的区别就是:

  • 在『预处理器(Preprocessor)』选择栏中选择『openpose』,在『模型(Model)』选择栏中选择与之对应的『control_openpose-fp16』。

其他步骤完全一样。这样我们生成 OpenPose 骨骼姿势图来控制后续出图的姿势,如图:

使用 ControlNet 的 OpenPose 模型生成骨骼姿势图

这里的原图、OpenPose 骨骼姿势图、新图对照如下:

<<< 左右滑动见更多 >>>

2、使用图生图控制人物的身体姿势

除了上面介绍的 ControlNet 的各种模型可以用来控制人物的身体姿势外,我们还可以用图生图的方式来控制人物的身体姿势。

下面我们来介绍一下这个流程:

  • 在 WebUI 中选择『图生图(img2img)』栏
  • 在『原图框』中拖入引导图
  • 在『提示词输入框』、『负向提示词输入框』分别填好提示词和负向提示词
  • 在『参数设置面板』调整好参数,这里要注意『重绘幅度(Denoising strength)』的设置会影响新图相对原图的变化程度
  • 点击『产生(Generate)』即可生成新图

这个流程如下图所示:

使用图生图生成姿势一致的新图

最后我们生成的新图如下图所示,姿势与原图基本一致,但是细节上还是有挺大的调整空间:

新图

参考资料

[1]

ZoeDepth: https://www.marktechpost.com/2023/03/03/deep-learning-for-deep-objects-zoedepth-is-an-ai-model-for-multi-domain-depth-estimation/

[2]

ControlNet v1.1: https://github.com/lllyasviel/ControlNet-v1-1-nightly

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 关键帧Keyframe 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、使用 ControlNet 控制人物的身体姿势
    • 1.1、Canny 边缘检测控制姿势
      • 1.2、HED 边缘检测控制姿势
        • 1.3、Depth 深度检测控制姿势
          • 1.4、Normal Map 法线贴图控制姿势
            • 1.5、OpenPose 姿势识别控制姿势
            • 2、使用图生图控制人物的身体姿势
              • 参考资料
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档