Model
.ai
追蹤開放 AI 模型

ComfyUI 中的 Apply ControlNet 節點

Apply ControlNet 會將引導圖像和已載入的 ControlNet 附加到正向和負向的 CONDITIONING,並設定強度及開始/結束百分比,讓取樣器能依照引導的邊緣、深度或姿勢進行生成。
節點包:ComfyUI core
分類:ControlNet 與引導
Author: comfyanonymous

Apply ControlNet 的作用

Apply ControlNet(新版的 ControlNetApplyAdvanced,介面顯示為 Apply ControlNet)會接收正向和負向的 conditioning、一個 CONTROL_NET、預處理過的引導 IMAGE,以及新版中還會接收 VAE。它會回傳新的 conditioning,帶有控制訊號給取樣器。strength 用來調整影響力(1.0 為完整影響),start_percent 和 end_percent 則限制控制只在取樣過程的某段時間內生效,例如 0.0-0.6,這樣構圖會在前期確定,後期模型可以自由完成細節。
引導圖像必須已經是 ControlNet 所期望的格式:Canny ControlNet 需要白色邊緣在黑底上,Depth ControlNet 需要灰階深度圖,OpenPose 需要彩色骨架圖。ControlNet Aux 套件裡的預處理器可以從照片產生這些格式。對於 Tile ControlNet,引導圖就是圖片本身,通常會模糊或縮小。

輸入

名稱
類型
含義
positive / negative
CONDITIONING
來自 CLIP 文字編碼節點。
control_net
CONTROL_NET
來自載入 ControlNet 模型。
image
IMAGE
預處理過的引導圖(邊緣、深度、姿勢,或 Tile 用的圖片)。
vae
VAE
新版中可選;某些 Flux 和 Union ControlNet 需要。
strength
FLOAT
0-2,控制引導影響力的強弱。通常用 0.6-1.0。
start_percent / end_percent
FLOAT
控制在取樣過程中生效的區間比例。

輸出

名稱
類型
含義
positive
CONDITIONING
給 KSampler 的正向控制 conditioning。
negative
CONDITIONING
給 KSampler 的負向控制 conditioning。

如何使用 Apply ControlNet

  1. 用 Load Image 載入照片,並用預處理器(Canny Edge、Depth Anything、DWPose)處理。
  2. 用 Load ControlNet Model 載入對應的 ControlNet。
  3. 加入 Apply ControlNet 節點,連接正向、負向、control_net 和引導圖像。
  4. 設定 strength 為 0.8,end_percent 為 0.8 作為起點。
  5. 將兩個輸出連接到 KSampler 的正向和負向,並保持 latent 大小與引導圖比例一致。

設定與技巧

  • 可以串接多個 Apply ControlNet 節點(例如姿勢加深度),將一個的輸出接到下一個的輸入。
  • 降低 end_percent(0.5-0.7)讓模型能自由加細節,避免看起來僵硬像描邊。
  • 保持引導圖與 latent 的長寬比一致,系統會自動調整大小。
  • Tile 放大時用 strength 0.5-0.8,讓細節還能變化。
  • 預覽預處理器輸出:黑色或雜訊多的引導圖通常是「沒效果」的原因。

Apply ControlNet 疑難排解

結果忽略引導圖

原因
strength 太接近 0、end_percent 太低、引導圖全黑,或 Union ControlNet 沒設定類型。

修復方法
先預覽引導圖,測試時設定 strength 0.8-1.0 和 end_percent 1.0,然後再調整。Union 模型要加 SetUnionControlNetType。

錯誤:mat1 和 mat2 形狀無法相乘 / ControlNet 不匹配

原因
ControlNet 類型和檢查點不匹配(SD 1.5、SDXL、Flux 不同)。

修復方法
使用和檢查點相同系列的 ControlNet。

圖像過曝、高對比、色塊化

原因
strength 超過 1,且用強力 ControlNet(Canny 或 Lineart)和高 cfg。

修復方法
strength 設 0.6-0.9,end_percent 0.7,cfg 保持在模型正常範圍。

舊流程顯示「Apply ControlNet (OLD)」

原因
單一 conditioning 節點改名了,還能用但沒開始/結束控制和負向通道。

修復方法
換成 Apply ControlNet,連接正向和負向。

Flux ControlNet 報錯缺少 vae

原因
某些 Flux 和 Union ControlNet 需要 VAE 來編碼引導圖。

修復方法
把 Load VAE 的 VAE 輸出接到 Apply ControlNet 的 vae 輸入。

關於 Apply ControlNet 的問題

我一定要預處理圖像嗎?

是的,除了 Tile 和 Inpaint ControlNet,它們直接用原圖。每個 ControlNet 都是針對一種特定的圖做訓練。

ControlNet 可以用在 img2img 嗎?

可以。latent 是從 VAE Encode 來的,控制訊號是這個節點給的,兩者是獨立的。

我可以疊幾個 ControlNet?

看 VRAM 有多少,兩三個很常見。每多一個會多佔記憶體和時間。

更多 ComfyUI 節點