萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

在上一篇里我已經(jīng)為大家介紹了關(guān)于 ControlNet 的基本功能、安裝和使用技巧,相信大家對(duì)這款神級(jí)插件已經(jīng)有了基本認(rèn)識(shí),今天我會(huì)為大家更詳細(xì)的介紹 14 種官方控圖模型的差異和使用技巧,以及最近剛面向 SDXL 更新的社區(qū)模型。

一、官方模型和社區(qū)模型

前文我們提到 ControlNet 模型是由張呂敏開源的,目前開源的模型包括以下這 14 種,作為 ControlNet 的布道者,我們可以將這些稱之為經(jīng)典的官方模型。

官方模型下載地址: https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

雖然官方模型很強(qiáng),但最近新的 SDXL 大模型發(fā)布后還沒有做適配,之前的 ControlNet 插件也基本都是配合 SD1.5 模型來(lái)使用,加上 SDXL 對(duì)硬件的要求頗高,導(dǎo)致 SDXL 系列模型無(wú)法使用 ControlNet 控圖一直是廣大 SD 玩家的痛點(diǎn)。

而這段時(shí)間里,社區(qū)里不少熱心開發(fā)者訓(xùn)練出了不少針對(duì) SDXL 使用的 ControlNet 模型,就在前幾天 ControlNet 插件更新到 v1.1.400 版本后,終于支持配合 SDXL 模型來(lái)使用。為方便大家使用,ControlNet 的作者張呂敏將這些社區(qū)模型都統(tǒng)一鏡像在 HuggingFace 的代碼倉(cāng)庫(kù)中,有需要的朋友可以自行下載使用:

社區(qū) ControlNet 模型下載地址: https://huggingface.co/lllyasviel/sd_control_collection/tree/main

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

這類社區(qū)模型雖然沒有完全遵照官方模型的命名規(guī)則,但也能從名稱上看出模型的類型,比如 xl 表示是針對(duì) SDXL 使用的模型,sai 表示 StabilityAI 開發(fā)的模型,其中也有一些無(wú)需 ControlNet 模型也能使用,比如 revision (SDXL)和 reference (SDXL)。

二、官方模型解析

我們先來(lái)了解下最基礎(chǔ)的官方模型,最早時(shí)候開源的模型只有 depth、hed、normal、scribble、seg、openpose、mlsd、canny 這 8 種,隨著這半年的迭代已經(jīng)更新到 14 種之多。每種模型都有各自的特點(diǎn),對(duì)新手來(lái)說(shuō)想每個(gè)都完全記住實(shí)在有點(diǎn)困難,因此這里我按照模型的控圖方向分為 4 種類型,分別是輪廓類、景深類、對(duì)象類和重繪類。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

在下面的內(nèi)容中我會(huì)為大家仔細(xì)介紹每種 ControlNet 的特點(diǎn)和差異,并配上展示效果圖,但案例樣本較少所以并不能排除繪圖模型本身的影響,大家重點(diǎn)學(xué)習(xí)模型的控圖特點(diǎn)和使用場(chǎng)景即可。

1. 輪廓類

顧名思義,輪廓類指的是通過(guò)元素輪廓來(lái)限制畫面內(nèi)容,輪廓類模型有 Canny 硬邊緣、MLSD 直線、Lineart 真實(shí)線稿、Lineart_anime 動(dòng)漫線稿、SoftEdge 軟邊緣、Segmentation 語(yǔ)義分割、Shuffle 隨機(jī)洗牌這 7 種,且每種模型都配有相應(yīng)的預(yù)處理器,由于算法和版本差異,同一模型可能提供多種預(yù)處理器供用戶自行選擇。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

①Canny 硬邊緣

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

我們先來(lái)看看第一種控制類型:Canny 硬邊緣,它的使用范圍很廣,被作者譽(yù)為最重要的(也許是最常用的)ControlNet 之一,該模型源自圖像處理領(lǐng)域的邊緣檢測(cè)算法,可以識(shí)別并提取圖像中的邊緣特征并輸送到新的圖像中。

Canny 中只包含了 canny(硬邊緣檢測(cè))這一種預(yù)處理器。下圖中我們可以看到,canny 可以準(zhǔn)確提取出畫面中元素邊緣的線稿,即使配合不同的主模型進(jìn)行繪圖都可以精準(zhǔn)還原畫面中的內(nèi)容布局。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

在選擇預(yù)處理器時(shí),我們可以看到除了 canny(硬邊緣檢測(cè))還有 invert(白底黑線反色)的預(yù)處理器選項(xiàng),它的功能并非是提取圖像的空間特征,而是將線稿進(jìn)行顏色反轉(zhuǎn)。我們通過(guò) Canny 等線稿類的預(yù)處理器提取得到的預(yù)覽圖都是黑底白線,但大部分的傳統(tǒng)線稿都是白底黑線,為方便使用,很多時(shí)候我們需要將兩者進(jìn)行顏色轉(zhuǎn)換,傳統(tǒng)做法都是導(dǎo)出到 PS 等工具進(jìn)行額外處理,非常繁瑣。而 ControlNet 中貼心的內(nèi)置了顏色反轉(zhuǎn)的預(yù)處理功能,可以輕松實(shí)現(xiàn)將手繪線稿轉(zhuǎn)換成模型可識(shí)別的預(yù)處理線稿圖。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

