Skip to content
帮助 ComfyUI Wiki 移除广告 成为赞助者
系列教程ComfyUI 进阶教程1.3 SD1.5 OpenPose ControlNet

ComfyUI 中如何使用 OpenPose ControlNet SD1.5 模型

SD1.5 OpenPose ControlNet Workflow Img

SD1.5 OpenPose ControlNet 简介

OpenPose ControlNet,是一个专门用于控制图像中人物姿态的 ControlNet 模型。它通过分析输入图像中的人物姿态,帮助 AI 在生成新图像时保持正确的人物姿态。这个模型在人物图像生成、动漫生成、游戏角色生成等情况下都有比较好的效果,因为它能够准确理解和保持人物的姿态。

这篇教程专注于 SD1.5 模型的 OpenPose ControlNet 模型的使用方法和技巧,其它版本和类型的模型的 ControlNet 教程我们会在后续继续补充。

OpenPose ControlNet 使用

OpenPose ControlNet 的使用需要使用 OpenPose 图来来控制人物姿态的控制,然后使用 OpenPose ControlNet 模型来控制生成图像中的人物姿态,对应 OpenPose 图效果如下:

OpenPose 图

和 Depth 图一样,你可以使用 ComfyUI ControlNet Auxiliary Preprocessors 插件来生成 OpenPose 图,如果你不想安装这个插件,也可以使用类似open-pose-editor 这样的在线工具来生成 OpenPose 图用于姿态控制。 这里还是建议非常推荐安装 ComfyUI ControlNet Auxiliary Preprocessors 插件的 ,因为在后续日常的使用中,这个插件功能会被频繁使用。

使用 OpenPose ControlNet 的 Step by Step 教程

1. 升级 ComfyUI

由于本文使用的相关节点是新的 Apply ControlNet 与老的节点有所不同,所以建议你先升级或安装最新版本的 ComfyUI 相关教程你可以参考:

2. 安装必要插件

由于 ComfyUI Core 并不带有对应的 OpenPose 图像预处理器,所以需要预先下载对应的预处理器插件 本教程需要使用ComfyUI ControlNet Auxiliary Preprocessors 插件来生成 OpenPose 图。

这里比较推荐使用 ComfyUI Manager 来进行安装 插件安装的教程可以参考 ComfyUI 插件安装教程 这个部分说得比较详细了

最新版本 ComfyUI Desktop 已经预装 ComfyUI Manager 插件了

3. 下载工作流所需模型

首先需要安装以下模型:

模型类型模型文件下载地址
SD1.5 基础模型dreamshaper_8.safetensorsCivitai
OpenPose ControlNet 模型control_v11f1p_sd15_openpose.pth(必须)Hugging Face

4. 模型存放位置

请按照以下结构放置模型文件:

📁ComfyUI
├── 📁models
│   ├── 📁checkpoints
│   │   └── 📁SD1.5
│   │       └── dreamshaper_8.safetensors
│   ├── 📁controlnet
│   │   └── 📁SD1.5
│   │       └── control_v11f1p_sd15_openpose.pth
💡

由于 SD 版本和 controlnet 是有版本对应关系的,所以我在这里命名增加了一层SD1.5文件夹方便后续的模型管理

安装完成后刷新或者重启 ComfyUI 让程序读取对应的模型文件

5. 工作流文件

这里提供了两个工作流文件

使用 OpenPose 图和 ControlNet 模型来进行图片生成

下载上面的工作流,在运行 ComfyUI 后将工作流拖入或者使用 ComfyUI 的快捷键Ctrl+O 打开这个工作流文件

请下载下面的图片,并在 Load Image 节点中载入使用 OpenPose ControlNet Img

SD1.5 OpenPose ControlNet Workflow Img

  1. 1 Load Image 节点中载入参考图片
  2. 2 Load Checkpoint 节点中选择你安装的模型
  3. 3 Apply ControlNet 节点中选择control_v11f1p_sd15_openpose.pth 模型。
  4. 使用 Queue 或者快捷键 Ctrl+Enter 运行工作流进行图片生成

使用ComfyUI ControlNet Auxiliary Preprocessors 对参考图片进行预处理

和上面一个工作流有所差异,在有些情况下我们并不一定有现成的 OpenPose 图,那么就需要使用 ComfyUI ControlNet Auxiliary Preprocessors 插件来对参考图片进行预处理,然后使用处理后的图片作为输入图片与 ControlNet 模型一起使用

下载上面的工作流,在运行 ComfyUI 后将工作流拖入或者使用 ComfyUI 的快捷键Ctrl+O 打开这个工作流文件

请下载下面的图片,并在 Load Image 节点中载入使用 OpenPose ControlNet input

SD1.5 OpenPose ControlNet Workflow Img

  1. 1 Load Image 节点中载入输入图片
  2. 2 Load Checkpoint 节点中选择你安装的模型
  3. 3 Apply ControlNet 节点中选择control_v11f1p_sd15_openpose.pth 模型。
  4. 使用 Queue 或者快捷键 Ctrl+Enter 运行工作流进行图片生成

5.1 涉及的主要节点说明

ComfyUI Core 节点,核心节点文档在当前网站文档已有对应说明

  1. 应用ControlNet节点: Apply ControlNet
  2. 加载 ControlNet 模型: ControlNet Loader

5.2 ComfyUI ControlNet Auxiliary Preprocessors 节点

关于 Pose 检测的节点,这里提供了两种不同的节点,分别是 OpenPose Pose 节点和 DWPose Estimator 节点他们的作用都是从图像中提取手部、身体、面部姿态信息并生成骨架图

DWPose Estimator 节点是基于 DWPose 的姿态检测算法,OpenPose Pose 节点是基于 OpenPose 的姿态检测算法,在我提供的工作流中我是用的是 OpenPose Pose 节点,你可以在运行成功后试试 DWPose Estimator 节点,看看差异

OpenPose Pose 节点

OpenPose Pose 节点

OpenPose Pose

输入参数描述参数选项
images输入图像-
detect_hand是否检测手部enable / disable
detect_face是否检测面部enable / disable
detect_body是否检测身体enable / disable
resolution输出图像的分辨率-
输出参数描述参数选项
image从图像处理后输出的图像-
POSE_KEYPOINT骨架点-

DWPose Estimator 节点

DWPose Estimator

输入参数描述参数选项
images输入图像-
detect_hand是否检测手部enable / disable
detect_face是否检测面部enable / disable
detect_body是否检测身体enable / disable
resolution输出图像的分辨率-
bbox-detector是否检测人体框在图像中的文职enable / disable
pose_estimatorpose 检测的不同方法-
输出参数描述参数选项
image从图像处理后输出的图像-
POSE_KEYPOINT骨架点-

相关资源