ControlNet详细操作

ControlNet Field Notes ControlNet 详细操作:从结构复制到风格迁移 这篇文章基 […]

ControlNet Field Notes

ControlNet 详细操作:从结构复制到风格迁移

这篇文章基于我最近的实操记录,集中整理了三类最常用的 ControlNet:CannyDepthOpenPose。目标不是炫参数,而是给出能直接复现的工作路径。

Canny
Depth
OpenPose
Z-Image
ComfyUI

阅读建议:先看每一节的“用途”和“调参重点”,再对照示例图复现。这样能更快理解每种控制器到底在“锁定什么信息”。

一、Canny ControlNet:锁线条与结构轮廓

Canny 的核心作用是提取边缘信息,适合保留物体的轮廓、硬边和主要纹路。对机械、产品和建筑类图像尤其有效。

我先用 Z-Image 生成一张机甲图,作为结构参考:

机甲原始图
原始图:机甲轮廓和面板线清晰,适合做 Canny 结构提取

接着用 Canny 进行边缘学习,得到可控的结构约束:

Canny边缘提取结果
Canny 阈值示例:0.3 ~ 0.8。阈值越高,保留线条越粗、约束越强。

在保持结构的前提下,我把风格改成紫色工业机甲:

Canny风格迁移后的机甲图
结构基本稳定,风格与色调发生明显变化。

模糊怎么办

优先提高 K 采样器里的 CFG;在不爆显存的前提下,适度提高 steps。

跟随度不够

提高 ControlNet strength(一般不超过 1)。必要时收紧 Canny 阈值区间。


二、Depth ControlNet:保空间与景深关系

Depth 的价值在于“保空间结构”。如果你想换材质、换风格,但不想丢失前后层次和布局,它会比纯提示词稳定得多。

先准备一张有明确空间关系的室内图:

室内原图
原图:前景、中景、背景层次分明

应用 Depth 后,模型会学习这张图的深度分布:

Depth深度图
深度信息提取结果

保持空间关系不变,再把整体风格迁移到中式室内:

Depth风格迁移后的中式室内
风格替换后,空间层次依旧清晰。
  • 空间感不强:先检查深度图是否清晰,再提高 strength 与 steps。
  • 质量不够高:提高分辨率,搭配更合适的采样器和更明确的提示词。
  • 速度太慢:适当降低分辨率或步数,优先做参数区间测试。
  • 布局总是跑偏:确保 end_percent 为 1,并增加空间结构描述。

三、OpenPose ControlNet:锁定人物动作

OpenPose 适合做人像动作复刻。它不直接关心服装和画风,而是先帮你把“姿势骨架”固定下来。

先用 Z-Image 生成晨跑人物:

晨跑人物原图
原始动作参考图

通过 OpenPose 提取姿态骨架:

OpenPose骨架图
动作结构提取结果

如果关闭手部检测(detect_hand = disable),骨架会少掉手部关键点:

关闭手部检测后的骨架图
与完整骨架相比,手部点位被移除

最后保持动作不变,改成二次元场景风格:

动作迁移后的二次元图
动作稳定,风格可自由替换。
总结:ControlNet 的实战思路可以简化为三步:先选控制类型(线条/深度/姿态)→ 再控强度与步数 → 最后做风格迁移。只要控制目标明确,复现率会明显提升。