模板概述
工作流结构
节点流程图(Mermaid)
graph TD
A[CheckpointLoaderSimple] -->|MODEL| B[KSampler]
A -->|CLIP| C[CLIPTextEncode]
A -->|CLIP| D[CLIPTextEncode]
A -->|VAE| E[VAEDecode]
C -->|CONDITIONING| F[ControlNetApply]
D -->|CONDITIONING| B
G[ControlNetLoader] -->|CONTROL_NET| F
H[LoadImage] -->|IMAGE| F
F -->|CONDITIONING| B
I[EmptyLatentImage] -->|LATENT| B
B -->|LATENT| E
E -->|IMAGE| J[SaveImage]
style A fill:#e1f5ff
style B fill:#fff4e1
style C fill:#ffe1f5
style D fill:#ffe1f5
style E fill:#e1ffe1
style F fill:#ffe1f5
style G fill:#e1f5ff
style H fill:#e1ffe1
style I fill:#e1ffe1
style J fill:#ffe1e1
ControlNet控制流程
graph LR
A[提示词] --> B[ControlNet]
B --> C[控制采样]
C --> D[受控生成]
style A fill:#e1ffe1
style B fill:#fff4e1
style C fill:#fff4e1
style D fill:#fff4e1
节点配置
1. CheckpointLoaderSimple
{
"inputs": {
"ckpt_name": "v1-5-pruned-emaonly.ckpt"
},
"class_type": "CheckpointLoaderSimple"
}
2. ControlNetLoader
{
"inputs": {
"control_net_name": "control_v11p_sd15_canny.safetensors"
},
"class_type": "ControlNetLoader"
}
3. LoadImage
{
"inputs": {
"image": "control_image.png"
},
"class_type": "LoadImage"
}
4. CLIPTextEncode (正向)
{
"inputs": {
"text": "beautiful woman, detailed, high quality",
"clip": ["1", 1]
},
"class_type": "CLIPTextEncode"
}
5. CLIPTextEncode (负向)
{
"inputs": {
"text": "ugly, blurry, low quality",
"clip": ["1", 1]
},
"class_type": "CLIPTextEncode"
}
6. ControlNetApply
{
"inputs": {
"strength": 1.0,
"condition": ["4", 0],
"control_net": ["2", 0],
"image": ["3", 0]
},
"class_type": "ControlNetApply"
}
7. EmptyLatentImage
{
"inputs": {
"width": 512,
"height": 512,
"batch_size": 1
},
"class_type": "EmptyLatentImage"
}
8. KSampler
{
"inputs": {
"seed": 123456789,
"steps": 25,
"cfg": 7.5,
"sampler_name": "euler",
"scheduler": "normal",
"denoise": 1.0,
"model": ["1", 0],
"positive": ["6", 0],
"negative": ["5", 0],
"latent_image": ["7", 0]
},
"class_type": "KSampler"
}
9. VAEDecode
{
"inputs": {
"samples": ["8", 0],
"vae": ["1", 2]
},
"class_type": "VAEDecode"
}
10. SaveImage
{
"inputs": {
"filename_prefix": "controlnet_",
"images": ["9", 0]
},
"class_type": "SaveImage"
}
完整工作流JSON
{
"1": {
"inputs": {
"ckpt_name": "v1-5-pruned-emaonly.ckpt"
},
"class_type": "CheckpointLoaderSimple"
},
"2": {
"inputs": {
"control_net_name": "control_v11p_sd15_canny.safetensors"
},
"class_type": "ControlNetLoader"
},
"3": {
"inputs": {
"image": "control_image.png"
},
"class_type": "LoadImage"
},
"4": {
"inputs": {
"text": "beautiful woman, detailed, high quality",
"clip": ["1", 1]
},
"class_type": "CLIPTextEncode"
},
"5": {
"inputs": {
"text": "ugly, blurry, low quality",
"clip": ["1", 1]
},
"class_type": "CLIPTextEncode"
},
"6": {
"inputs": {
"strength": 1.0,
"condition": ["4", 0],
"control_net": ["2", 0],
"image": ["3", 0]
},
"class_type": "ControlNetApply"
},
"7": {
"inputs": {
"width": 512,
"height": 512,
"batch_size": 1
},
"class_type": "EmptyLatentImage"
},
"8": {
"inputs": {
"seed": 123456789,
"steps": 25,
"cfg": 7.5,
"sampler_name": "euler",
"scheduler": "normal",
"denoise": 1.0,
"model": ["1", 0],
"positive": ["6", 0],
"negative": ["5", 0],
"latent_image": ["7", 0]
},
"class_type": "KSampler"
},
"9": {
"inputs": {
"samples": ["8", 0],
"vae": ["1", 2]
},
"class_type": "VAEDecode"
},
"10": {
"inputs": {
"filename_prefix": "controlnet_",
"images": ["9", 0]
},
"class_type": "SaveImage"
}
}
ControlNet类型
类型对比
graph TD
A[ControlNet] --> B[Canny]
A --> C[Depth]
A --> D[OpenPose]
A --> E[Segmentation]
B --> B1[边缘控制]
C --> C1[深度控制]
D --> D1[姿态控制]
E --> E1[分割控制]
style A fill:#e1f5ff
style B fill:#fff4e1
style C fill:#ffe1f5
style D fill:#e1ffe1
style E fill:#ffe1e1
参数说明
Strength设置
graph TD
A[Strength] --> B[0.3-0.5]
A --> C[0.5-0.8]
A --> D[0.8-1.0]
A --> E[1.0-1.5]
B --> B1[轻微控制]
C --> C1[标准控制]
D --> D1[强控制]
E --> E1[非常强]
style A fill:#e1f5ff
style B fill:#fff4e1
style C fill:#ffe1f5
style D fill:#e1ffe1
style E fill:#ffe1e1
使用步骤
ControlNet控制流程
graph LR
A[准备控制图像] --> B[加载ControlNet]
B --> C[设置提示词]
C --> D[执行生成]
D --> E[查看结果]
style A fill:#e1ffe1
style B fill:#fff4e1
style C fill:#fff4e1
style D fill:#fff4e1
style E fill:#fff4e1
示例结果
示例1: 姿态控制
- ControlNet: OpenPose
- 控制图像: 姿态骨架图
- 提示词: beautiful woman, detailed
- strength: 0.8
- 结果: 按指定姿态生成的图像
示例2: 边缘控制
- ControlNet: Canny
- 控制图像: 边缘检测图
- 提示词: landscape, mountains, sunset
- strength: 1.0
- 结果: 保持边缘结构的图像
常见问题
Q1: ControlNet strength设置多少?
A: 从0.8开始,根据效果调整,通常0.5-1.0。
Q2: 如何选择ControlNet类型?
A: 根据控制需求,姿态用OpenPose,结构用Canny。
Q3: 控制图像如何准备?
A: 使用相应的预处理方法,Canny用边缘检测。
Q4: 可以使用多个ControlNet吗?
A: 可以,串联多个ControlNetApply节点。
Q5: ControlNet效果不明显?
A: 增加strength值,改进控制图像。
相关模板
更新日志
- 2026-01-26: 初始版本创建