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

相关推荐
wj30558537811 天前
课程 1:WSL + uv + ComfyUI 环境选择说明
python·wsl·cuda·uv·comfyui
wj30558537811 天前
课程 2:使用 uv 安装 ComfyUI
python·uv·comfyui
wj30558537812 天前
课程 9:模型测试记录与 Prompt 策略
linux·人工智能·python·comfyui
雪狼之夜13 天前
comfyui安装(非整合包,直装)-图文教程
comfyui
wj30558537814 天前
课程 5:将官方 LTX-2.3 工作流改造成 GGUF 主模型工作流
python·cuda·comfyui
love530love15 天前
ComfyUI:为什么说它是 AIGC 应用层面的集大成者?
人工智能·pytorch·windows·aigc·devops·comfyui·extensions
love530love16 天前
ComfyUI MediaPipe 猴子补丁终极完善版:补全上下文管理与姿态检测兼容
人工智能·windows·python·comfyui·protobuf·mediapipe
淡海水16 天前
ComfyUI全面掌握-知识点详解——基础示例:文生图与图生图实操(参数+案例)
大数据·人工智能·算法·comfyui
福大大架构师每日一题16 天前
ComfyUI v0.21.0 更新解读:视频音频同步加载、PyAV 图像引擎切换、动态显存优化、云端与工作流能力全面升级
音视频·comfyui
YJlio1 个月前
OpenClaw v2026.4.5 更新解析:视频/音乐生成、ComfyUI 工作流、多语言控制台、Memory Dreaming 与升级避坑
memory·自动化运维·comfyui·视频生成·版本更新·ai agent·openclaw