理解了 invert 的功能,我們就知道該預(yù)處理器并非 Canny 獨(dú)有,而是可以配合大部分線稿模型使用。在最新版的 ControlNet 中,當(dāng)我們選擇 MLSD 直線、Lineart 線稿等控制類型時(shí),預(yù)處理器中都能看到它的身影,后續(xù)就不挨個(gè)贅述了。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

有些預(yù)處理器在選擇后,下方會(huì)多出用于調(diào)節(jié)特征提取效果的特定參數(shù),比如當(dāng)我們選擇 canny(硬邊緣檢測(cè))時(shí),下方會(huì)增加 Canny low threshold 低閾值和 Canny high threshold 高閾值 2 項(xiàng)參數(shù)。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

先給大家解釋下關(guān)于 canny 閾值參數(shù)的控制原理,以便你更好的理解其使用方法。在使用 canny 進(jìn)行預(yù)處理時(shí),提取的圖像像素邊緣線會(huì)被 2 個(gè)閾值參數(shù)劃分為強(qiáng)邊緣、弱邊緣和非邊緣 3 類,其中強(qiáng)邊緣會(huì)直接保留,而非邊緣的線稿會(huì)被忽略,處于中間弱邊緣范圍的線稿則會(huì)進(jìn)行計(jì)算篩選。

以下面這張圖為例,預(yù)處理過(guò)程中檢測(cè)到 3 條邊緣線,其中 D 點(diǎn)位于非邊緣區(qū)域,因此直接被排除,而 A 點(diǎn)位于強(qiáng)邊緣區(qū)域被保留。雖然 B、C 點(diǎn)都位于弱邊緣區(qū)域,但由于 B 點(diǎn)和 A 點(diǎn)是直接相連的,因此 B 點(diǎn)也被保留,而與 C 點(diǎn)相連的線全都位于弱邊緣區(qū)域所以被排除。由此得到畫面中最終被保留的邊緣線只有 AB 這條線。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

理解了上面的概念,你也就知道閾值參數(shù)控制的實(shí)際上是邊緣線被識(shí)別的區(qū)間范圍,只要區(qū)間一致最終的線稿圖就會(huì)完全一樣。因此高低閾值參數(shù)之間實(shí)際上并沒有高低之分,低閾值的數(shù)值同樣可以比高閾值要大。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

總結(jié)來(lái)看,Canny 高低閾值參數(shù)作用是控制預(yù)處理時(shí)提取線稿的復(fù)雜程度,兩者的數(shù)值范圍都限制在 1~255 之間。

下圖中我們可以看到不同密度的預(yù)處理線稿圖對(duì)繪圖結(jié)果的影響,密度過(guò)高會(huì)導(dǎo)致繪圖結(jié)果中出現(xiàn)分割零碎的斑塊,但如果密度太低又會(huì)造成控圖效果不夠準(zhǔn)確,因此我們需要調(diào)節(jié)閾值參數(shù)來(lái)達(dá)到比較合適的線稿控制范圍。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

②MLSD 直線邊緣

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

下面我們?cè)賮?lái)看第二種控圖類型:MLSD 直線。MLSD 提取的都是畫面中的直線邊緣,在下圖中可以看到 mlsd(M-LSD 直線線條檢測(cè))預(yù)處理后只會(huì)保留畫面中的直線特征,而忽略曲線特征。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

因此 MLSD 多用于提取物體的線型幾何邊界,最典型的就是幾何建筑、室內(nèi)設(shè)計(jì)、路橋設(shè)計(jì)等領(lǐng)域。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

MLSD 預(yù)處理器同樣也有自己的定制參數(shù),分別是 MLSD Value Threshold 強(qiáng)度閾值和 MLSD Distance Threshold 長(zhǎng)度閾值。MLSD 閾值控制的是 2 個(gè)不同方向的參數(shù):強(qiáng)度和長(zhǎng)度,它們的數(shù)值范圍都是 0~20 之間。

Value 強(qiáng)度閾值用于篩選線稿的直線強(qiáng)度,簡(jiǎn)單來(lái)說(shuō)就是過(guò)濾掉其他沒那么直的線條,只保留最直的線條。通過(guò)下面的圖我們可以看到隨著 Value 閾值的增大,被過(guò)濾掉的線條也就越多,最終圖像中的線稿逐漸減少。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Distance 長(zhǎng)度閾值則用于篩選線條的長(zhǎng)度,即過(guò)短的直線會(huì)被篩選掉。在畫面中有些被識(shí)別到的短直線不僅對(duì)內(nèi)容布局和分析沒有太大幫助,還可能對(duì)最終畫面造成干擾,通過(guò)長(zhǎng)度閾值可以有效過(guò)濾掉它們。不過(guò)該參數(shù)對(duì)線稿密度的影響沒有那么明顯,在下圖中可以看到在極值情況下會(huì)有少部分線條被過(guò)濾掉。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

