ControlNet 完全精通:从基础原理到 Flux & Turbo 最新方案
ControlNet 是一种神经网络架构,通过添加额外控制条件来约束扩散模型。提示词负责告诉 AI 画什么,而 ControlNet 负责告诉 AI 在哪里画、怎么画。
1. 核心概念:空间控制 vs 语义控制
普通提示词(CLIP)提供的是语义控制,负责图像的“内容与含义”。 ControlNet 提供的是空间控制,负责图像的结构、深度、姿态与边界。
在工作流中的工作原理
ControlNet 位于正面提示条件与采样器之间。 在去噪过程中,它会向模型的 UNet 或 Transformer 模块“注入”结构信息。
| 组件 | 作用 |
|---|---|
| 预处理器(Preprocessor) | 将原图转换成控制图(如边缘检测、深度图) |
| ControlNet 模型 | 负责理解并应用控制图的权重文件 |
| Conditioning | 最终发送给 KSampler 的控制数据 |
2. 必备 ControlNet 类型
使用 ControlNet 必须遵守一条原则: 预处理器 必须与 ControlNet 模型匹配。
- Canny/Lineart(边缘/线稿) 提取轮廓,最适合严格保留剪影与结构。
- Depth(深度) 生成深度图,控制3D 空间、透视、前后关系。
- SoftEdge/HED(软边缘) 更柔和的边缘检测,给 AI 更多纹理与风格自由度。
- OpenPose(姿态) 提取人体骨骼关键点,用于精准控制角色姿势。
- IP-Adapter(常与 ControlNet 一起使用) 用参考图作为视觉提示,而非空间结构控制。
3. 关键参数精通
在 ComfyUI 的 ControlNet Apply 节点中,三个滑块决定最终效果:
- Strength(控制强度)
控制 ControlNet 的影响力。
专业技巧:
1.0是标准值,但0.6–0.8通常画面更自然。 - Start Percent(开始百分比)
控制从第几步开始生效。
设为
0.0表示从第一步就固定整体结构。 - End Percent(结束百分比)
控制在第几步停止约束。
设为
0.7可以让 AI 在最后 30% 步骤自由补充细节、优化画质。
4. 最新模型适配:Flux & Turbo
现代模型如 Flux.1、Turbo/Lightning 与旧版 SD1.5/SDXL 用法完全不同。
Flux.1 ControlNet(新一代标准)
Flux 使用 DiT(Diffusion Transformer) 架构。 对应的 ControlNet(如 X-Labs、InstantX 出品)更大、精度更高。
- Union ControlNet(一体化模型) 一个模型即可支持 Depth、Canny、Blur 等多种控制。
- Guidance Scale
Flux 对引导值非常敏感。使用 ControlNet 时建议保持在
3.5–4.0,避免颜色过饱和、画面僵硬。
Z-Image-Turbo & Lightning
极速模型(Turbo / LCM / Lightning)只需要 1–8 步生成。
- 问题:标准 ControlNet 对 4 步生成来说“太重”。
- 解决:把 ControlNet 强度降到 0.4–0.6。 步数太少,高强度会导致画面扁平、对比度过高。
5. ComfyUI 高级工作流逻辑
专业级 ControlNet 流程建议按以下顺序搭建:
- Image Load:加载参考图
- Preprocessor Node:预处理(如 Canny Edge Detector)
- ControlNet Loader:加载对应模型(如 flux-canny-controlnet-v1)
- ControlNet Apply:将正面提示词连接到 Conditioning
- KSampler:将处理后的条件输入采样器
6. 高质量出图总结清单
- 分辨率匹配:ControlNet 图与隐空间图像的比例必须一致
- 不要过度约束:同时使用 3 个及以上 ControlNet 容易导致画面僵硬、细节爆炸,建议只用 1–2 个
- 检查预处理图:一定要预览预处理器输出。如果边缘图杂乱,最终图像也会杂乱