ControlNet 完全精通:从基础原理到 Flux & Turbo 最新方案

ControlNet 是一种神经网络架构,通过添加额外控制条件来约束扩散模型。提示词负责告诉 AI 画什么,而 ControlNet 负责告诉 AI 在哪里画、怎么画


1. 核心概念:空间控制 vs 语义控制

普通提示词(CLIP)提供的是语义控制,负责图像的“内容与含义”。 ControlNet 提供的是空间控制,负责图像的结构、深度、姿态与边界。

在工作流中的工作原理

ControlNet 位于正面提示条件采样器之间。 在去噪过程中,它会向模型的 UNet 或 Transformer 模块“注入”结构信息。

组件作用
预处理器(Preprocessor)将原图转换成控制图(如边缘检测、深度图)
ControlNet 模型负责理解并应用控制图的权重文件
Conditioning最终发送给 KSampler 的控制数据

2. 必备 ControlNet 类型

使用 ControlNet 必须遵守一条原则: 预处理器 必须与 ControlNet 模型匹配

  1. Canny/Lineart(边缘/线稿) 提取轮廓,最适合严格保留剪影与结构
  2. Depth(深度) 生成深度图,控制3D 空间、透视、前后关系
  3. SoftEdge/HED(软边缘) 更柔和的边缘检测,给 AI 更多纹理与风格自由度
  4. OpenPose(姿态) 提取人体骨骼关键点,用于精准控制角色姿势
  5. 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.1Turbo/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 流程建议按以下顺序搭建:

  1. Image Load:加载参考图
  2. Preprocessor Node:预处理(如 Canny Edge Detector)
  3. ControlNet Loader:加载对应模型(如 flux-canny-controlnet-v1)
  4. ControlNet Apply:将正面提示词连接到 Conditioning
  5. KSampler:将处理后的条件输入采样器

6. 高质量出图总结清单

  • 分辨率匹配:ControlNet 图与隐空间图像的比例必须一致
  • 不要过度约束:同时使用 3 个及以上 ControlNet 容易导致画面僵硬、细节爆炸,建议只用 1–2 个
  • 检查预处理图:一定要预览预处理器输出。如果边缘图杂乱,最终图像也会杂乱