ComfyUI 中的 Apply ControlNet 節點
Apply ControlNet 會將引導圖像和已載入的 ControlNet 附加到正向和負向的 CONDITIONING,並設定強度及開始/結束百分比,讓取樣器能依照引導的邊緣、深度或姿勢進行生成。
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
- 用 Load Image 載入照片,並用預處理器(Canny Edge、Depth Anything、DWPose)處理。
- 用 Load ControlNet Model 載入對應的 ControlNet。
- 加入 Apply ControlNet 節點,連接正向、負向、control_net 和引導圖像。
- 設定 strength 為 0.8,end_percent 為 0.8 作為起點。
- 將兩個輸出連接到 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 有多少,兩三個很常見。每多一個會多佔記憶體和時間。
相關節點
Load ControlNet Model
ComfyUI core
Load ControlNet Model 會從 models/controlnet 讀取 ControlNet(或 T2I-Adapter / ControlNet Union)檔案,並輸出一個用於 Apply ControlNet 的 CONTROL_NET 物件。
Load Image
ComfyUI core
Load Image 從 ComfyUI 的輸入資料夾(或上傳)讀取圖片,並輸出一個 IMAGE 張量和從 alpha 通道取得的 MASK,這是 img2img、修補、ControlNet 和 IP-Adapter 圖表的起點。
KSampler
ComfyUI core
KSampler 執行去噪循環:它接收模型、提示詞和潛在向量,並產生完成的潛在圖像,透過種子、步數、cfg、採樣器、排程器和去噪程度來控制。
CLIP Text Encode (Prompt)
ComfyUI core
CLIP Text Encode 會用模型的文字編碼器把文字提示轉成 CONDITIONING。有兩個節點,一個放正面提示,另一個放負面提示。
Ultimate SD Upscale
ComfyUI_UltimateSDUpscale
Ultimate SD Upscale 用 ESRGAN 模型放大圖片,然後用你的提示詞在低去噪下,透過擴散模型逐塊重新取樣,能在 2x-4x 放大時加入真實細節,且不會耗盡 VRAM。
更多 ComfyUI 節點
ComfyUI Manager
ComfyUI-Manager
ComfyUI Manager 是一個擴充功能,可以在介面內安裝、更新和修復自訂節點包和模型,解決匯入工作流程中缺少的節點問題,並且備份你的設定。
Load Checkpoint
ComfyUI core
Load Checkpoint (CheckpointLoaderSimple) 會打開 .safetensors 或 .ckpt 模型檔案,並提供每個工作流程都需要的三個部分:diffusion MODEL、CLIP 文字編碼器和 VAE。
Save Image
ComfyUI core
Save Image 會把 IMAGE 張量存成 PNG 檔到 ComfyUI/output,並且把整個工作流程嵌入檔案的元資料裡,這樣圖片就能直接拖回 ComfyUI,還原整個圖形。
VAE Decode
ComfyUI core
VAE Decode 用 VAE 把取樣後的 LATENT 轉成像素 IMAGE;VAE Decode (Tiled) 則是用分塊方式處理超大張圖片。
Empty Latent Image
ComfyUI core
Empty Latent Image 會建立空白的潛在畫布(寬度、高度、批次大小),這是文字轉圖片取樣的起點;尺寸必須是 8 的倍數,且要符合模型家族。
Load LoRA
ComfyUI core
Load LoRA (LoraLoader) 會將 LoRA 檔案套用到 MODEL 和 CLIP,並且可以分別調整強度,這樣你就能在任何檢查點加入風格、角色或概念,而不需要合併模型。