③Lineart 線稿

Lineart 同樣也是對(duì)圖像邊緣線稿的提取,但它的使用場(chǎng)景會(huì)更加細(xì)分,包括 Realistic 真實(shí)系和 Anime 動(dòng)漫系 2 個(gè)方向。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

在 ControlNet 插件中,將 lineart 和 lineart_anime2 種控圖模型都放在「Lineart(線稿)」控制類型下,分別用于寫實(shí)類和動(dòng)漫類圖像繪制,配套的預(yù)處理器也有 5 個(gè)之多,其中帶有 anime 字段的預(yù)處理器用于動(dòng)漫類圖像特征提取,其他的則是用于寫實(shí)圖像。

在下圖中我們可以看到,Canny 提取后的線稿類似電腦繪制的硬直線,粗細(xì)統(tǒng)一都是 1px 大小,而 Lineart 則是有的明顯筆觸痕跡線稿,更像是現(xiàn)實(shí)的手繪稿,可以明顯觀察到不同邊緣下的粗細(xì)過(guò)渡。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

雖然官方將 Lineart 劃分為 2 種風(fēng)格類型,但并不意味著他們不能混用,實(shí)際上我們可以根據(jù)效果需求自由選擇不同的繪圖類型處理器和模型。

下圖中為大家展示了不同預(yù)處理器對(duì)寫實(shí)類照片上的處理效果,可以發(fā)現(xiàn)后面 3 種針對(duì)真實(shí)系圖片使用的預(yù)處理器 coarse、realistic、standard 提取的線稿更為還原,在檢測(cè)時(shí)會(huì)保留較多的邊緣細(xì)節(jié),因此控圖效果會(huì)更加顯著,而 anime、anime_denoise 這 2 種動(dòng)漫類則相對(duì)比較隨機(jī)。具體效果在不同場(chǎng)景下各有優(yōu)劣,大家酌情選擇使用。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

為方便對(duì)比模型的控圖效果,選用一張更加清晰的手繪線稿圖分別使用 lineart 和 lineart_anime 模型進(jìn)行繪制,可以發(fā)現(xiàn) lineart_anime 模型在參與繪制時(shí)會(huì)有更加明顯的輪廓線,這種處理方式在二次元?jiǎng)勇蟹浅3R姡瑐鹘y(tǒng)手繪中描邊可以有效增強(qiáng)畫面內(nèi)容的邊界感,對(duì)色彩完成度的要求不高,因此輪廓描邊可以替代很多需要色彩來(lái)表現(xiàn)的內(nèi)容,并逐漸演變?yōu)閯?dòng)漫的特定風(fēng)格。可以看出 lineart_anime 相比 lineart 確實(shí)更適合在繪制動(dòng)漫系圖像時(shí)使用。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

④SoftEdge 軟邊緣

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Soft Edge 是一種比較特殊的邊緣線稿提取方法,它的特點(diǎn)是可以提取帶有漸變效果的邊緣線條,由此生成的繪圖結(jié)果畫面看起來(lái)會(huì)更加柔和且過(guò)渡自然。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

在 SoftEdge 中提供了 4 種不同的預(yù)處理器,分別是 HED、HEDSafe、PiDiNet 和 PiDiNetSafe。

在官方介紹的性能對(duì)比中,模型穩(wěn)定性排名為 PiDiNetSafe > HEDSafe > PiDiNet > HED,而最高結(jié)果質(zhì)量排名 HED > PiDiNet > HEDSafe > PiDiNetSafe,綜合考慮后 PiDiNet 被設(shè)置為默認(rèn)預(yù)處理器,可以保證在大多數(shù)情況下都能表現(xiàn)良好。在下圖中我們可以看到 4 種預(yù)處理器的實(shí)際檢測(cè)圖對(duì)比。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

下圖中分別使用不同預(yù)處理器進(jìn)行繪圖效果對(duì)比,體感上沒有太大差異,正常情況下使用默認(rèn)的 PiDiNet 即可。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

⑤Scribble 涂鴉邊緣

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Scribble 涂鴉,也可稱作 Sketch 草圖,同樣是一款手繪效果的控圖類型,但它檢測(cè)生成的預(yù)處理圖更像是蠟筆涂鴉的線稿,在控圖效果上更加自由。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Scribble 中也提供了 3 種不同的預(yù)處理器可供選擇,分別是 HED、PiDiNet 和 XDoG。通過(guò)下圖我們可以看到不同 Scribble 預(yù)處理器的圖像效果,由于 HED 和 PiDiNet 是神經(jīng)網(wǎng)絡(luò)算法,而 XDoG 是經(jīng)典算法,因此前兩者檢測(cè)得到的輪廓線更粗,更符合涂鴉的手繪效果。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

