Pose泰裤辣! 一键提取姿态生成新图像

lxf2023-05-20 01:06:00

本文分享自华为云社区《Pose泰裤辣! 一键提取姿态生成新图像》,作者: Emma_Liu 。

人体姿态骨架生成图像 ControlNet-Human Pose in Stable Diffusion

相关链接:Notebook案例地址: 人体姿态生成图像 ControlNet-Human Pose in Stable Diffusion

AI gallery:developer.huaweicloud.com/develop/aig…

也可通过AI Gallery,搜索【人体姿态生成图像】一键体验!

ControlNet

什么是ControlNet?ControlNet最早是在L.Zhang等人的论文《Adding Conditional Control to Text-to-Image Diffusion Model》中提出的,目的是提高预训练的扩散模型的性能。它引入了一个框架,支持在扩散模型 (如 Stable Diffusion) 上附加额外的多种空间语义条件来控制生成过程。

ControlNet可以复制构图和人体姿势。它解决了生成想要的确切姿势困难的问题。

Human Pose使用OpenPose检测关键点,如头部、肩膀、手的位置等。它适用于复制人类姿势,但不适用于其他细节,如服装、发型和背景。

ControlNet 的工作原理是将可训练的网络模块附加到稳定扩散模型的U-Net (噪声预测器)的各个部分。Stable Diffusion 模型的权重是锁定的,在训练过程中它们是不变的。在训练期间仅修改附加模块。

研究论文中的模型图很好地总结了这一点。最初,附加网络模块的权重全部为零,使新模型能够利用经过训练和锁定的模型。

Pose泰裤辣! 一键提取姿态生成新图像

训练 ControlNet 包括以下步骤:

  1. 克隆扩散模型的预训练参数,如Stable Diffusion的潜在UNet,(称为 “可训练副本”),同时也单独保留预训练的参数(“锁定副本”)。这样做是为了使锁定的参数副本能够保留从大型数据集中学习到的大量知识,而可训练的副本则用于学习特定的任务方面。
  2. 参数的可训练副本和锁定副本通过 "零卷积 "层连接,该层作为ControlNet框架的一部分被优化。这是一个训练技巧,在训练新的条件时,保留冻结模型已经学会的语义。

从图上看,训练ControlNet是这样的:

Pose泰裤辣! 一键提取姿态生成新图像

ControlNet提供了八个扩展,每个扩展都可以对扩散模型进行不同的控制。这些扩展是Canny, Depth, HED, M-LSD, Normal, Openpose, Scribble, and Semantic Segmentation。

ControlNet-Pose2imge适配ModelArts

使用方法

输入一个图像,并提示模型生成一个图像。Openpose将为你检测姿势,从图像提取人体姿态,用姿态信息控制生成具有相同姿态的新图像。

对两张图像分别为进行人体骨骼姿态提取,然后根据输入描述词生成图像,如下图所示:

Pose泰裤辣! 一键提取姿态生成新图像