Claude Code 教學/第 14 篇・共 17 篇
AI 生圖入門(二)幫 AI 加料:LoRA 與 ControlNet
AI 生圖系列第二篇。文生圖的風格和構圖都是 AI 隨機決定,這篇教你用兩個最常用的外掛「指定」它:LoRA 指定畫風與角色(並附自己訓練 LoRA 的完整五步),ControlNet 指定構圖與姿勢,都在 ComfyUI 裡一步步接給你看。
上一篇我們接出了第一條文生圖流程,但風格和構圖都還是 AI 隨機決定。這篇來學兩個最常用的外掛零件:LoRA(指定畫風/角色)和 ControlNet(指定構圖/姿勢),讓你把畫面「講清楚」。
重要前提:這兩個外掛都綁主模型的架構。SD1.5 的 LoRA/ControlNet 只能配 SD1.5、SDXL 的只能配 SDXL、Flux 的只能配 Flux。下載前先看清楚它標的是哪一家,這件事第五篇會專門講。
一、LoRA:外掛一種畫風或一個角色
LoRA 是一種小型的微調權重。主模型是通才畫師,LoRA 是「專項補習包」——掛上「宮崎駿畫風 LoRA」,出來就有那個味道;掛上「某角色 LoRA」,就能反覆畫出同一個角色。檔案通常只有幾十 MB,小巧、可疊加。
在 ComfyUI 怎麼用
LoRA 的節點叫 Load LoRA(LoraLoader),它插在 Load Checkpoint 之後、CLIP Text Encode/KSampler 之前,像是在模型和後續流程之間「加裝一個濾鏡」:
Load Checkpoint ─(MODEL,CLIP)─→ Load LoRA ─(MODEL,CLIP)─→ 後續的 CLIP Text Encode 與 KSampler
操作步驟:
- 下載 LoRA:從模型網站(如 Civitai)抓一個和你主模型同架構的 LoRA,放到
ComfyUI/models/loras/資料夾。 - 加入 Load LoRA 節點:在畫面上新增,把它的
model、clip輸入接到 Load Checkpoint 的對應輸出;再把它的輸出接給原本吃 MODEL/CLIP 的節點。 - 選檔+調權重:在節點裡選剛下載的 LoRA,調兩個 strength:
strength_model:影響畫面的力道,常用 0.6~1.0。太高會「過曝」——整張都被那個風格吃掉。strength_clip:影響對提示詞理解的力道,通常和上面設一樣或略低。
- 加觸發詞:很多角色/風格 LoRA 有專屬觸發詞(trigger word),要寫進正向提示詞才會生效(LoRA 的下載頁通常會註明)。
- 生成。想疊多個 LoRA?把多個 Load LoRA 串成一串就行。
想自己訓練一個 LoRA?完整五步
當網路上找不到你要的角色或畫風,就自己訓練。流程如下:
- 準備素材:同一角色或畫風的圖 10~30 張,裁切乾淨、畫質一致、背景盡量單純。角色 LoRA 要有不同角度、表情;畫風 LoRA 要有不同題材。
- 打標(captioning):每張圖配一段文字描述,告訴模型「這張圖裡有什麼」。可用 WD14 Tagger 自動產生標籤,再手動修。訣竅:把「你想固定的特徵」從標籤裡拿掉(例如訓練某角色,就別標他的髮色,這樣髮色會被「記進」觸發詞裡)。
- 選底模:你要訓練哪個架構的 LoRA,就用那個架構的底模。要做 SDXL 的 LoRA,就用 SDXL 的 checkpoint 當底模。
- 開訓:常用工具是 Kohya_ss(有圖形介面)。關鍵設定:訓練步數、learning rate(學習率,太高會壞、太低學不動)、以及你的觸發詞。
- 產出+測試:跑完會得到一個幾十 MB 的
.safetensors,放進models/loras/就能用第一節的方法掛上去測試。
Mac 提醒:訓練非常吃顯示卡記憶體,Apple Silicon 能跑但很慢。多數人會用 N 卡,或直接用雲端(Google Colab、RunPod)租一張卡來訓,訓完把檔案抓回本機用。
二、ControlNet:指定構圖與姿勢
LoRA 管「風格」,ControlNet 管「構圖」。它讓你用一張參考圖去控制生成結果的骨架:給火柴人姿勢圖,AI 就照那個姿勢畫人;給線稿,就照線稿上色;給深度圖,就照遠近關係擺放。
比喻:ControlNet 像先在畫布上打好鉛筆稿,AI 只能在你框好的線裡上色。
關鍵概念:預處理器(Preprocessor)
ControlNet 不直接吃你的照片,而是先把照片轉成一種「控制圖」。這個轉換叫預處理器,常見幾種:
- OpenPose:把人抽成火柴人骨架 → 控制姿勢
- Canny/Lineart:抽出線稿 → 控制輪廓
- Depth:抽出深度(遠近)圖 → 控制空間關係
在 ComfyUI 怎麼用
Load Image ─→ 預處理器 ─(控制圖)─→ Apply ControlNet ←─(conditioning)── CLIP Text Encode
│
Load ControlNet Model ─────────────────┘
▼
接進 KSampler 的 conditioning
操作步驟:
- 下載 ControlNet 模型:抓和你主模型同架構的 ControlNet(例如 SDXL 用的 openpose 模型),放到
ComfyUI/models/controlnet/。 - 裝預處理器節點:預處理器多半來自自訂節點包 comfyui_controlnet_aux,用 ComfyUI Manager 安裝。
- Load Image:載入你的參考圖(一張有想要姿勢的照片)。
- 接預處理器:把參考圖接進 OpenPose/Canny/Depth 預處理器,產出控制圖。
- Load ControlNet Model + Apply ControlNet:把控制圖、ControlNet 模型、還有你的正向 conditioning 都接進 Apply ControlNet 節點,它會輸出「被約束過的 conditioning」。
- 把這個輸出接回 KSampler 原本吃正向 conditioning 的位置。
- 調
strength(控制力道,1.0 是完全遵守,可往下降讓 AI 有點自由)後生成。
想同時控制姿勢又控制輪廓?把多個 Apply ControlNet 串起來即可,和疊 LoRA 一樣的邏輯。
小結與下一篇
這篇你學會了替 AI 加料:LoRA 指定畫風與角色(也能自己訓練),ControlNet 用參考圖指定構圖與姿勢。 記得兩者都要挑和主模型同架構的版本。
前三篇都是「無中生有」地生圖。下一篇〈以圖改圖:圖生圖與局部重繪〉,我們換個玩法——餵一張現成的圖進去,請 AI 在它的基礎上改。
本文為入門導覽,模型與工具更新很快,實際操作以你安裝的版本為準。