再來(lái)看看選擇不同預(yù)處理器的實(shí)際出圖效果,可以發(fā)現(xiàn)這幾種預(yù)處理器基本都能保持較好的線稿控制。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

⑥Seg 語(yǔ)義分割

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Segmentation 的完整名稱是 Semantic Segmentation 語(yǔ)義分割,很多時(shí)候簡(jiǎn)稱為 Seg。和以上其他線稿類控制類型不同,它可以在檢測(cè)內(nèi)容輪廓的同時(shí)將畫面劃分為不同區(qū)塊,并對(duì)區(qū)塊賦予語(yǔ)義標(biāo)注,從而實(shí)現(xiàn)更加精準(zhǔn)的控圖效果。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

觀察下圖我們可以看到,Seg 預(yù)處理器檢測(cè)后的圖像包含了不同顏色的板塊圖,就像現(xiàn)實(shí)生活中的區(qū)塊地圖。畫面中不同的內(nèi)容會(huì)被賦予相應(yīng)的顏色,比如人物被標(biāo)注為紅色、屋檐是綠色、路燈是藍(lán)色等,這樣限定區(qū)塊的方式有點(diǎn)類似局部重繪的效果,在生成圖像時(shí)模型會(huì)在對(duì)應(yīng)色塊范圍內(nèi)生成特定對(duì)象,從而實(shí)現(xiàn)更加準(zhǔn)確的內(nèi)容還原。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

針對(duì)不同顏色色值表示的含義,我這邊已經(jīng)為大家整理好完整的色值語(yǔ)義標(biāo)注文檔,需要的小伙伴可以在文章結(jié)尾處獲取。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Seg 也提供了三種預(yù)處理器可供選擇:OneFormer ADE20k、OneFormer COCO、UniFormer ADE20k。尾綴 ADE20k 和 COCO 代表模型訓(xùn)練時(shí)使用的 2 種圖片數(shù)據(jù)庫(kù),而前綴 OneFormer 和 UniFormer 表示的是算法。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

其中 UniFormer 是舊算法,但由于實(shí)際表現(xiàn)還不錯(cuò)依舊被作者作為備選項(xiàng)保留下來(lái),新算法 OneFormer 經(jīng)過(guò)作者團(tuán)隊(duì)的訓(xùn)練可以很好的適配各種生產(chǎn)環(huán)境,元素間依賴關(guān)系被很好的優(yōu)化,平時(shí)使用時(shí)建議大家使用默認(rèn)的 OneFormer ADE20k 即可。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

再來(lái)看看不同預(yù)處理器的實(shí)際出圖效果,這里我們將環(huán)境由白天切換到黑夜,可以發(fā)現(xiàn)由于算法數(shù)據(jù)庫(kù)不同,可識(shí)別的物體會(huì)稍有差異,比如第二種算法 OneFormer COCO 對(duì)書店雨棚的還原效果不是很好。實(shí)際使用時(shí)大家也可以根據(jù)語(yǔ)義數(shù)據(jù)表自行填充色塊來(lái)標(biāo)識(shí)對(duì)應(yīng)的畫面元素。

2. 景深類

前面的輪廓類都是在二維平面角度的圖像檢測(cè),有沒有可以體現(xiàn)三維層面的控圖類型呢?這就不得不提景深類 ControlNet 模型了。景深一詞是指圖像中物體和鏡頭之間的距離,簡(jiǎn)單來(lái)說(shuō)這類模型可以體現(xiàn)元素間的前后關(guān)系,包括 Depth 深度和 NormalMap 法線貼圖這 2 種老牌模型。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

①Depth 深度

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

深度圖也被稱為距離影像,可以將從圖像采集器到場(chǎng)景中各點(diǎn)的距離(深度)作為像素值的圖像,它可以直接體現(xiàn)畫面中物體的三維深度關(guān)系。學(xué)習(xí)過(guò)三維動(dòng)畫知識(shí)的朋友應(yīng)該聽說(shuō)過(guò)深度圖,該類圖像中只有黑白兩種顏色,距離鏡頭越近則顏色越淺(白色),距離鏡頭越近則顏色越深(黑色)。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Depth 模型可以提取圖像中元素的前后景關(guān)系生成深度圖,再將其復(fù)用到繪制圖像中,因此當(dāng)畫面中物體前后關(guān)系不夠清晰時(shí),可以通過(guò) Depth 模型來(lái)輔助控制。下圖中可以看到通過(guò)深度圖很好的還原了建筑中的空間景深關(guān)系。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Depth 的預(yù)處理器有四種:LeReS、LeReS++、MiDaS、ZoE,下圖中我們可以看到這四種預(yù)處理器的檢測(cè)效果。

