教程 ComfyUI 教程

ControlNet 园林空间控制实战:从草图到效果图

ControlNet 园林空间控制实战:从草图到效果图

ControlNet 园林空间控制实战:从草图到效果图

艮岳网 · 高级教程

精准控制空间结构,让 AI 成为你的设计助手


一、ControlNet 核心概念

1.1 什么是 ControlNet?

ControlNet 是 Stanford 研究者提出的条件控制技术,它允许在 Stable Diffusion 图像生成过程中引入额外的空间控制条件,使生成的图像在保持创意的同时,遵循特定的结构约束。

核心原理

┌─────────────────────────────────────────────────────┐
│                   ControlNet 架构                    │
├─────────────────────────────────────────────────────┤
│                                                     │
│  控制图像 ──▶ 预处理器 ──▶ ControlNet 模型 ──┐      │
│    (深度图/线稿)          (提取控制特征)      │      │
│                                             ▼      │
│  文本提示词 ──▶ UNet 主模型 ◀─── 控制特征注入      │
│                    │                               │
│                    ▼                               │
│               生成结果                              │
│                                                     │
└─────────────────────────────────────────────────────┘

1.2 ControlNet 在园林设计中的价值

设计阶段 传统痛点 ControlNet 解决方案
概念草图 手绘难以表达材质氛围 草图 → 多风格效果图
方案深化 CAD 图缺乏视觉感染力 CAD → 照片级渲染
现状分析 照片风格不统一 照片 → 统一风格意向图
历史复原 缺乏可视化依据 文献图 → 场景复原

二、深度控制(Depth ControlNet)

2.1 深度图原理

深度图(Depth Map)是一张灰度图像,使用亮度表示距离:

白色 (255) ────── 距离近(前景)
    │
灰色 (128) ────── 中距离
    │
黑色 (0) ──────── 距离远(背景)

在园林设计中,深度图可以:

  • 保持地形高差关系
  • 维持构筑物前后层次
  • 控制水体与驳岸的边界
  • 确保植物种植的空间层次

2.2 Depth 工作流配置

基础节点链

[参考图像] ──▶ Load Image 
                   │
                   ▼
         Zoe-DepthMapPreprocessor ──▶ Preview Image (预览深度)
                   │
                   ▼
         ControlNet Loader (control_v11f1p_sd15_depth)
                   │
                   ▼
         Apply ControlNet ──▶ KSampler
                   │               │
         [Strength: 0.8-1.0]       │
                                   ▼
                            CLIP Text Encode (风格提示词)

参数详解

参数 作用 园林设计建议值
Preprocessor 生成深度图算法 Zoe-Depth(推荐)<br>MiDaS(经典)<br>Depth Anything(最新)
Resolution 预处理器分辨率 与输入图一致或 512-768
Strength 控制强度 0.8-1.0(空间结构需强控制)
End Percent 控制结束步数 0.8-1.0(全程控制)

2.3 实战:保持现有场地结构进行改造设计

场景:某校园广场改造,需保持现有硬质铺装边界,重新设计绿化与小品。

操作步骤

  1. 获取现状深度图

    现状照片 ──▶ Load Image ──▶ Zoe-DepthPreprocessor
  2. 编写改造提示词

    masterpiece, best quality, photorealistic,
    campus plaza renovation,
    existing paved area preserved,
    new planting beds with ornamental grasses,
    modern benches, LED pathway lighting,
    students walking, green atmosphere,
    architectural photography, golden hour lighting,
    8k, highly detailed
  3. 配置 ControlNet

    • 加载 control_v11f1p_sd15_depth_fp16.safetensors
    • Strength: 0.9(强控制保留场地结构)
    • End percent: 1.0(全程控制)
  4. 生成与迭代

    • 检查生成结果是否保持原有空间关系
    • 调整提示词改变材质、植物风格
    • 使用 Inpainting 局部调整不满意区域

2.4 深度控制技巧

技巧 1:深度图预处理优化

使用图像编辑软件预先调整深度图:

  • 增强前景/背景对比度 → 强化空间层次
  • 模糊处理 → 弱化某些区域的控制
  • 局部遮罩 → 允许某些区域自由生成

技巧 2:多分辨率深度控制

低分辨率深度 (全局结构)
    + 组合
高分辨率深度 (局部细节)
    ↓
分层控制

三、线稿控制(Lineart / Canny / MLSD)

3.1 线稿控制类型选择

