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

操作步驟:

  1. 下載 LoRA:從模型網站(如 Civitai)抓一個和你主模型同架構的 LoRA,放到 ComfyUI/models/loras/ 資料夾。
  2. 加入 Load LoRA 節點:在畫面上新增,把它的 modelclip 輸入接到 Load Checkpoint 的對應輸出;再把它的輸出接給原本吃 MODEL/CLIP 的節點。
  3. 選檔+調權重:在節點裡選剛下載的 LoRA,調兩個 strength:
    • strength_model:影響畫面的力道,常用 0.6~1.0。太高會「過曝」——整張都被那個風格吃掉。
    • strength_clip:影響對提示詞理解的力道,通常和上面設一樣或略低。
  4. 加觸發詞:很多角色/風格 LoRA 有專屬觸發詞(trigger word),要寫進正向提示詞才會生效(LoRA 的下載頁通常會註明)。
  5. 生成。想疊多個 LoRA?把多個 Load LoRA 串成一串就行。

想自己訓練一個 LoRA?完整五步

當網路上找不到你要的角色或畫風,就自己訓練。流程如下:

  1. 準備素材:同一角色或畫風的圖 10~30 張,裁切乾淨、畫質一致、背景盡量單純。角色 LoRA 要有不同角度、表情;畫風 LoRA 要有不同題材。
  2. 打標(captioning):每張圖配一段文字描述,告訴模型「這張圖裡有什麼」。可用 WD14 Tagger 自動產生標籤,再手動修。訣竅:把「你想固定的特徵」從標籤裡拿掉(例如訓練某角色,就別標他的髮色,這樣髮色會被「記進」觸發詞裡)。
  3. 選底模:你要訓練哪個架構的 LoRA,就用那個架構的底模。要做 SDXL 的 LoRA,就用 SDXL 的 checkpoint 當底模。
  4. 開訓:常用工具是 Kohya_ss(有圖形介面)。關鍵設定:訓練步數、learning rate(學習率,太高會壞、太低學不動)、以及你的觸發詞
  5. 產出+測試:跑完會得到一個幾十 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

操作步驟:

  1. 下載 ControlNet 模型:抓和你主模型同架構的 ControlNet(例如 SDXL 用的 openpose 模型),放到 ComfyUI/models/controlnet/
  2. 裝預處理器節點:預處理器多半來自自訂節點包 comfyui_controlnet_aux,用 ComfyUI Manager 安裝。
  3. Load Image:載入你的參考圖(一張有想要姿勢的照片)。
  4. 接預處理器:把參考圖接進 OpenPose/Canny/Depth 預處理器,產出控制圖。
  5. Load ControlNet Model + Apply ControlNet:把控制圖、ControlNet 模型、還有你的正向 conditioning 都接進 Apply ControlNet 節點,它會輸出「被約束過的 conditioning」。
  6. 把這個輸出接回 KSampler 原本吃正向 conditioning 的位置。
  7. 調 strength(控制力道,1.0 是完全遵守,可往下降讓 AI 有點自由)後生成。

想同時控制姿勢又控制輪廓?把多個 Apply ControlNet 串起來即可,和疊 LoRA 一樣的邏輯。

小結與下一篇

這篇你學會了替 AI 加料:LoRA 指定畫風與角色(也能自己訓練),ControlNet 用參考圖指定構圖與姿勢。 記得兩者都要挑和主模型同架構的版本。

前三篇都是「無中生有」地生圖。下一篇〈以圖改圖:圖生圖與局部重繪〉,我們換個玩法——餵一張現成的圖進去,請 AI 在它的基礎上改。


本文為入門導覽,模型與工具更新很快,實際操作以你安裝的版本為準。

回教學列表