首页 教程 ComfyUI保姆级零基础教程 单 ControlNet 工作流搭建
Tutorial Lesson

单 ControlNet 工作流搭建

ComfyUI保姆级零基础教程 51 浏览 2026-07-08 更新 免费阅读

一、所需组件

组件

节点/文件

基模

Load Checkpoint(SD1.5 或 SDXL)

ControlNet 权重

models/controlnet/*.safetensors

参考图

Load Image

预处理器

AIO Preprocessor / ControlNet Preprocessor 类

应用

ControlNet Apply Advanced(或 Apply ControlNet)

依赖:ComfyUI 内置 ControlNet 支持 + 常装 comfyui_controlnet_aux(Manager 搜 ControlNet Aux)。


二、在文生图基础上扩展

保留 3-1 的:

插入 ControlNet 到 MODEL(或 conditioning)链


三、搭建步骤(OpenPose 示例)

步骤 1:Load ControlNet Model

  1. 添加 Load ControlNet ModelControlNetLoader);

  2. 选择 与 Checkpoint 同代 的 OpenPose 模型,如:

    • SDXL:controlnet-openpose-sdxl-xxx.safetensors

    • SD1.5:control_v11p_sd15_openpose.pth

步骤 2:Load Image(姿势参考)

  1. Load Image人物参考图(姿势来源);

  2. 输出 IMAGE。

步骤 3:预处理器

  1. 添加 OpenPose Preprocessor(或 AIO Preprocessor 选 openpose);

  2. 参考图 IMAGE → preprocessor → 条件 IMAGE

  3. (可选)preprocessor 输出 预览骨架 到 Preview Image,确认检测成功。

若检测不到人:换全身清晰图;试 DWPose;检查 preprocessor 参数。

步骤 4:Apply ControlNet

添加 Apply ControlNetControlNet Apply Advanced

典型连线

Apply 输入

来自

conditioning

CLIP Text Encode 正向(部分节点接 positive 链)

control_net

Load ControlNet Model

image

预处理器输出的条件图

model

Checkpoint MODEL(视节点版本,有的在 model 链)

注意:ComfyUI 不同版本节点名略有差异:

  • 旧:ControlNetApply

  • 新:ControlNetApplyAdvanced 分离 positive/negative
    以你界面搜索到的为准,对照社区 SDXL OpenPose JSON 最稳。

常见 SDXL 链(概念)

MODEL → ControlNetApplyAdvanced → KSampler (model)
positive COND → ControlNetApplyAdvanced → KSampler (positive)

步骤 5:Prompt

描述 你想要的服装、场景、风格不必重复姿势(OpenPose 已约束):

正向:1girl, red dress, outdoor cafe, sunny, masterpiece, best quality
负向:bad anatomy, bad hands, blurry, ...

步骤 6:KSampler 参数

参数

建议

steps

25–30

cfg

SDXL 5–7

ControlNet strength

0.75–0.9(Apply 节点上)

start_percent

0

end_percent

0.8–1.0

步骤 7:Queue 验证

对比 无 ControlNet 同 Prompt,姿势应更接近参考图。


四、Canny 工作流差异

步骤

OpenPose

Canny

预处理器

OpenPose

Canny Edge

参考图

人物照

任意需保留轮廓的图

strength

0.75–0.9

0.5–0.75(过高易描边感)

Prompt

人物+场景

风格+内容

其余 Load ControlNet、Apply 结构 相同,只换 模型文件 + 预处理器


五、start_percent 与 end_percent

设置

效果

0 → 1.0

全程 ControlNet

0 → 0.5

前半定结构,后半自由细节

0.2 → 0.8

中间段最强

试法:姿势对但脸僵 → 略降 strength 或 缩短 end_percent


六、完整 ASCII 示意

[Load Image 参考] → [OpenPose Pre] → 条件图 ──┐
                                              ↓
[Load ControlNet OpenPose] ─────────→ [Apply CN] ← positive COND
                                              ↓
[Checkpoint MODEL] ─────────────────→ [Apply CN] → MODEL' → [KSampler]
[Empty Latent] ───────────────────────────────────────────→ [KSampler]
[CLIP ±] → COND ─────────────────────────────────────────→ [KSampler]
[KSampler] → [VAE Decode] → [Save]

七、检查清单

  • ControlNet 与 Checkpoint 同 SD1.5/SDXL

  • 预处理器有输出(骨架/边缘预览正常)

  • Apply 节点无红框

  • strength 不是 0

  • Prompt 与参考不冲突(如 OpenPose 是站姿,Prompt 勿写 sitting)


八、常见问题

问题

处理

骨架预览空

无人/被裁切 → 换图;换 DWPose

完全不像参考姿势

提高 strength;检查 Apply 是否接到 COND/MODEL

画面僵硬

降 strength;缩短 end_percent

红节点

装 ControlNet Aux;Manager 装缺失节点

SD1.5 CN 用于 SDXL

换 SDXL 专用 ControlNet 文件

推荐教程

继续学习相关章节