类型 特点 适用场景
Canny 边缘检测,包含所有轮廓 照片转线稿、复杂场景
Lineart 艺术化线条,更简洁 手绘草图、效果图
MLSD 只检测直线 建筑、硬景、规则式园林
Scribble 涂鸦风格,自由度高 概念草图、快速表达

3.2 Lineart 工作流:手绘草图转效果图

完整工作流

手绘草图扫描 ──▶ Load Image ──▶ Lineart Preprocessor ──┐
                                                         │
                                                         ▼
Load Checkpoint ──▶ CLIP Text Encode ───────────▶ Apply ControlNet ──▶ KSampler
       │                                               │
       │                                          [Strength: 0.8]
       │                                               │
       └───────────────────────────────────────────────┘

手绘草图准备指南

  1. 构图比例:与目标效果图一致(如 3:4、16:9)
  2. 线条清晰:主要构筑物轮廓明确
  3. 层次表达:用线条粗细区分前后关系
  4. 扫描设置:300dpi 以上,黑白模式或灰度

提示词配合技巧

基础结构(配合线稿控制):
traditional Chinese garden layout,
courtyard with central pond,
winding covered corridor,
scholar's rocks arrangement

材质氛围(AI 自由发挥):
wooden structure, grey tiles,
lush bamboo, blooming lotus,
early morning mist,
Morandi color palette

3.3 MLSD 工作流:建筑与硬景控制

MLSD(Mobile Line Segment Detector)专门检测直线段,适合建筑、园路、广场等规则元素。

应用场景

  • 建筑立面改造
  • 规则式园林设计
  • 广场铺装设计
  • 景墙、廊架设计

参数设置

MLSD Preprocessor:
- value_threshold: 0.1 (越低检测越多线条)
- distance_threshold: 0.1 (线段合并阈值)

Apply ControlNet:
- Strength: 1.0 (直线需要强控制)
- End percent: 1.0

3.4 实战:CAD 平面图转鸟瞰效果图

步骤 1:CAD 导出

CAD 平面图
├── 线宽设置:构筑物 0.5mm,道路 0.3mm,绿化 0.1mm
├── 导出格式:PNG 或 JPG
├── 分辨率:2048px 宽度以上
└── 背景:白色

步骤 2:ComfyUI 处理

CAD 图 ──▶ Load Image ──▶ Canny Edge (low_threshold=50, high_threshold=200)
                                    │
                                    ▼
                            Preview Image (检查边缘)
                                    │
                                    ▼
                            ControlNet Apply (Lineart 模型)
                                    │
                                    ▼
                            结合提示词生成鸟瞰图

提示词示例

bird's eye view, aerial perspective,
master plan visualization,
traditional Chinese garden layout,
water features, rock formations,
tree groves, winding pathways,
pavilions and corridors,
landscape architecture rendering,
soft pastel tones, Morandi palette,
architectural illustration style,
high detail, 8k

四、语义分割(Segmentation ControlNet)

4.1 语义分割原理

语义分割将图像中的每个像素分类到预定义的类别(如天空、树木、建筑、水体等),用颜色编码表示。

ADE20K 分割类别(园林设计相关)

颜色 类别 园林应用
🟢 深绿 树 (tree) 乔木层
🟩 浅绿 植物 (plant) 灌木、地被
🔵 蓝色 水 (water) 水体、喷泉
⬜ 灰色 建筑 (building) 亭台楼阁
🟫 棕色 土/石 (dirt/rock) 地形、置石
⬛ 深灰 铺装 (pavement) 园路、广场
🟨 黄色 家具 (furniture) 座椅、灯具

4.2 Segmentation 工作流配置

语义分割图 ──▶ Load Image ──▶ Segmentation Preprocessor ──┐
                                                           │
                                                           ▼
ControlNet Loader (control_v11p_sd15_seg) ───▶ Apply ControlNet ──▶ KSampler
                                                 │
                                            [Strength: 0.7-0.9]

4.3 实战:精确控制植物类型分布

场景:设计一个古典园林,需要精确控制:

  • 前景:竹丛
  • 中景:松树
  • 背景:远山

创建语义分割图

使用绘图软件(Photoshop/GIMP)创建彩色分区图:

┌────────────────────────────────┐
│     🏔️ 远山 (浅紫 - 天空/山)    │  ← 顶部 30%
├────────────────────────────────┤
│     🌲 松树 (深绿 - 树)        │  ← 中部 40%
├────────────────────────────────┤
│  🎋 竹丛 (浅绿 - 植物)         │  ← 底部 30%
│     + 亭台 (灰色 - 建筑)       │
└────────────────────────────────┘

编写对应提示词

[全局]
masterpiece, best quality, traditional Chinese garden,
serene atmosphere, morning mist,
Morandi color palette,

[前景 - 竹丛区域]
bamboo grove, lush green bamboo,
dappled sunlight through leaves,

[中景 - 松树区域]
ancient pine trees, gnarled branches,
scholar's rocks at base,

[背景 - 远山区域]
distant mountains, misty peaks,
soft atmospheric perspective

生成结果分析

  • ✅ AI 会按照颜色分区放置对应元素
  • ✅ 植物类型与位置精确可控
  • ⚠️ 需要注意分区边缘的自然过渡

4.4 分割控制高级技巧

技巧:软边界处理

硬边界的分割图会导致生硬的过渡:

优化前:颜色区块之间硬切
优化后:颜色区块边缘添加 10-20px 模糊过渡

技巧:权重分层控制

使用多个 Apply ControlNet 节点,对不同区域应用不同强度:

Segmentation 1 (前景植物): Strength 0.9
Segmentation 2 (背景建筑): Strength 0.7

五、多 ControlNet 组合使用

5.1 组合策略

组合方案 应用场景 效果
Depth + Lineart 保持空间 + 控制轮廓 高保真还原
Depth + Segmentation 空间 + 元素类型 结构+内容双控
Lineart + Segmentation 轮廓 + 元素分类 创意+分类
Canny + Depth 边缘 + 空间层次 照片风格迁移

5.2 工作流:Depth + Lineart 双控

参考照片 ──▶ Load Image ──┬──▶ Zoe-DepthPreprocessor ──┐
                          │                             │
                          └──▶ LineartPreprocessor ─────┼──▶ Dual ControlNet
                                                          │
                    Load Checkpoint ──▶ CLIP Encode ─────┤
                                                          ▼
                    ┌──────────────────────────────────────────────────┐
                    │  Apply ControlNet (Depth)                        │
                    │  └── Strength: 0.8                               │
                    │                                                  │
                    │  Apply ControlNet (Lineart)                      │
                    │  └── Strength: 0.6                               │
                    │                                                  │
                    │  KSampler                                        │
                    └──────────────────────────────────────────────────┘

权重分配原则

  • Depth 控制空间大结构,通常给较高权重(0.8-1.0)
  • Lineart 控制细节轮廓,可适当降低(0.5-0.7)避免过度约束

5.3 实战:历史园林复原工作流

场景:根据历史照片和文献,复原一座清代园林。

数据准备

  1. 历史照片(低分辨率、褪色)
  2. 文献中的平面图
  3. 同时期园林的参考图片

工作流设计

阶段 1:结构提取
历史照片 ──▶ Depth ──▶ 空间结构图
     │
     └──▶ Lineart ──▶ 轮廓线图

阶段 2:风格参考
参考图片 ──▶ CLIP Vision Encode ──▶ 风格条件

阶段 3:融合生成
[结构图 + 轮廓线 + 风格条件 + 复原提示词] ──▶ KSampler ──▶ 复原效果图

复原专用提示词

masterpiece, best quality, photorealistic,
Qing Dynasty garden restoration,
historical accuracy, authentic details,
traditional construction techniques,
natural weathering, aged materials,
scholar's garden, refined elegance,
period appropriate vegetation,
archival photography style,
8k, highly detailed

六、ControlNet 参数调优指南

6.1 Strength(控制强度)

效果 应用场景
0.0-0.3 弱控制,AI 自由度高 参考性引导
0.4-0.6 中等控制 概念探索、氛围图
0.7-0.9 强控制 方案深化、精确还原
1.0 完全控制 严格遵循参考结构
1.0+ 超强控制 特殊需求(通常不推荐)

6.2 Start / End Percent(起止步数)

理解采样过程

采样步骤 0 ──────────────────────────▶ 采样步骤 N
   │                                        │
高噪声                                    低噪声
模糊图像                                  清晰图像
   │                                        │
Start Percent ────── 控制生效区间 ─────── End Percent

常用配置

全程控制:Start 0.0, End 1.0
早期引导:Start 0.0, End 0.5(后半程 AI 自由发挥)
后期修正:Start 0.5, End 1.0(前半程自由生成,后期调整)

