ComfyUI ControlNet 环境搭建备忘录

0. ComfyUI ControlNet Aux 插件简介

  • 作用comfyui_controlnet_aux 是 ComfyUI 的扩展插件,用来管理和调用各种Controlnet 预处理器模型(Annotators)

  • 位置 :安装后会在 ComfyUI/custom_nodes/comfyui_controlnet_aux/ 下生成目录,其中的 ckpts/ 文件夹专门用来存放预处理器模型。

ckpts= checkpoints

  • 预处理器模型:包括 Canny、OpenPose、Depth Anything、MiDaS、Zoe、Lineart、HED 等,它们负责把输入图像转化为条件图。这些预处理器模型是通用的,不依赖具体的生成模型(SD1.5、SDXL、Flux 都能用)。真正和生成模型绑定的是 ControlNet 主模型。

1.预处理器模型 vs ControlNet 主模型

在 ComfyUI 的 ControlNet 工作流里,常常会遇到两个概念:预处理器模型ControlNet 主模型。它们的区别如下:


预处理器模型(Annotators)

  • 作用:把输入图像(照片、草图等)转换成条件图(如边缘图、深度图、姿势关键点图)。

  • 常见类型:Canny、OpenPose、Depth Anything、MiDaS、Zoe、Lineart、HED 等。

  • 特点

    • 独立的计算机视觉模型,不依赖具体的生成模型。
    • 通用性强:无论你用的是 SD1.5、SDXL,还是 Flux,都可以用同一套预处理器。
  • 存放路径

    复制代码
    ComfyUI/custom_nodes/comfyui_controlnet_aux/ckpts/

ControlNet 主模型

  • 作用:把预处理器生成的条件图,转化为能约束扩散模型的条件(Condition)输入。

  • 常见类型control_v11p_sd15_canny.safetensorscontrolnet-openpose-sdxl-1.0.safetensors 等。

  • 特点

    • 与具体的扩散模型版本绑定(SD1.5、SDXL、Flux 各有专用版本)。
    • 不同主模型对应不同的条件图类型(canny、depth、openpose、scribble 等)。
  • 存放路径

    复制代码
    ComfyUI/models/controlnet/

总结对比

项目 预处理器模型 ControlNet 主模型
功能 生成条件图 将条件图应用到扩散模型
通用性 通用,跨 SD/SDXL/Flux 专属,必须匹配版本
例子 Depth Anything、MiDaS、Zoe control_v11p_sd15_canny、controlnet-depth-sdxl-1.0
路径 custom_nodes/comfyui_controlnet_aux/ckpts/ models/controlnet/

👉 简单来说:预处理器模型负责"分析图像",ControlNet 主模型负责"约束生成"。

预处理器是通用的,而主模型必须和你用的扩散模型版本匹配。

2. Depth、Canny 和 OpenPose 的区别与用途

在 ControlNet 工作流里,这三类主模型是最常见、最实用的,它们分别依赖不同的 预处理器 来生成条件图,再通过 ControlNet 主模型约束扩散生成。

Depth(深度图)

  • 输入条件:由 MiDaS、Zoe、Depth Anything 等预处理器生成的深度图。
  • 作用:保留图像的空间层次和前后关系,让生成结果符合透视和场景结构。
  • 适用场景:建筑、风景、人物场景,尤其需要保持空间感时。

Canny(边缘检测)

  • 输入条件:由 Canny 算法生成的边缘图。
  • 作用:保留图像的轮廓和结构,让生成结果贴合原始图的形状。
  • 适用场景:草图转精细图、照片结构保持、快速约束生成。

OpenPose(姿势关键点)

  • 输入条件:由 OpenPose 预处理器生成的人体关键点图(骨架)。
  • 作用:控制人物的姿势和动作,让生成结果符合指定的骨架结构。
  • 适用场景:人物插画、舞蹈动作、角色设计,尤其需要精确控制姿势时。

✅ 总结:

  • Depth → 控制空间层次。
  • Canny → 控制轮廓结构。
  • OpenPose → 控制人物姿势。

这三类模型覆盖了最常见的生成约束需求,是 ControlNet 工作流里最常用的基础工具。

👉 总结:预处理器模型是 通用的,不绑定 SD/Flux,只负责生成条件图。

3. ControlNet 主模型的区别

不同的 ControlNet 主模型对应不同的输入条件图:

模型 输入条件 用途
scribble 草图线条 涂鸦转精细图
lineart / lineart_anime 线稿 保持线条结构
seg 语义分割图 按区域生成内容
normalbae 法线贴图 控制光照和几何结构
depth 深度图 保持空间层次
mlsd 直线检测图 建筑透视控制
canny 边缘检测图 保持轮廓结构
openpose 姿势关键点 控制人物姿势

👉 总结:ControlNet 主模型必须和 SD 版本匹配(SD1.5 用 sd15 模型,SDXL 用 sdxl 模型,Flux 未来需要专用版本)。

4.ControlNet主模型加载器区别 Load vs DiffLoad ControlNet

  • Load ControlNet Model:加载单个 ControlNet 模型。

  • DiffLoad ControlNet Model:支持多模型或动态切换,适合复杂工作流。

5. 下载与命名

Hugging Face 上的Controlnet主模型的文件通常叫 diffusion_pytorch_model.safetensors

比如https://huggingface.co/lllyasviel/control_v11f1p_sd15_depth/tree/main

圈出的两个分别是Stable Diffusion对应Controlnet主模型的半精度版本和全精度版本。下载后放到ComfyUI目录的 models/controlnet/

模型不改名也能用,但建议改成对应仓库名(如 control_v11p_sd15_depth.safetensors),方便在UI显示辨认和管理。

SDXL 的 ControlNet 模型(如 controlnet-openpose-sdxl-1.0)同样只需下载 .safetensors 文件,放到 models/controlnet/

下载地址:

https://huggingface.co/diffusers/controlnet-depth-sdxl-1.0/tree/main

https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0/tree/main

相关推荐
雪碧聊技术2 天前
图生图与背后的运行逻辑
图生图·comfyui
爱知菜3 天前
ComfyUI秋叶整合包安装JoyCaption
comfyui
雪碧聊技术4 天前
文生图与背后的运行逻辑
文生图·comfyui
极客小云5 天前
【ComfyUI API 自动化利器:comfyui_xy Python 库使用详解】
网络·python·自动化·comfyui
爱知菜5 天前
ComfyUI 自助下载 WD14 Tagger的模型文件
comfyui
jiang_changsheng6 天前
RTX 2080 Ti魔改22GB显卡的最优解ComfyUI教程
python·comfyui
学易6 天前
第十五节.别人的工作流,如何使用和调试(上)?(2类必现报错/缺失节点/缺失模型/思路/实操/通用调试步骤)
人工智能·ai作画·stable diffusion·报错·comfyui·缺失节点
福大大架构师每日一题7 天前
ComfyUI v0.12.2 发布——新增 4B ACE Step 1.5 模型支持,修复多项稳定性问题!
comfyui
jiang_changsheng7 天前
MCP协议的核心架构基础
c语言·开发语言·c++·python·comfyui