ControNet 是 Stable Diffusion 下的一款插件,可以幫助創作者來控制圖像中人物的姿勢和表情。目前 ControlNet 1.1 有款模型,40餘款預處理器。ControlNet 功能是在幫助創作者根據自己的思路添加額外的控制條件,引導 AI 生成圖像,快速生成高品質的圖像。所以 ControlNet 常用於繪畫、修圖、影視特效等領域。
如果想要精準控制生成圖像的身體姿勢、表情、手勢,或是要轉換圖片的風格,可以使用 ControlNet 來做,ControlNet 是一款位於Stable Diffusion WebUI底下的繪圖插件。其主要功能是調整圖片中的人物姿勢或轉換風格,並能生成新的圖片。今天我們就來教大家認識ControlNet所有的模型。
1、ControlNet 功能說明
先來了解在 AI 生成圖片時會遇到的問題,以下常見到的問題:
- 圖像精確性不足:在AI繪圖中,我們常常會遇到生成的圖像不夠精準,不夠接近我們想要的結果。無論是風格、構圖,或者是細節,都可能與我們的期望有出入。
- 圖片風格單一:AI生成的圖片風格可能過於單一,缺少變化和創新。這可能讓人感覺結果缺乏想像力和創造力。
- 無法控制人物姿態:我們想要AI幫忙生成的圖片,有時候會包括特定的人物姿態。但是,在一般的生成對抗網路(GAN)下,這些細節可能無法精準地被控制。
- 圖片缺乏真實感:AI生成的圖片,雖然在視覺上可能看起來還不錯,但是往往會缺少一種真實感。這也是我們想透過ControlNet去解決的問題。
ControlNet透過提供更多的控制選項,提高了AI圖像生成的精確性,讓使用者可以根據自己的需求去調整生成的圖像,解決上述的問題。
ControlNet 功能主要有 3 個:
- 精準控制圖像內容和風格:ControlNet 可以根據使用者需求,精確調整生成圖像的內容和風格。例如,使用者可以控制生成一幅現代風格的風景圖,或者調整人物姿態並生成符合特定風格的人物圖像。
- 提供解析度調整和縮放模式:ControlNet 支持自動調整解析度和多種縮放模式,讓使用者能夠根據需要調整生成圖像的大小和解析度。例如,使用者可以輕鬆調整生成圖像的尺寸,適應不同的應用場景。
- 增強 AI 圖像生成的可控性和精度:ControlNet 提升了 AI 圖像生成的可控性和精度,使使用者能更方便地創作出符合需求的圖像。例如,使用者可以通過平衡權重或控制模式,精準地控制生成圖像和提示詞之間的權重關係,獲得更貼近自己需求的圖像。
ControlNet是個相當實用的工具,它已是 Stable Diffusion的必裝插件之一。ControlNet提供了一種強大且精確的方式來控制AI生成的圖像,無論是在內容、風格、解析度還是構圖等方面,都能讓創作者和設計師的工作變得更有效率、更有質感。
2、ControlNet 的運作原理及運作方式
ControlNet 功能強大,更要了解它的運作原理,要了解它要分以下幾個部分:
運作原理
ControlNet主要運用了稱為”Conditional Generative Adversarial Networks”(條件生成對抗網路)的技術來生成圖像。這與傳統的生成對抗網路有所不同,ControlNet 允許使用者對生成的圖像進行細緻的控制,例如上傳線稿讓AI協助我們填色渲染、控制人物的姿態等等。再者,ControlNet通過添加額外的控制條件,如annotation(標記)和提示詞,來引導Stable Diffusion按照創作者的創作思路生成圖像。
運作方式
ControlNet的運作方式需要先在Stable Diffusion平台下安裝ControlNet及相關模型。之後在操作界面中設定相對應的模型和參數,通過生成圖像的預覽和修改,達到對生成圖像進行細緻控制的目的。具體來說,運作步驟包括:
- 確保已經正確安裝Stable Diffusion和ControlNet插件。
- 使用者將修改好的參考圖片輸入ControlNet,並指定生成圖片的解析度、構圖、姿勢等參數。
- ControlNet會根據這些參數生成一個控制模型,並將其與Stable Diffusion結合起來。
- 當用戶開始進行AI圖像生成時,ControlNet會根據控制模型引導Stable Diffusion生成符合用戶需求的圖像。
- 用戶可以通過調整控制模型中的參數,來進一步精確地控制AI圖像生成的結果。
標記圖 Annotation
在ControlNet中,annotation是對圖像中特定區域進行標記或標示的過程,通常用於指定圖像中的人物姿勢、身體部位、面部表情等信息。這些標記能幫助ControlNet更好地理解用戶對人物姿勢和動作的需求,從而生成更符合用戶需求的圖像。
3、ControlNet 1.1 模型分類
ControlNet 1.1 包含以下 14 個模型,這些模型的結合使得使用者能夠更靈活地控制圖像的各個層面,創造出更具藝術性和創意性的作品。
AI 召喚師這邊把 14 個模型分成 4 大類:
- 線稿類:以線稿為 Annotation,有Canny, Lineart, Lineart Anime, Scribber, SoftEdge, MLSD 等
- 色塊類:以大面積色塊做 Annotation,有 Depth, Normal, Segmenttion
- 精細控製類: 圖要精修的時候用的 Tile, Inpaint, Openpose
- 風格轉換類:用於風格轉換,如 ip2p, Shuffle,
4、線稿類
模型01:Canny 模型
Canny模型是一種老牌但又相當實用的圖像邊緣檢測方法。它跟 Lineart 線稿模型有些相似,都是把圖片換成線稿的模式,然後根據你給的提示和風格模型來重新上色和繪製。跟 Lineart 模型比起來,雖然他們都能產生線稿圖像,但是 Canny 模型更著重在提取和保留圖像邊緣的訊息,而不太在意細節和紋理的處理。
比較詳細的說明,請參考這一篇: 模型探索系列:模型01 — ControlNet Canny 模型
模型02:Lineart 模型
Lineart 模型是 ControlNet 中的一種模型,用於提取圖片中的線稿,使得圖片更加精細和豐富。相較於其他模型如 Canny,lineart 模型提取的線稿更加詳細,可以保留更多的細節。使用者可以選擇 lineart 的不同預處理模式(如粗略模式、詳細模式、標準模式)以達到不同的處理效果。
Lineart 模型是 ControlNet 中的一種模型,主要用於提取圖像中的線稿,使得圖像看起來更加清晰和精細。它可以根據不同的參數設置,提取出不同程度的線條和紋理,以達到不同的效果。在使用時需要選擇不同的模式以達到最佳效果。在 ControlNet 中還有其他模型如 SoftEdge 和 Scribble 等,它們也可以提取圖像中的線條和紋理,但是和 Lineart 模型相比,它們更加注重對圖像中細節和紋理的處理。因此,在需要提取線稿時,Lineart 模型是一個非常好用且有效的工具。
模型03:Lineart Anime 模型
lineart anime 模型是用於處理動漫圖像的模型,可以根據動漫線稿生成特定風格的圖像。它主要對應的預處理器是 lineart_anime。相較於寫實線稿,lineart anime 在動漫圖像上的表現會更好。如果想要使用這個模型,一定要記得選擇 anything-v3-full 這個模型,並且使用長提示詞生成的圖片效果會更好。
模型04:Scribble 模型
Scribble 模型是可以根據手繪或參考圖片中的涂鴉(草圖)生成精美的圖像。使用者可以在空白畫布上手繪涂鴉,或者提供參考圖片中的涂鴉,再根據提示詞和風格模型對圖像進行著色和風格化。相比於其他模型,scribble 模型更加自由,使用者可以根據自己的想法進行創作。scribble 模型還有三種預處理器模式可供選擇,分別是 Scribble_hed、Scribble_pidinet 和 Scribble_Xdog,使用不同的預處理器可以達到不同的效果。
模型05:Softedge 模型
SoftEdge 模型是 ControlNet 中的一種模型,專注於將圖片轉換為柔和的邊緣風格。相較於其他模型,SoftEdge 模型更加注重圖像的柔和度和自然度,通常用於生成風景、人物等柔和風格的圖片。在 ControlNet 1.1 版本中,SoftEdge 是 ControlNet 1.0 版本中 HED 的升級版。SoftEdge 模型有四種預處理器,按照結果品質排序分別是 SoftEdge_HED、SoftEdge_PIDI、SoftEdge_HED_safe、SoftEdge_PIDI_safe。SoftEdge 模型相對於傳統的邊緣模型(如 Canny),更注重保留圖像的細節,提取的線條更精細,細節更豐富。
模型06:MLSD 模型
MLSD 模型是一個專門用來描繪建築物的模型。主要負責提取建築物的線條結構和幾何形狀,並生成對應的建築線框圖像。相較於 ControlNet 中的其他模型,MLSD 模型更加專注於提取和保留建築物的結構和形狀,而不太關注細節和紋理的處理。對於從事建築或室內設計的人來說,這個模型非常有幫助。另外,在 ControlNet 中還有其他模型也可以產生線稿,例如 Lineart 和 Scribble,但它們主要用於上色和風格化處理,這和 MLSD 模型不同。
5、大色塊類
模型07:Depth 模型
Depth 模型的優點在於它能夠捕捉圖像中物體的深度,使圖片呈現出更立體的感覺,不再只是平面圖片。在 ControlNet 中還有其他類似的模型,如 Normal 擅長法向量圖像和 Openpose 擅長生成人體姿勢圖像,但 Depth 模型更加專注於提取和保留圖像的深度資訊,而不太關注細節和紋理的處理。而在 ControlNet 1.1 版本中,depth 模型的名稱被改為 depth_midas,以實現與舊版模型的相容性,並且進行了進一步的改進。
最近又有用depth 指導手指修復的新模型 depth_hand_refiner ,效果可以看我們的 用 ControNet 的 depth hand refiner 模型來修復手指 – Stable Diffusion 修手 – 示範案例 。
模型08:Normal 模型
Normal 模型是 ControlNet 中的一種模型,因為它會計算圖片中物體的表面法向量,所以可以記錄物體表面的方向,利用表面的方向和光影還原原圖的立體感。類似的模型有 Depth ,但 Depth 著重實現景深效果造成立體感,而非表現物體的表面立體效果。
模型09:Segmentation 模型
Segmentation 模型是 ControlNet 中的一種模型,主要用於對圖像進行分割,即將圖像中的不同區域進行標記和區分。它可以將圖像中的不同物體或區域分開,方便後續的處理和應用。在使用時需要選擇不同的參數設置以達到不同的效果。和 ControlNet 中的其他模型相比,它更加注重對圖像中物體或區域的分割和識別,而不是細節和紋理的處理。
6、精修控制類
模型10:Tile 模型
Tile 模型主要用於圖片的放大和提高清晰度。它在有限的像素基礎上,對圖像細節進行分塊擴散處理,生成與原圖相似且極為清晰的圖片。相似的模型包括 RealSR 和 ESRGAN 等,它們也用於圖像放大和提高清晰度。不同之處在於 Tile 模型更注重細節和紋理的處理,而 RealSR 和 ESRGAN 則更注重整體效果和風格轉換。使用者可以根據需要選擇不同的預處理器模式,例如 tile_resample,以實現不同的效果。
Tile 模型還有一個獨特的功能,可以自動識別圖塊內容並進行處理,生成與原圖相似且清晰的圖像。與其他類似模型相比,不需要準備草稿或塗鴉稿等基底,Tile 模型能夠直接在有限的像素基礎上進行處理,增加了識別提詞的影響。這使得 Tile 模型能夠生成與圖塊相似的圖像。
關於 Tile 模型,可以 AI 召喚師寫的另一篇文章: 「不再擔心放大圖片模糊!只要3步驟,ControlNet Tile 讓你的大圖更清晰」,這一篇文章專門討論專門討 Tile 模型。另外,我在我的頻道影片「如何生成高畫質照片」裡,也有提到如何使用 Tile 模型和 Ultimate SD upscale 一起生成高畫質照片。
模型11:Inpaint 模型
inpaint 模型是 ControlNet 1.1 版新推出的一種模型,可以根據圖像中已有的信息,對於圖像上缺失或損壞的部分進行圖像修復和重繪,使得圖像看起來更加完整和自然。它與 SDW 原生的 inpaint 功能類似,可以針對特定範圍進行重繪修圖,但是比起之前版本的 inpaint,它更加智慧化,操作邏輯與 SDW 內建的 inpaint 功能雷同。
模型12:Openpose 模型
OpenPose 模型是一種常用的 AI 模型,用於檢測圖片中的人體姿勢。它能夠準確檢測出人體的各個部位,包括身體、臉部和手部等,並提供相應的位置和角度資訊。使用者可以根據需要選擇不同的組合,例如身體姿勢、臉部表情和手部姿勢,以實現不同的效果。
7、風格轉換類
模型13:Shuffle 模型
Shuffle 模型可以將圖片轉換為具有特殊風格的圖像。相較於其他模型,Shuffle 模型更加注重圖像的細節和紋理,通常用於生成具有特殊風格的圖片,例如卡通風格、水彩風格等。使用者可以選擇不同的預處理器模式(如 shuffle_hed、shuffle_pidinet 等)以達到不同的效果。
模型14:Instruct Pix2Pix (ip2p) 模型
IP2P 模型是 ControlNet 中的一種模型,可以通過指令式提示詞(如 make Y into X)對圖片進行指令式變換。相較於其他模型,IP2P 模型更加注重圖像的轉換和變形,通常用於生成具有特殊效果的圖片,例如將一張晴天的照片變成下雪的場景。
8、額外的預處理器
Reference only 預處理器
Reference-only preprocessor 是 ControlNet 中的一種預處理器模式,主要用於對圖片進行預處理。它可以根據提供的圖片和提示詞,識別圖片中的人物或場景,並對圖片進行微調和生成。舉個例子來說,如果你提供一張狗的圖片,然後給出提示詞說「狗在跑」,reference-only 將生成一張圖片,呈現你的狗正在奔跑的場景。
關於這個預處理器,可以看這篇:ControlNet 1.1 的 Reference only 功能,只要一張照片,不必訓練 Lora,就可以生成特定人物的不同動作。
9、常見問題
問題1、ControlNet 1.1 比起 ControlNet 1.0 有哪些改進?
ControlNet 1.1 則是目前最新版本,包括 ControlNet 以前的所有模型,除了比之前有更強的穩定性外,還新增了數個新的模型。
- 新版本的介面中有一個特別方便的新功能叫Pixel Perfect,不再需要手動調整ControlNet的解析尺寸大小,並且也已經移除了尺寸調整功能。只需要勾選Pixel Perfect即可自動將解析尺寸設置為出圖尺寸大小。
- Canny 模型的改進:修復了訓練數據集中存在的問題,使得模型更加合理和準確。
- Inpaint 模型的新增:新增了 Inpaint 操作邏輯,可以針對特定範圍進行重繪修圖。
- Tile 模型的新增:新增了 Tile Resample 功能,可以對單一圖片進行瘋狂研磨、精修、放大和美化等操作。
- ControlNet 1.1 的 openpose 效果更加出色,可以直接控制人物表情等內容。
- 更新方式更加方便,只需要在 SDW 介面中點擊 Check for updates 按鈕即可完成更新。
- 新版安裝方式更加清晰明確,避免了一些更新後出現的問題。
- 整體性能提升,運算速度更快、效率更高。
問題2、ControlNet 1.1 有什麼模型值得推薦?
在 ControlNet 1.1 中,以下幾個模型值得推薦:
- ControlNet 1.1 Canny: Canny模型是 ControlNet 中最重要、最常用的模型,它主要用於圖像邊緣檢測和圖像分割。相比於其他模型,Canny 模型在處理圖像邊緣時更加精確、鮮明,並且可以有效地避免邊緣模糊或者出現斷裂等問題。
- ControlNet 1.1 Tile:這是一個用於忠實放大、增添細節的模型。它適合用於對單一圖片精修、放大和美化等情況。如果你需要對單張圖片進行高質量處理,那麼這個模型值得一試。
- ControlNet 1.1 Inpaint:這是一個用於重繪修圖的模型,可以針對特定範圍進行重繪修圖。它與 SDW 內建的 inpaint 功能雷同,但是在使用上更加方便且效果更好。此外,它還可以用於 txt2img 或 img2img 等多種情況下。
問題3、Lineart, Lineart Anime, Canny, Softedge, Scribble, MLSD 都是在做線稿,有什麼不同,他們各自擅長什麼?
Lineart, Lineart Anime, Canny, Softedge, Scribble, MLSD 都是 ControlNet 中用於提取圖像線稿的模型,但它們各自有不同的特點和擅長的領域。
- Lineart 模型可以提取出更加精細和豐富的線條和紋理,適用於需要強調圖像結構和細節的場景。
- Lineart Anime模型則更適合處理動漫風格的線稿。
- Canny 模型注重對圖像中物體邊緣的提取,因提取的線條較為簡單,適用於需要強調物體輪廓和形狀的場景。
- SoftEdge 模型則可以提取出更加柔和和平滑的線條,適用於需要表現柔和氛圍或者光影效果的場景。
- Scribble 模型則可以更好地處理手繪涂鴉等複雜紋理,適用於需要表現手繪風格或者複雜紋理效果的場景。
- MLSD 主要用於對圖像進行分割和邊界提取等操作,適用於提取建築物的線條結構和幾何形狀,並生成對應的建築線框。
問題4、Normal, Depth 不同的點是什麼?他們各自擅長什麼?
Normal 和 Depth 共同的點是都可以提取出圖像中物體的資訊,使得 Normal 和 Depth 非常像,以下是它們的區別:
- Normal 模型作法是提取出物體表面的法向量資訊,使得在表現物體表面的光照效果非常好。
- Depth 模型則可以提取出物體的深度資訊,關注物體的空間位置和距離,用於實現景深效果。
10、參考資料
- 如果想要了解 ControNet 1.1 如何安裝,請看這篇: 如何安裝 ControlNet 1.1 以及安裝模型?。
- ControlNet 1.1 官方頁面
- 一篇講 ControlNet 很清楚的教學:ControlNet v1.1: A complete guide。