ControlNet 完全指南:把 AI 繪圖變成照規矩施工
姿勢、邊緣、深度一次搞定,用條件控制讓生成圖「聽話」的實戰教學。
📌 本篇文章重點
- ControlNet 用「額外條件」限制生成:姿勢、邊緣、深度、塗鴉都可以當基準。
- 4 步上手:選 preprocessor → 選對應 ControlNet 模型 → 調引導強度 → 出圖。
- 角色卡姿勢、產品照、建築輪廓——都能用照片/骨架逼 AI 照做。
- 引導強度與控制模式是控制「聽話程度」的關鍵。
一、為什麼這篇值得看?
純文字生成最大的痛點是不可控:要角色擺特定姿勢、要產品永遠同一個角度,靠 prompt 祈禱完全不現實。ControlNet 把「條件」直接灌進生成流程,讓 AI 從「自由發揮」變成「照圖施工」。
二、核心概念,3 分鐘搞懂
ControlNet 是一組可外掛的模型。它吃一份額外輸入(條件圖),並把它變成生成時的「模板」:
提示詞 ──────────────→
條件圖(preprocessed) ─→ ControlNet → 生成結果
↑
preprocessor 先幫你把照片轉成骨架/輪廓/深度圖
💡 直覺
preprocessor(前置處理)負責「看懂條件」,ControlNet 模型負責「照著條件畫」。兩者必須配對使用(邊緣配邊緣、姿勢配姿勢)。
三、動手實作:4 步架出第一個 ControlNet
安裝外掛與模型
在 WebUI 的 Extensions 安裝 ControlNet 外掛;ComfyUI 則直接載入。再把對應 ControlNet 模型放進 models/ControlNet/。
control_v11p_sd15_openpose.safetensors
control_v11f1p_sd15_depth.safetensors
control_v11p_sd15_canny.safetensors
選擇 preprocessor「看懂」條件
| 條件 | preprocessor | 用途 |
|---|---|---|
| 姿勢骨架 | OpenPose | 角色擺特定姿勢 |
| 邊緣線稿 | Canny | 忠於構圖輪廓 |
| 深度圖 | Depth(Midas) | 保持透視層次 |
| 黑白塗鴉 | SoftEdge / Scribble | 把塗鴉變成正式圖 |
| 排版遮罩 | Inpaint | 只改局部區域 |
連上 ControlNet 節點並出圖
上傳參考圖 → 開啟 ControlNet → 選 preprocessor → 選配對模型 → 出圖。ComfyUI 的做法是拉出 load image + ControlNet 套件,把條件圖接到 KSampler。
⚠️ 最常見錯誤
preprocessor 選了 OpenPose,ControlNet 模型卻配 Canny——條件「看不懂」只好亂畫。兩者必須同類型。
調引導強度控「聽話程度」
- Control Weight:0.6–1.0 是常用區間。愈高愈貼條件、愈低愈自由。
- Start/End step:決定條件在前段或後段介入。後段介入可「鎖構圖、放開細節」。
- 結合 Denoising(img2img):低值保留原圖更多細節。
四、實戰情境對照
| 需求 | 條件組 | 技巧 |
|---|---|---|
| 角色圖重擺姿勢 | OpenPose 骨架 | 貼骨架圖或照片直接取骨架 |
| 產品圖換背景 | Depth + Inpaint | 深度保景、遮罩只換背景 |
| 建築保輪廓上色 | Canny 線稿 | 線稿 + 指定風格詞 |
| 塗鴉變插畫 | Scribble | 黑筆塗鴉,AI 補光影材質 |
五、常見問題(FAQ)
Q1ControlNet 和 LoRA 可以一起用嗎?
可以,而且常一起用。LoRA 管「風格/角色長相」,ControlNet 管「構圖/姿勢」,互不衝突。
Q2條件圖一定認得出來嗎?
跟參考圖品質很有關係:模糊、多人的照片,骨架/邊緣判定容易錯。先看 preprocessor 的預覽圖,對再出圖。
Q3SDXL 要用哪一版 ControlNet?
SDXL 家族(如 xinsir-controlnet)效果已追上 SD1.5 生態。下載時注意模型是否標明是給 SDXL 用。
總結
ControlNet 的套路很固定:選對 preprocessor → 配對模型 → 控制強度 → 出圖。把「條件先看懂」這一步做對,剩下的就是靠重量值磨手感。