目錄
ComfyUI ControlNet 教學:用線稿、姿勢、深度控制構圖
只靠提示詞很難精確控制「人物擺什麼姿勢」、「建築物的透視」、「畫面的構圖」。ControlNet 讓你提供一張參考圖,從中擷取結構資訊(線條、姿勢、深度),讓生成的圖片照著這個結構來畫。
常見的控制類型
| 類型 | 從參考圖擷取 | 適合 |
|---|---|---|
| Canny | 邊緣線條 | 保留輪廓與細節,例如產品、建築 |
| Lineart | 線稿 | 把線稿上色、變成完整插畫 |
| OpenPose | 人體骨架(姿勢、手、臉) | 指定人物姿勢 |
| Depth | 深度(遠近) | 保留空間結構與透視 |
| Scribble | 簡單塗鴉 | 用隨手畫的草圖控制構圖 |
| Tile | 圖片本身的細節 | 放大時保持一致、增加細節 |
需要準備
- ControlNet 模型:放到
models/controlnet/。必須對應基礎模型的版本(SD 1.5、SDXL、Flux 各有不同的 ControlNet)。現在也有「Union」類型的模型,一個檔案支援多種控制類型。 - 前處理器(Preprocessor):把參考照片轉成 ControlNet 需要的圖(例如把照片轉成線條或骨架)。Canny 有內建節點;其他類型通常需要安裝 comfyui_controlnet_aux 自訂節點(見 自訂節點與 Manager)。
建立工作流程(以 Canny 為例)
[Load Image] ─▶ [Canny] ─IMAGE────────────────┐
▼
[CLIP Text Encode 正向] ─CONDITIONING─▶ [Apply ControlNet] ─positive─▶ [KSampler]
[CLIP Text Encode 負向] ─CONDITIONING─▶ ─negative─▶
[Load ControlNet Model] ─CONTROL_NET──▶
vae ─────────▶
步驟:
- 從文生圖工作流程開始。
- 新增 Load Image,載入參考圖。
- 新增 Canny 節點,接上參考圖。執行一次,用 Preview Image 確認擷取出的線條。

- 新增 Load ControlNet Model,選擇 Canny 模型。
- 新增 Apply ControlNet:
positive、negative接兩個 CLIP Text Encode 的輸出control_net接 Load ControlNet Modelimage接 Canny 的輸出vae接模型的 VAE(部分 ControlNet 需要)
- Apply ControlNet 輸出的 positive、negative 接到 KSampler。
- Empty Latent Image 的尺寸設成和參考圖相同比例。

參數
| 參數 | 說明 | 建議 |
|---|---|---|
strength | 控制強度 | 0.5~1.0。太高會讓畫面僵硬、細節不自然 |
start_percent | 從生成過程的哪個階段開始控制 | 0 |
end_percent | 在哪個階段停止控制 | 0.6~1.0 |
技巧:end_percent 設為 0.5~0.7,前半段由 ControlNet 決定構圖,後半段讓模型自由發揮細節,結果通常更自然。
OpenPose:控制人物姿勢
- 用 DWPose Estimator 或 OpenPose Pose 前處理器(來自 controlnet_aux),從一張人物照片擷取骨架。
- 用 Preview Image 確認骨架正確。
- 接上 OpenPose ControlNet 模型。
生成的人物會擺出和照片相同的姿勢,但長相、服裝、場景由提示詞決定。
Depth:保留空間結構
用 Depth Anything 等前處理器產生深度圖。適合:
- 把室內照片重新設計成不同的裝潢風格
- 保留建築或場景的透視,改變季節、時間、畫風
組合多個 ControlNet
把多個 Apply ControlNet 串接:第一個的 positive / negative 輸出接到第二個的輸入。例如 OpenPose 控制姿勢 + Depth 控制場景。每個的強度要適度降低,避免互相衝突。
常見問題
| 狀況 | 原因 |
|---|---|
| 錯誤或完全沒效果 | ControlNet 模型與基礎模型版本不符(例如 SD 1.5 的 ControlNet 用在 SDXL) |
| 畫面僵硬、有線條痕跡 | strength 太高,或 end_percent 太晚 |
| 人物變形 | 參考圖和輸出的比例不同,或骨架擷取錯誤 |
| 找不到前處理器節點 | 尚未安裝 comfyui_controlnet_aux |
更新於 2026年10月12日