對(duì)比來(lái)看,LeReS 和 LeReS++的深度圖細(xì)節(jié)提取的層次比較豐富,其中 LeReS++會(huì)更勝一籌。而 MiDaS 和 ZoE 更適合處理復(fù)雜場(chǎng)景,其中 ZoE 的參數(shù)量是最大的,所以處理速度比較慢,實(shí)際效果上更傾向于強(qiáng)化前后景深對(duì)比。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

根據(jù)預(yù)處理器算法的不同,Depth 在最終成像上也有差異,下面案例中可以看到 MiDaS 算法可以比較完美的還原場(chǎng)景中的景深關(guān)系,實(shí)際使用時(shí)大家可以根據(jù)預(yù)處理的深度圖來(lái)判斷哪種深度關(guān)系呈現(xiàn)更加合適。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

②NormalMap 法線貼圖

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

另一種可以體現(xiàn)景深關(guān)系的圖像叫 NormalMap 法線貼圖,要理解它的工作原理,我們需要先回顧下法線的概念。

我們?cè)谥袑W(xué)時(shí)期有學(xué)過(guò)法線,它是垂直與平面的一條向量,因此儲(chǔ)存了該平面方向和角度等信息。我們通過(guò)在物體凹凸表面的每個(gè)點(diǎn)上均繪制法線,再將其儲(chǔ)存到 RGB 的顏色通道中,其中 R 紅色、G 綠色、B 藍(lán)色分別對(duì)應(yīng)了三維場(chǎng)景中 XYX 空間坐標(biāo)系,這樣就能實(shí)現(xiàn)通過(guò)顏色來(lái)反映物體表面的光影效果,而由此得到的紋理圖我們將其稱為法線貼圖。由于法線貼圖可以實(shí)現(xiàn)在不改變物體真實(shí)結(jié)構(gòu)的基礎(chǔ)上也能反映光影分布的效果,被廣泛應(yīng)用在 CG 動(dòng)畫渲染和游戲制作等領(lǐng)域。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

ControlNet 的 NormalMap 模型就是根據(jù)畫面中的光影信息,從而模擬出物體表面的凹凸細(xì)節(jié),實(shí)現(xiàn)準(zhǔn)確還原畫面內(nèi)容布局,因此 NormalMap 多用于體現(xiàn)物體表面更加真實(shí)的光影細(xì)節(jié)。下圖案例中可以看到使用 NormalMap 模型繪圖后畫面的光影效果立馬有了顯著提升。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

NormalMap 有 Bae 和 Midas2 種預(yù)處理器,MiDaS 是早期 v1.0 版本使用的預(yù)處理器,官方已表示不再進(jìn)行維護(hù),平時(shí)大家使用默認(rèn)新的 Bae 預(yù)處理器即可,下圖是 2 種預(yù)處理器的提取結(jié)果。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

當(dāng)我們選擇 MiDaS 預(yù)處理器時(shí),下方會(huì)多出 Background Threshold 背景閾值的參數(shù)項(xiàng),它的數(shù)值范圍在 0~1 之間。通過(guò)設(shè)置背景閾值參數(shù)可以過(guò)濾掉畫面中距離鏡頭較遠(yuǎn)的元素,讓畫面著重體現(xiàn)關(guān)鍵主題。下圖中可以看到,隨著背景閾值數(shù)值增大,前景人物的細(xì)節(jié)體現(xiàn)保持不變,但背景內(nèi)容逐漸被過(guò)濾掉。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

對(duì)比 Bae 和 Midas 預(yù)處理器的出圖效果,也能看出 Bae 在光影反饋上明顯更勝一籌。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

3. 對(duì)象類

終于到了我們大名鼎鼎的 OpenPose,作為唯一一款專門用來(lái)控制人物肢體和表情特征的關(guān)鍵模型,它被廣泛用于人物圖像的繪制。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

①OpenPose 姿態(tài)

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

OpenPose 特點(diǎn)是可以檢測(cè)到人體結(jié)構(gòu)的關(guān)鍵點(diǎn),比如頭部、肩膀、手肘、膝蓋等位置,而將人物的服飾、發(fā)型、背景等細(xì)節(jié)元素忽略掉。它通過(guò)捕捉人物結(jié)構(gòu)在畫面中的位置來(lái)還原人物姿勢(shì)和表情。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

在 OpenPose 中為我們內(nèi)置了 openpose、face、faceonly、full、hand 這 5 種預(yù)處理器,它們分別用于檢測(cè)五官、四肢、手部等人體結(jié)構(gòu)。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

  1. openpose 是最基礎(chǔ)的預(yù)處理器,可以檢測(cè)到人體大部分關(guān)鍵點(diǎn),并通過(guò)不同顏色的線條連接起來(lái)。
  2. face 在 openpose 基礎(chǔ)上強(qiáng)化了對(duì)人臉的識(shí)別,除了基礎(chǔ)的面部朝向,還能識(shí)別眼睛、鼻子、嘴巴等五官和臉部輪廓,因此 face 在人物表情上可以實(shí)現(xiàn)很好的還原。
  3. faceonly 只針對(duì)處理面部的輪廓點(diǎn)信息,適合只刻畫臉部細(xì)節(jié)的場(chǎng)景。
  4. hand 相當(dāng)于在 openpose 基礎(chǔ)上增加了手部結(jié)構(gòu)的刻畫,可以很好的解決常見的手部變形問(wèn)題。
  5. full 是對(duì)以上所有預(yù)處理功能的集合,可以說(shuō)是功能最全面的預(yù)處理器。

