ControlNet 基础原理

ControlNet 是一种通过额外条件控制扩散模型生成结果的技术,其核心是在 Stable Diffusion 的 U-Net 结构上附加可训练的“控制模块”。这些模块能够解析输入的控制信号(如边缘图、深度图、人体姿态等),并将信息注入原始模型,实现生成内容与条件的强关联。

模型选择策略

1. 基础模型匹配

  • 通用场景:推荐 Stable Diffusion 1.52.1,兼容性最佳,插件生态完善。
  • 特定风格:若需二次元风格,可搭配 Anything-V5;写实风格选择 RealESRGANProtogen
  • 新版优化:SDXL 1.0 对 ControlNet 支持逐渐完善,适合高分辨率需求,但需更高显存。

2. ControlNet 预训练权重

  • canny:边缘检测控制,适合线稿上色或结构保留生成。
  • depth:深度图控制,增强空间层次感。
  • openpose:人体姿态控制,适合角色动作设计。
  • scribble:涂鸦控制,允许自由手绘输入。

提示词搭配技巧

1. 条件与提示词协同

  • 明确控制信号类型:若使用 canny 边缘图,提示词需包含“detailed edges”“clean line art”等强调结构的词汇。
  • 平衡控制强度:在 ControlNet 设置中调整 weight(默认 1.0)和 guidance_start/end,避免过度压制生成自由度。

2. 风格引导公式
通用模板:

[控制对象描述] + [风格关键词] + [细节修饰]  

示例:

portrait of a warrior, canny edges, dark fantasy style, intricate armor, glowing runes, highly detailed, trending on ArtStation  

3. 负面提示词优化

  • 排除与控制信号冲突的内容:如使用 depth 时,添加“flat lighting”“lack of depth”到负面提示。
  • 通用负面词:blurry, deformed, extra limbs, lowres

参数调优实践

ControlNet 参数组

  • Preprocessor:选择与输入条件匹配的预处理(如 hedcanny 保留更多细节)。
  • Resolution:建议与基础模型分辨率一致(如 512x512)。
  • Threshold:调整二值化敏感度(仅适用于 canny 等需阈值的方法)。

生成参数组

  • CFG Scale:通常 7-12,过高会导致控制信号僵硬。
  • Denoising Strength:0.4-0.7 平衡条件影响与创造性。

高级工作流示例

线稿上色流程

  1. 输入黑白线稿,启用 cannylineart 控制。
  2. 提示词:colorful cyberpunk character, neon lighting, vibrant palette, 4k
  3. 参数:weight=0.8, guidance_start=0.1, guidance_end=0.8

深度图转3D场景

  1. 使用 MiDaS 生成深度图,加载 depth 控制。
  2. 提示词:mystical forest, volumetric fog, sun rays, unreal engine 5
  3. 参数:preprocessor_depth_estimate, resolution=768x512

常见问题解决

  • 控制失效:检查预处理是否成功生成条件图,或尝试降低 weight
  • 艺术性不足:增加风格类提示词权重(如 (impressionist painting:1.2))。
  • 显存不足:降低分辨率或使用 --medvram 启动参数。

通过合理组合模型、提示词及参数,ControlNet 能实现从精准复现到创意发散的全范围控制。实验时建议保存不同参数组合的生成结果,逐步建立个性化配置库。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