快速認識新一代圖像生成工具
探索 AI 圖像創作的全新的體驗
在 AI 藝術創作日益熱門的今天,「ComfyUI」成為越來越多創作者和設計師討論的關鍵字。ComfyUI 是一套開源的圖像生成與編輯工具,專為 Stable Diffusion 模型打造。它不僅重塑了我們與 AI 創意工具的互動方式,更以視覺化、積木式的「節點介面」吸引了無數愛好者加入。對想要跨出 AI 圖像生成第一步的新手來說,ComfyUI 提供了直覺又強大的工作流程設計方式;而資深用戶則能透過自訂插件和節點,發揮極致的控制力,完成具挑戰性的圖像創作。


Stable Diffusion流程
Stable Diffusion 模型的生成過程(也包括整個訓練過程)主要由擴散過程和去噪過程組成,以下結合圖和相關模組為你詳細介紹:
擴散過程
- 影像編碼(VAE部分):在實際應用場景中,若有真實影像作為輸入(圖中左側粉紅色區域「Pixel Space」 中的影像),會先經過VAE 中的編碼器(圖中左側粉紅色框中的)。 VAE 編碼器將像素空間中的影像編碼成低維度的潛在表示,隨後進入潛在空間(Latent Space,圖中綠色背景的區域)。這一步相當於把複雜的影像資訊壓縮提煉成關鍵特徵要點。
- 噪音逐步添加:在潛在空間中,Scheduler(調度器,圖下方藍色框標註部分,包含DDIM、DDPM 等演算法)發揮作用,依照既定規則對潛在表示逐步添加雜訊。隨著操作步驟的推進,潛在表示逐漸轉變為高度噪音化的潛在表示,過程即為擴散過程(圖中標註「Diffusion Process」 的箭頭走向)。過程中,原本影像的訊息被雜訊逐步幹擾、打亂,潛在表示越來越趨近於純粹的雜訊狀態。
去雜訊過程
- 文字編碼:輸入的文字提示詞進入CLIP text encoder(文字編碼器,圖中最右側藍色模組)。文字編碼器對文字進行處理,將其轉換為語義特徵表示(對應圖中右側“Conditioning” 區域綠色框中的內容),這些語義特徵後續將用於指導圖像生成,為模型提供“創作方向”。
- UNET 處理:高度雜訊化的潛在表示進入UNET(去雜訊U-Net,圖中間綠色背景包含QKV 模組的部分)。 UNET 內部利用多頭注意力機制(QKV,即Query、Key、Value )對雜訊化的潛在表示進行處理。同時,CLIP text encoder 輸出的語意特徵(對應「Conditioning」 中的資訊)也會參與進來,進行交叉注意力(crossattention)計算,幫助模型理解文字提示與圖像特徵之間的關聯。
- 結構輔助去雜訊:UNET 藉由跳躍連結(skip connection)等結構,將不同層次的特徵融合,逐步去除潛在表示中的雜訊。在這個過程中,模型不斷嘗試恢復影像原本的特徵訊息,使潛在表示從高度雜訊化狀態逐漸還原為較為清晰的潛在表示。
- 影像解碼(VAE 部分):去噪後的潛在表示進入VAE 中的解碼器(圖中左側粉紅色框中的)。 VAE 解碼器將潛在表示轉換回像素空間,把之前提煉並經過去噪處理的要點「還原」 成複雜的影像,即最終生成的圖像。
- 控制生成過程
- Scheduler 作用:Scheduler 持續控制整個去噪過程中噪音去除的節奏和方式,確保去噪過程穩定且合理地進行。
- CFG 作用:CFG(Classifier-Free Guidance,無分類器引導,圖中單獨藍色框標註)透過特殊的計算方式,增強生成影像與輸入文字提示的一致性,提升生成影像的質量,使影像更符合文字描述的要求。
在了解Stable Diffusion 影像生成核心機制後,在ComfyUI 工具中,模型的多樣性拓寬了創作邊界。 Liblib 提供的checkpoints、lora 等多種模型,基於Stable Diffusion 架構,作用各異。以下就探究它們的原理,以及與Stable Diffusion 的協作方式
主要包括checkpoints,lora,ControlNet,VAE(在搜尋框搜尋即可),Embeddings(Textual Inversion),Hypernetwork。