想要將上面的處理器挨個(gè)記下十分麻煩,平時(shí)使用時(shí)建議直接選擇包含了全部關(guān)鍵點(diǎn)檢測(cè)的 full 預(yù)處理器即可。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

除了基本的人體姿勢(shì),預(yù)處理器中包含了對(duì)人物五官和手部的結(jié)構(gòu)信息,因此 OpenPose 在處理表情和手部等人體細(xì)節(jié)上是很不錯(cuò)的控圖工具。

4. 重繪類

接著是最后的重繪類模型,在之前圖生圖篇我們有重點(diǎn)介紹過(guò)圖像重繪的功能,而在 ControlNet 中對(duì)圖像的重繪控制更加精妙,我們可以理解成這類重繪模型是對(duì)原生圖生圖功能的延伸和拓展。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

①Inpaint 局部重繪

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

先來(lái)看看我們熟悉的局部重繪 ,ControlNet 中的 Inpaint 相當(dāng)于更換了原生圖生圖的算法,在使用時(shí)還是受重繪幅度等參數(shù)的影響。如下圖的案例中我們使用較低的重繪幅度,可以實(shí)現(xiàn)不錯(cuò)的真實(shí)系頭像轉(zhuǎn)二次元效果,且對(duì)原圖中的人物發(fā)型、發(fā)色都能比較準(zhǔn)確的還原。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

想配合 ControlNet 使用局部重繪 ,同樣需要在圖生圖中進(jìn)行操作,在涂抹完蒙版并設(shè)置參數(shù)后,我們打開 ControlNet 選擇局部重繪控制項(xiàng)。注意在圖生圖板塊使用 ControlNet 的局部重繪時(shí)默認(rèn)無(wú)需再額外上傳圖片,ControlNet 會(huì)自動(dòng)讀取圖生圖中上傳的圖片。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

下圖是圖生圖中局部重繪關(guān)閉和開啟 ControlNet 時(shí)的效果對(duì)比,同樣是在重繪幅度=1 的情況下,開啟 ControlNet 的畫面穩(wěn)定性會(huì)更強(qiáng),在和環(huán)境融合方面也可以處理的更好。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

局部重繪這里提供了 3 種預(yù)處理器,Global_Harmonious、only 和 only+lama,通過(guò)下圖案例整體來(lái)看出圖效果上差異不大,但在環(huán)境融合效果上 Global_Harmonious 處理效果最佳,only 次之,only+lama 最差。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

②Tile 分塊

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Tile 可以說(shuō)是整個(gè)重繪類中最強(qiáng)大的一種模型,雖然還處于試驗(yàn)階段,但依舊給社區(qū)帶來(lái)了很多驚喜,因此值得我們多花點(diǎn)時(shí)間來(lái)好好介紹下它。

在 SD 開源這大半年中,繪制超分辨率的高清大圖一直是很多極客玩家的追求,但限于顯卡高昂的價(jià)格和算力瓶頸,通過(guò) WebUI 直出圖的方式始終難以達(dá)到滿意的目標(biāo)。后來(lái)聰明的開發(fā)者想到 Tile 分塊繪制的處理方法,原理就是將超大尺寸的圖像切割為顯卡可以支持的小尺寸圖片進(jìn)行挨個(gè)繪制,再將其拼接成完整的大圖,雖然繪圖時(shí)間被拉長(zhǎng),但極大的提升了顯卡性能的上限,真正意義上實(shí)現(xiàn)了小內(nèi)存顯卡繪制高清大圖的操作。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

但這個(gè)過(guò)程中始終有個(gè)問(wèn)題困擾著很多開發(fā)者,那就是分塊后的小圖始終難以擺脫全局提示詞的影響。舉個(gè)例子,我們的提示詞是 1girl,當(dāng)圖像分割為 16 塊進(jìn)行繪制時(shí),每個(gè)塊都會(huì)被識(shí)別成一張獨(dú)立的圖片,導(dǎo)致每個(gè)塊中可能都會(huì)單獨(dú)繪制一個(gè)女孩。而 ControlNet Tile 巧妙的解決了這個(gè)問(wèn)題。在繪制圖像時(shí)啟用 Tile 模型,它會(huì)主動(dòng)識(shí)別單獨(dú)塊中的語(yǔ)義信息,減少全局提示的影響。具體來(lái)說(shuō),這個(gè)過(guò)程中 Tile 進(jìn)行了 2 種處理方式:

  1. 忽略原有圖像中的細(xì)節(jié)并生成新的細(xì)節(jié)。
  2. 如果小方塊的原有語(yǔ)義和提示詞不匹配,則會(huì)忽略全局提示詞,轉(zhuǎn)而使用局部的上下文來(lái)引導(dǎo)繪圖。