6.3 预处理器分辨率

预处理器分辨率影响控制精度:

低分辨率 (384-512):
- 处理速度快
- 控制粗略,适合快速迭代

中分辨率 (768-1024):
- 平衡速度与精度
- 推荐日常使用

高分辨率 (1024+):
- 控制精细
- 处理慢,显存占用高
- 适合最终输出

七、常见问题与解决方案

7.1 控制失效(效果不明显)

可能原因

  1. Strength 设置过低
  2. 预处理器输出质量差
  3. ControlNet 模型与主模型版本不匹配

解决方法

1. 检查 Preview Image 节点,确认预处理器输出正常
2. 逐步提高 Strength 至 0.8-1.0
3. 确保使用对应版本的 ControlNet 模型
   - SD1.5 主模型 → control_v11p_sd15_xxx
   - SDXL 主模型 → control_v11p_sdxl_xxx

7.2 过度控制(图像僵硬)

症状:生成图像完全照搬控制图,缺乏创意

解决方法

1. 降低 Strength 至 0.5-0.7
2. 调整 End Percent 至 0.7-0.8
3. 在提示词中加入创意描述词
4. 使用较弱的预处理器(如 Scribble 代替 Lineart)

7.3 噪声与伪影

症状:控制图噪声被引入生成结果

解决方法

1. 预处理前对控制图进行降噪
2. 调整预处理器参数(如 Canny 的阈值)
3. 使用更高的采样步数
4. 适当增加 CFG 值

八、园林设计专用 ControlNet 模型推荐

8.1 官方推荐模型

模型 用途 下载来源
control_v11f1p_sd15_depth 深度控制 HuggingFace
control_v11p_sd15_canny 边缘检测 HuggingFace
control_v11p_sd15_lineart 线稿控制 HuggingFace
control_v11p_sd15_seg 语义分割 HuggingFace
control_v11p_sd15_mlsd 直线检测 HuggingFace
control_v11p_sd15_scribble 涂鸦控制 HuggingFace

8.2 社区优化模型

模型 特点 适用场景
control_v11e_sd15_ip2p 指令编辑 图像修改
control_v11u_sd15_tile tile 控制 大图生成
control_v11p_sd15_inpaint 局部重绘 局部修改

九、实战工作流模板

模板 1:手绘草图 → 效果图

{
  "名称": "手绘草图转效果图",
  "节点": [
    "Load Image (手绘草图)",
    "LineartPreprocessor",
    "Load Checkpoint",
    "CLIP Text Encode x2",
    "Apply ControlNet (Lineart, Strength: 0.8)",
    "KSampler",
    "VAE Decode",
    "Save Image"
  ],
  "参数建议": {
    "steps": 25,
    "cfg": 7.5,
    "controlnet_strength": 0.8
  }
}

模板 2:现状照片 → 改造方案

{
  "名称": "现状改造双控",
  "节点": [
    "Load Image (现状照片)",
    "Zoe-DepthMapPreprocessor",
    "CannyPreprocessor",
    "Load Checkpoint",
    "CLIP Text Encode x2",
    "Apply ControlNet (Depth, Strength: 0.9)",
    "Apply ControlNet (Canny, Strength: 0.6)",
    "KSampler",
    "VAE Decode",
    "Upscale Model",
    "Save Image"
  ],
  "参数建议": {
    "depth_strength": 0.9,
    "canny_strength": 0.6,
    "denoise": 1.0
  }
}

模板 3:CAD 图 → 鸟瞰效果图

{
  "名称": "CAD 鸟瞰生成",
  "节点": [
    "Load Image (CAD 导出图)",
    "MLSDPreprocessor",
    "Load Checkpoint",
    "CLIP Text Encode x2",
    "Apply ControlNet (MLSD, Strength: 1.0)",
    "Empty Latent Image (1024x768)",
    "KSampler",
    "VAE Decode",
    "Save Image"
  ],
  "提示词": "bird's eye view, aerial perspective, landscape architecture..."
}

参考资源


📌 关于本教程

本教程为艮岳网高级教程系列,建议先完成基础教程后再阅读。
教程中的工作流可在艮岳网资源库下载完整 JSON 文件。

教程版本:v1.0
更新日期:2026年3月

相关教程

评论 (0)

暂无评论,来说说你的想法吧!

登录后即可发表评论