checkpoints
對於checkpoints,就是訓練整個stable diffusion模型,包括擴散過程和去噪過程,以及對應的vae編碼器,解碼器,(通常情況下,訓練一個checkpoints模型,至少是要訓練出一個在某一個方面全面的模型出來,就好比訓練出一個在某一個領域內什麼會的人,如果只是訓練出一個單一技能的人,那就比訓練出一個在某一個領域內什麼會的人,如果只是訓練出一個單一技能的人,那一點就沒有區別。
其中具體損失:是計算去噪網路預測的噪音與實際添加到潛在表示中的雜訊之間的差異作為損失。例如,在某一個去噪步驟中,模型預測當前潛在表示中的噪聲,然後與該步驟實際添加的噪聲對比,透過反向傳播更新UNet等相關模組的參數,讓模型不斷優化去噪的能力,以便能在給定文本語義訊息的情況下,產生符合要求的圖像。
LoRA
對於LoRA,可以形象的描述為:假設我們已經訓練出一個多功能的機器人廚師(叫Checkpoints),它可以做出各種基本的菜餚。但是,如果你想讓這個機器人廚師做出一些特別的、有特定風味的菜餚,例如義大利的披薩或中國的餃子,你就需要給它一些額外的「食譜」。
- Stable Diffusion Stable Diffusion 就像是這個多功能的機器人廚師,它可以根據不同的食材(描述)做出各種各樣的菜餚(圖片)。它非常擅長理解你的要求,並創造出符合你描述的美味佳餚。
- LoRA 模型LoRA 模型就像是給這個機器人廚師提供的額外「食譜」。這些「食譜」可以幫助機器人廚師學會製作一些特別的菜餚,讓它的烹飪技巧更加豐富。
LoRA 位置與結構
從Stable Diffusion 模型結構圖來看,LoRA 主要作用於UNET 模組(圖中間綠色區域) 。在訓練特定LoRA 模型時,更新的參數集中在UNET 的特定部分。具體而言,通常會在UNET 的多頭注意力機制(QKV,即Query、Key、Value)相關模組中添加LoRA 層。原始UNET 的大部分參數會被凍結,只有LoRA 層的參數參與訓練

LoRA 層與原層的關係
LoRA 層與原始模型中的多頭注意力機制相關模組是平行關係(如下圖所示藍色為原始的,橙色部分為增加的LoRA層)。當添加LoRA 層後,原始的注意力計算路徑保持不變,LoRA 層作為新的平行路徑融入其中。這種設計最大的優點在於,無需改變原模型整體架構,就能透過訓練LoRA 層對模型進行微調,大幅減少訓練所需的參數數量。

LoRA 層的參數拆解
LoRA 的核心在於對參數的獨特處理。其核心思想是將原本需要更新的模型參數變化量(如多頭注意力機制中的權重矩陣的變化矩陣),拆解為兩個低秩矩陣和的乘積,即。
並且,和的秩遠小於原矩陣的維度。在訓練過程中,只對這兩個低秩矩陣進行更新訓練,而原始模型的大部分參數保持不變。透過這種低秩分解方式,LoRA 能以較少的計算資源和記憶體消耗,有效微調模型,使其適配特定任務或資料集,例如依據大量特定人物照片,訓練出符合該人物特徵的LoRA 模型。

經過訓練後得到的LoRA 模型,本質是一組經過最佳化的低秩矩陣參數集合。在推理階段,將LoRA 模型與Stable Diffusion 模型拼接使用時,LoRA 層會依據輸入的文本提示等信息,利用訓練好的參數,對UNET 模組的計算過程進行調整,讓UNET 在處理潛在圖像表示和結合文本語義信息時,能生成契合特定需求的圖像,實現對Stable Diffusion 模型生成效果的優化與拓展模型。
VAE
VAE(Variational AutoEncoder)變分自編碼器是一種重要的生成模式。想像,VAE就像一個非常聰明的畫家:
- 編碼器(Encoder) : 首先,這個畫家會仔細觀察一幅畫,並把畫中的關鍵特徵記在腦子裡。這就像是把複雜的畫壓縮成簡單的重點。
- 潛在空間(Latent Space) : 畫家腦中記下的這些要點,就形成了一個想像空間。在這個空間裡,畫家可以自由組合這些特徵。
- 解碼器(Decoder) : 然後,畫家就可以根據腦子裡的這些要點,重新畫出一幅相似但又不完全一樣的畫。這就像是把簡單的要點又還原成複雜的畫作。

訓練特定VAE 時更新的參數部分
- VAE 編碼器與解碼器:在訓練特定的VAE 時,主要更新的是VAE 模組(圖中左側粉紅色區域)中的編碼器(
)和解碼器()的參數。編碼器負責將像素空間的影像轉換為潛在空間的表示,解碼器則是將潛在空間的表示還原為像素空間的影像。透過訓練,調整這些參數可以讓VAE 更好地學習資料集中影像的特徵分佈,例如在處理特定風格或類型的影像(如大量美女照片資料集)時,能夠更精準地進行編碼和解碼,提升影像重建或產生的品質。 (雖然更新參數上,編碼器和解碼器都更新了,但在實際用途上,圖生成只用到了解碼器)
- 潛在空間相關參數:雖然潛在空間本身不是特定的參數,但在VAE 訓練過程中,與潛在空間分佈建模相關的參數也會被更新。例如,為了使潛在空間中的向量具有良好的統計特性(如近似高斯分佈),相關的變分參數會在訓練中不斷優化,以便產生更具多樣性和合理性的圖像。
當我們將單獨訓練好的VAE 解碼器應用到其他的checkpoints 模型上時,會帶來一系列有趣的效果。以人的影像生成為例,不同的VAE 解碼器對潛在空間表示的理解和轉換方式存在差異,這會直接影響到最終生成的人物影像的品質和特徵。一方面,更換後的VAE 解碼器可能會提升影像的細節表現。例如,原本的checkpoints 模型生成的人物圖像在面部細節上可能不夠清晰,而新的VAE 解碼器經過針對性訓練後,能夠更準確地還原潛在空間中的面部特徵信息,使得生成的人物面部更加細膩、真實,如眼睛的紋理、皮膚的質感等都能得到顯著改善。另一方面,VAE 解碼器的更換也可能改變影像的風格傾向。由於不同的VAE 在訓練過程中學習了不同的影像特徵分佈,新的解碼器可能會使生成的人物影像帶有特定的風格特徵。例如,某個VAE 解碼器在訓練時使用了大量具有復古風格的人物圖像資料集,那麼當將其應用到其他checkpoints 模型上時,生成的人物圖像可能會呈現出復古的色調、服飾風格等,為圖像增添獨特的藝術氛圍。然而,更換VAE 解碼器也並非總是帶來正面的效果。如果新的VAE 解碼器與原始checkpoints 模型的潛在空間表示不匹配,可能會導致生成的影像出現失真、扭曲等問題。例如,生成的人物身體比例失調,或是臉部特徵出現奇怪的變形。這是因為不同的模型在對潛在空間的編碼和解碼過程中,對特徵的理解和映射方式存在差異,如果不進行合理的適配,就會影響影像產生的品質。
ControlNet
在VAE 中編碼器提取關鍵特徵,而ControlNet 接收額外的控制條件訊息,例如輸入的邊緣圖、人體姿態圖、深度圖等。這就如同一位畫家在作畫前,除了觀察畫面本身,還額外獲取了一些特定的指引信息,像畫面中物體的輪廓線條要求,人物的動作姿態設定等。這些控制條件資訊相當於ControlNet 的“輸入特徵”,它對這些資訊進行分析和處理,提取其中關鍵的結構、語義等特徵,為後續生成過程提供方向指引,這類似於VAE 編碼器的特徵提取環節。
ControlNet 位置與結構
ControlNet 是在原Stable Diffusion 模型基礎上插入的額外神經網路結構。在Stable Diffusion 模型中,它主要與UNet(去噪網路)的中間層進行交互,同時也會間接地與CLIP text encoder(文字編碼器)協同工作。具體來說,在UNet 處理潛在影像表示的過程中,ControlNet 會適時地插入額外的控制訊號,成為影像產生過程中的「調控器」。

內部改造細節如下圖:

ControlNet 的訓練過程
- 凍結原模型參數:使用ControlNet 訓練時,原Stable Diffusion 模型(包含UNet、CLIP text encoder 等關鍵元件)的大部分參數會被凍結。這項操作保留了原始模型在大量資料訓練後所學到的豐富語意理解能力和影像生成的通用能力,例如對各種物件、場景、風格的基礎認知。這樣,原始模型的核心知識儲備得以保留,為後續的影像生成提供了堅實的基礎。
- 更新自身參數:ControlNet 本身擁有獨立的網路結構,包含卷積層、殘差連線等元件。在訓練過程中,主要更新的是ControlNet 內部的這些參數。 ControlNet 透過學習如何依據輸入的控制條件(如邊緣圖、姿態圖等)來調整原始模型的生成過程,就像為原始模型配備了一個專注於特定任務的“助手”,這個“助手” 在不改變原始模型主體知識儲備的前提下,學習如何利用外部控制條件來優化圖像生成。
ControlNet 的參數處理與資訊融合
- 控制條件特徵提取:ControlNet 首先對輸入的控制條件進行特徵提取。例如,從姿態圖中提取人體關節位置、動作走向等關鍵特徵,從邊緣圖中提取物體的輪廓資訊等。這些提取出來的特徵代表了新的資訊要求,是引導影像生成的重要依據。
- 與原始模型特徵融合:ControlNet 將提取的控制條件特徵與Stable Diffusion 原始模型中UNet 等模組在處理影像生成時的中間層特徵進行深度融合。這種融合並非簡單地分割原模型的學習內容,而是在原模型處理資訊的流程中巧妙地加入新的控制訊號。透過這種方式,ControlNet 引導原始模型產生符合控制條件的影像,實現了新資訊與原始模型知識的有機整合。
ControlNet 在推理時的應用
在模型推理階段,當輸入文字提示與控制條件(如邊緣圖、姿態圖等)後,ControlNet 會依據訓練好的參數,對UNet 的中間層特徵傳播與運算進行即時調整。它會平衡文字提示所傳達的語意訊息和額外控制條件,使得產生的圖像既符合文字描述,也符合控制訊號限定的條件。例如,當文字提示為“一個在公園散步的人”,同時輸入了特定的人物姿態控製圖時,ControlNet 會協調UNet 和CLIP text encoder,確保生成的圖像中人物的姿態符合姿態圖的要求,同時人物所處的場景和整體氛圍也與文本描述相符。
在Stable Diffusion 模型體系中,ControlNet 主要訓練與作用於下列部分:
- 中間層特徵互動:ControlNet 與UNet (去噪網路)中間層進行互動並訓練。它在UNet 處理潛在影像表示的過程中,插入額外的控制訊號。例如在影像產生的去噪過程中,ControlNet 會依據輸入的控制條件(如邊緣圖、姿態圖等),調整UNet 中間層的特徵傳播與運算,使得生成過程能依照指定條件進行。
- 增加額外網路結構:ControlNet 本身是額外的神經網路結構,訓練時主要更新自身網路中的參數。此網路會學習如何將輸入的控制訊號與UNet 的特徵有效融合,例如透過卷積層、殘差連接等操作對控制訊號進行處理,再與UNet 的特徵圖進行拼接或其他運算,引導產生符合特定結構或語意要求的影像。
- 與文字編碼器協同:雖然ControlNet 主要和UNet 交互緊密,但也會間接地與CLIP text encoder(文字編碼器)協同。在訓練中,它要學會平衡文字提示所傳達的語意訊息和額外控制條件,使得產生影像既滿足文字描述,又符合控制訊號限定的條件,例如根據文字「一個在公園散步的人」 以及輸入的人物姿態控製圖,產生對應的影像。

Embeddings(Textual Inversion)是什麼?
Embeddings(Textual Inversion)模型,通常在模型站上,我們可以看到embedding模型,它能夠輸出特定的風格。例如,它可以產生平面風格的圖像,或使畫面中的人物具備某些特徵,甚至讓整個畫面呈現特定的藝術風格。此外,embedding模型的體積通常很小,只有幾KB。 你可以把它簡單理解為一個提示詞(prompt)的压缩包,原本你需要很複雜的文本描述才可以達到的效果,透過Embedding 模型都可以輕易做到,再加上他的體積很小,所以使用起來非常方便
Embeddings(Textual Inversion)模型的作用主要是用於在影像中嵌入特定的元素特徵,如畫面風格、人物特徵、場景特徵等,從而讓模型產生符合這些特徵的影像。

什麼是Hypernetwork(超網路)?
Hypernetwork(超網絡),就像是個有特殊能力的助手,它可以幫助其他的神經網路變得更聰明。想像一下,你有一支足球隊,每個球員都有自己的位置和技能。現在,如果有一個教練,他可以根據比賽的需要,臨時給球員一些額外的技能或建議,讓球隊表現得更好。 Hypernetwork(超網絡)在這個比喻中,就扮演了那個教練的角色。
- 調整參數:Hypernetwork(超網路)會在原有的擴散模型基礎上,新建一個神經網路來調整模型的參數。這就像是給足球隊的每個球員一些特殊的訓練,讓他們在比賽中表現得更出色。
- 效果類似:Hypernetwork(超網絡)在效果上和Lora相似,都像是給球隊的教練,幫助球隊提升表現。
- 訓練難度:Hypernetwork(超網絡)的訓練難度比較大,就像是找到一個能即興給球員們提供完美建議的教練非常難。
- 應用範圍:由於訓練難度大,Hypernetwork(超網絡)的應用範圍比較小,這就像是這種完美的教練很難找到,所以不是所有的球隊都能用上。
- 逐漸被取代:因為這些原因,Hypernetwork(超網絡)逐漸被Lora替代,Lora就像是一個更常見、更容易找到的教練,雖然可能不是最完美的,但是更容易訓練,也更普及。



