在之前圖生圖給大家介紹重繪幅度參數(shù)時(shí),有提到增大重繪幅度可以明顯提升畫面細(xì)節(jié),但問(wèn)題是一旦設(shè)定重繪幅度畫面內(nèi)容很容易就發(fā)生難以預(yù)料的變化,而配合 Tile 進(jìn)行控圖就能完美的解決這個(gè)問(wèn)題,因?yàn)?Tile 模型的最大特點(diǎn)就是在優(yōu)化圖像細(xì)節(jié)的同時(shí)不會(huì)影響畫面結(jié)構(gòu)。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

基于以上特點(diǎn),ControlNet Tile 被廣泛用于圖像細(xì)節(jié)修復(fù)和高清放大,最典型的就是配合 Tile Diffusion 等插件實(shí)現(xiàn) 4k、8k 圖的超分放大,相較于傳統(tǒng)放大,Tile 可以結(jié)合周圍內(nèi)容為圖像增加更多合理細(xì)節(jié)。關(guān)于圖像放大還有很多玩法可以給大家介紹,后面會(huì)單獨(dú)給大家出一期文章。理論上來(lái)說(shuō),只要分得塊足夠多,配合 Tile 可以繪制任意尺寸的超大圖。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Tile 中同樣提供了 3 種預(yù)處理器:colorfix、colorfix+sharp、resample,分別表示固定顏色、固定顏色+銳化、重新采樣。下圖中可以看到三種預(yù)處理器的繪圖效果,相較之下默認(rèn)的 resample 在繪制時(shí)會(huì)提供更多發(fā)揮空間,內(nèi)容上和原圖差異會(huì)更大。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

③InstructP2P 指導(dǎo)圖生圖

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

InstructP2P 的全稱為 Instruct Pix2Pix 指導(dǎo)圖生圖,使用的是 Instruct Pix2Pix 數(shù)據(jù)集訓(xùn)練的 ControlNet。它的功能可以說(shuō)和圖生圖基本一樣,會(huì)直接參考原圖的信息特征進(jìn)行重繪,因此并不需要單獨(dú)的預(yù)處理器即可直接使用。

下圖中為方便對(duì)比,我們將重繪幅度降低到 0.1,可以發(fā)現(xiàn)開啟 InstructP2P 后的出圖效果比單純圖生圖能保留更多有用細(xì)節(jié)。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

IP2P 目前還處于試驗(yàn)階段,并不是一種成熟的 ControlNet 模型,平時(shí)使用并不多,大家大致了解其功能即可。

④Shuffle 隨機(jī)洗牌

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

隨機(jī)洗牌是非常特殊的控圖類型,它的功能相當(dāng)于將參考圖的所有信息特征隨機(jī)打亂再進(jìn)行重組,生成的圖像在結(jié)構(gòu)、內(nèi)容等方面和原圖都可能不同,但在風(fēng)格上你依舊能看到一絲關(guān)聯(lián)。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

不同于其他預(yù)處理器,Shuffle 在提取信息特征時(shí)完全隨機(jī),因此會(huì)收到種子值的影響,當(dāng)種子值不同時(shí)預(yù)處理后的圖像也會(huì)是千奇百怪。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Shuffle 的使用場(chǎng)景并不多,因?yàn)樗目貓D穩(wěn)定性可以說(shuō)所有 ControlNet 模型中最差的一種,你可以將它當(dāng)作是另類的抽卡神器,用它來(lái)獲取靈感也是不錯(cuò)的選擇。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

三、社區(qū)模型解析

介紹完 14 種官方模型,下面我們?cè)賮?lái)看看一些常見的社區(qū)模型,由于沒有經(jīng)過(guò)系統(tǒng)測(cè)試和調(diào)整,這類模型可能存在質(zhì)量參差不齊的情況,且有些控制類型無(wú)需預(yù)處理器或無(wú) ControlNet 模型也能使用。

以下社區(qū)模型的使用頻率并不高,很多效果也是對(duì)現(xiàn)有功能的優(yōu)化或調(diào)整,大家大致了解其功能即可,如果有特定需求可以下載對(duì)應(yīng)模型進(jìn)行嘗試,其中有些已經(jīng)支持配合 SDXL 使用。

1. Reference 參考

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Reference 使用時(shí)不需要使用模型,它的功能很簡(jiǎn)單,就是參考原圖生成一張新的圖像,想使用它需要將 ControlNet 更新到至少 v1.1.153 以上。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Reference 的實(shí)際效果類似 InstructP2P 的圖生圖,這里提供了 3 個(gè)預(yù)處理器 adain、adain+attn、only。其中 adain、adain+attn 是 V1.1.171 版本后新增的預(yù)處理器,其中 adain 表示 Adaptive Instance Normalization 自適應(yīng)實(shí)例規(guī)范化,+attn 表示 Attention 鏈接。

根據(jù)作者測(cè)試,adain+attn 使用的是目前最先進(jìn)的算法,但有時(shí)效果過(guò)于強(qiáng)烈,因此依舊建議使用默認(rèn)的 only 預(yù)處理。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Reference 啟用后下方會(huì)出現(xiàn) Style Fidelity 風(fēng)格保真度的參數(shù)項(xiàng),數(shù)值越大則畫面的穩(wěn)定性越強(qiáng),原圖的風(fēng)格保留痕跡會(huì)越明顯。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

2. Recolor 重上色

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Recolor 也是近期剛更新的一種 ControlNet 類型,它的效果是給圖片填充顏色,非常適合修復(fù)一些黑白老舊照片。但 Recolor 無(wú)法保證顏色準(zhǔn)確出現(xiàn)特定位置上,可能會(huì)出現(xiàn)相互污染的情況,因此實(shí)際使用時(shí)還需配合如打斷等提示詞語(yǔ)法進(jìn)行調(diào)整。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Recolor 無(wú)需配合模型使用,這里也提供了 intensity 和 luminance2 種預(yù)處理器,通常推薦使用 luminance,預(yù)處理的效果會(huì)更好。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

Recolor 的參數(shù) Gamma Correction 伽馬修正用于調(diào)整預(yù)處理時(shí)檢測(cè)的圖像亮度,下圖中可以看到隨著數(shù)值增大,預(yù)處理后的圖像會(huì)越暗。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

4. T2I-Adapter 文生圖適配器

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

T2I-Adapter 由騰訊 ARC 實(shí)驗(yàn)室和北大視覺信息智能學(xué)習(xí)實(shí)驗(yàn)室聯(lián)合研發(fā)的一款小型模型,它的作用是為各類文生圖模型提供額外的控制引導(dǎo),同時(shí)又不會(huì)影響原有模型的拓展和生成能力。名稱中 T2I 指的是的 text-to-image,即我們常說(shuō)的文生圖,而 Adapter 是適配器的意思。

T2I-Adapter 被集成在 ControlNet 中作為某一控制類型的選項(xiàng),但實(shí)際上它提供了 Lineart、Depth、Sketch、Segmentation、Openpose 等多個(gè)類型的控圖模型來(lái)使用。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

T2I-Adapter 的特點(diǎn)是體積小,參數(shù)級(jí)只有 77M,但對(duì)圖像的控制效果已經(jīng)很好,且就在 9 月 8 日,它們針對(duì) SDXL 訓(xùn)練的控圖模型剛剛發(fā)布,是目前最推薦用于 SDXL 的 ControlNet 模型,但需要注意的是 SDXL 類模型對(duì)硬件要求較高,官方建議至少需要 15GB 的顯卡內(nèi)存,想體驗(yàn)的小伙伴可在下面地址中自行下載安裝到本地。

T2I-Adapter 控圖模型代碼倉(cāng)庫(kù)地址: https://huggingface.co/TencentARC/T2I-Adapter/tree/main/models

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

5. IP-Adapter 圖生圖適配器

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

IP-Adapter 是騰訊的另一個(gè)實(shí)驗(yàn)室 Tencent AI Lab 研發(fā)的控圖模型。名稱中的 IP 指的是 Image Prompt 圖像提示,它和 T2I-Adapter 一樣是一款小型模型,但是主要用來(lái)提升文生圖模型的圖像提示能力。IP-Adapter 自 9 月 8 日發(fā)布后收到廣泛好評(píng),因?yàn)樗谑褂脠D生圖作為參考時(shí),對(duì)畫面內(nèi)容的還原十分驚艷,效果類似 Midjourney 的 V 按鈕。它也同樣內(nèi)置了多種控圖模型,下圖中是官方提供的繪圖案例。

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

IP-Adapter 的參數(shù)級(jí)比 T2I-Adapter 更小,只有 22MB。IP-Adapter 也發(fā)布了針對(duì) SDXL_1.0 的控圖模型,感興趣的小伙伴可以通過(guò)下方的鏈接下載嘗試。

IP-Adapter 控圖模型代碼倉(cāng)庫(kù)地址: https://huggingface.co/h94/IP-Adapter

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

歡迎關(guān)注作者微信公眾號(hào):「樂伊體驗(yàn)筆記」

萬(wàn)字干貨!一口氣掌握14種 ControlNet 官方控圖模型的使用方法!

收藏 191
點(diǎn)贊 107

復(fù)制本文鏈接 文章為作者獨(dú)立觀點(diǎn)不代表優(yōu)設(shè)網(wǎng)立場(chǎng),未經(jīng)允許不得轉(zhuǎn)載。