AIGC技巧2:SD插件ControlNet詳解讓AI更易掌控!

中關村在線 2024-05-09 07:11:20

Stable Diffusion是目前應用最廣泛的本地AIGC,AI的最大特點就是強隨機性,雖然在大部分時候它是優點,但難以掌控,隨機抽卡也讓用戶頗爲頭疼。今天我們就爲大家詳細介紹一下Stable Diffusion中的ControlNet插件,它可以極大降低抽卡的隨機性,讓用戶更容易的控制AI出圖。

ControlNet是什麽?有什麽作用?

ControlNet是Stable Diffusion中的一款超強插件,它不同于模型,不會控制出圖的風格,而是在底部的菜單欄中調用。

ControlNet需要結合不同大模型使用,插件本身的模型用于控制單元計算。

ControlNet可以多單元組合應用,增強出圖控制。

ControlNet可以控制人物姿勢、線稿生圖(多種風格可選)、老照片上色、光影藝術字、固定照片物體生圖、固定景深生圖等等。

1 ControlNet插件界面講解

在這裏我們就不講SD的操作以及插件的安裝了,默認大家已經下好秋葉大神的整合包(裏面包含ControlNet),如果想了解基礎操作,可以翻看我前一篇文章。

AIGC技巧:SD圖生圖 如何控制變量生成想要的效果?

下面直接來看看ControlNet操作界面:

1.工作單元,ControlNet運行時可多單元同步參與計算

2.圖像區,上傳照片、手繪、效果預覽(ControlNet的本質仍是圖生圖)

3.輔助功能區,新建畫布,打開攝像頭,尺寸同步等

4.設置勾選,勾選啓用生成的圖片才會參考ControlNet插件效果

5.控制類型,不同生成效果

6.模型區,ControlNet生成必須要有對應模型,預處理器可以空白

7.生成權重和介入控制區(這裏我們後面詳細講解)

8.簡單的字面意思

2 測試平台

SD出圖對于顯卡算力和顯存的要求不過多贅述了,ControlNet對于顯存的要求同樣很高。在常規文生圖中,我們大多數時間會參照模型(512×512或1024×1024)的尺寸進行生成。

但圖生圖會根據原圖尺寸進行調整,如果想生成一次可用的圖片,尺寸要比模型大很多,這時候對于顯存的要求就非常高。

本次測試平台我們選擇了技嘉提供的整機,整體采用純白配件打造,兼顧美觀與性能。對于內容創作者或玩家來說,也是桌搭非常好的選擇。

顯卡爲技嘉GeForce RTX 4080 SUPER AERO OC雪鷹,RTX 4080擁有16GB大顯存,304個Tensor Cores,達到780 AI TOPS,在簡單的內容創作和日常主流AIGC軟件中,都能夠提供高速穩定的體驗。

主板爲技嘉B760M冰雕,采用16(14+1+1)相供電,且采用了M.2全覆蓋散熱以及供電全覆蓋散熱,輕松駕馭i9級處理器。

另外在AIGC軟件中,圖像或視頻的生成均以GPU爲主,在算力上GPU也要比CPU高出幾十倍。不過我們在長時間的生成中,不可能幹等著,所以一顆好的CPU也能夠讓我們同時處理更多工作。

下面直接進入正題,來看看ControlNet到底有何神奇之處。

PS:由于時間有限,每種效果僅用了簡單的提示詞控制,生成圖像比較簡陋。如果想生成理想圖像,大家還需要在提示詞上進行打磨,反複實驗。

3 Canny(硬邊緣)

Canny可以識別到畫面中非常詳細的線條,能夠最大程度還原照片,可以說是ControlNet中約束性最強的控制。

在第一次講解中,我們先大概了解一下ControlNet的操作流程。

首先上傳一張圖片後,如果生成想保持原圖的尺寸,可以點擊預處理結果預覽右下方的上剪頭;

在控制類型中選擇好Canny後,下面的預處理器和模型會自動變成Canny對應的,大部分時間無需手動調節。但有時預處理中會有不同分支,需手動選擇。

點擊對話框中的爆炸圖表,插件就會生成一張由該模型控制的預處理效果。從圖中能看到在硬邊緣模式下,生成圖像爲包含了所有邊緣的黑白線稿。

控制權重默認爲1,也是最爲均衡的;引導介入時機和引導終止時機,可以理解爲ControlNet在生成這張圖片中參與了哪些部分,默認的0-1就是全程參與。

4 SoftEdge(軟邊緣)

用了最簡單的Canny講解操作方法後,我們再來看SoftEdge,相比硬邊緣,它在預處理效果中的線條比較柔和,沒有框定所有約束,給AI發揮的空間也就越大。

5 Lineart(線稿)

Lineart是專門提取線稿的模型,相比硬邊緣和軟邊緣,它更接近手繪的風格,並且可以針對不同類型的圖片進行不同的處理。

可以看到在不同線稿的提取方法中,預處理的線稿差別會很大,上圖中標准線稿提取-白底黑線反色,比較好的還原了整個場景的結構和關系,但是它與硬邊緣不同的是,僅靠白底反色處理,所以邊緣仍然較爲柔和,出圖效果在最大程度還原原圖結構外,也會有一些發揮空間。

而在coarse(粗略線稿提取)中,則更像標准的手繪線稿,而且它更偏向描繪主體。不過這樣的問題就是AI發揮度更大,關鍵詞少的話更容易崩。

在realistic(寫實線稿提取)中,風格化更爲明顯。不過這幾種先搞提取方法整體的出圖效果大同小異,如果默認標准的提取無法達到效果,可以試試不同的手法。

6 Scribble/Sketch(塗鴉/草圖)

Scribble/Sketch的風格更爲粗犷一些,基本只保留了圖片中的大致輪廓,所以生成出來的圖片也只能看出與原圖神似,但完全不是一回事。

不過既然是塗鴉玩法,那麽使用照片顯然有點違背初衷,在草稿上隨便畫幾條線,然後靜靜看著AI能夠聯想出來什麽,才是最有意思的。

而且這個功能相比NVIDIA Canvas所呈現的效果更好,畢竟Canvas是用畫筆顔色代替物體,有點類似于Segmentation的效果,而Scribble/Sketch只是用畫筆給了輪廓,重要的還是靠提示詞來生成。

7 MLSD(直線)

MLSD是僅能提取直線的線稿,一般在建築,或家居場景中使用的比較多,不過我們依然能發現一些有意思的用法。

可以看到模型將顯卡邊框的線條全部提取了出來,但是轉角部位的弧形則沒有。而且直線提取,少了很多具象化的東西,想象空間更大,非常容易出現意想不到的效果。

小結

上面幾種都是屬于線稿出圖,只是在細分領域中有所區別。用過圖生圖的大家都知道,它依靠原圖的效果來控制生成圖像,所以可以做到與原圖很像,但自由度非常小。想要更大的自由度又非常難以控制。

ControlNet這幾個模型的本質上來說還是圖生圖,但相比圖生圖,它相當于有了一層蒙版,自由度更高,更可控。

8 Openpose(姿態)

Openpose是非常實用的一個工具,SD生圖最大的困難就是對于姿態的控制,往往僅靠提示詞,AI無法明確我們想表達的內容,而Openpose的火柴人就可以完美還原圖中角色的姿態,更厲害的是,它還可以調節多人的不同姿態。

全身像適合full預設,姿態、手部及臉部都會被火柴人框住

Openpose預設中分的較爲細致,對應不同的構圖,可選擇臉部、手部、姿態等範圍。

在Openpose中,除了預處理,還可以手動調節捕捉細節,從而保障畫面的真實or誇張,比如大家也可以把自己照片的腿部拉長,這樣就會在其他結構不變的情況下,生成一個大長腿小姐姐。

9 Recolor(重上色)

Recolor可以對圖片進行重新上色,它可以將現有的彩色照片進行黑白處理,然後重新由提示詞填上顔色;但爲黑白照片添加顔色應該才是大家最期望看到的,

爲黑白老照片上色其實比較困難,首先老照片的清晰度都比較低,灰階也沒有現代黑白照片那樣對比明顯,AI識別起來很困難;另外老照片特有的噪點和馬賽克又爲AI區分細節增加了困難。

如果想要高清還原一張彩色照片,可以分爲幾步:1、運用AI的高清修複,先將照片分辨率放大;2、消除噪點、修複損壞部分;3、最後再進行上色填充。

不過相比于高分辨率無噪點的AI精修,個人還是更傾向于老照片那種“低保真”的年代感。其實用高糊原片,我們同樣能夠再利用PS對多張圖片進行疊加處理,從而保留相對准確的部分。

10 AI光影藝術字

這一部分我沒有寫對應的控制類型,它可以用ControlNet自帶的Tile/Blur(分塊/模糊)來制作,也可以用自己下載的模型,都能達到想要的效果。

比如上面的圖片,我使用了Control_v1p_sd15_brightness模型來制作,它能夠將字體通過光影的形式更好的融入圖片中。

這裏重點講解一下AI藝術字的設置,原始圖像可以在PS中直接寫好字導出圖片,或者使用ControlNet自帶的畫筆進行塗鴉。

如果使用Tile/Blur自帶的模型,預處理器和模型這裏都無需改動,如果想要選擇自己下載的模型,預處理器需要選擇none,然後刷新模型,找到自己想要的。

控制權重、引導介入時機、引導終止時機在其他模型中都是默認的,不過在藝術字中均要手動調節。

控制權重設置爲0.5爲宜,如果是1的話會讓字體過于突出,而出現上圖的效果。

引導介入時機和引導終止時機這兩項是相輔相成的,0-1代表藝術字全程參與畫面的叠代生成,但那樣得出的效果與控制權重爲1差不多。通常設置爲0.2-0.4左右,代表著畫面叠代在20%-40%的時間段有字體參與。

但這一數值並不絕對,如果你的畫面叠代步數越高,引導終止時機則可以越大。

如果想要得到理想效果,仍需要多次嘗試。在提示詞、字體、大小、介入終止時機均達到理想平衡時,再更換文字,就能夠比較快速的批量出圖了。

11 Depth(深度)

Depth則可以很好地控制原圖中的景深,如果想保持圖像中的縱深結構可以選擇。除了街景,在室內場景中,AI往往會生成出空間錯亂的圖片,Depth能夠完美解決這一點。

Depth的發揮空間也非常大,能夠看到它的預處理圖像僅有“近白遠黑”的概念,所以如果看到有哪些喜歡的構圖,可以利用Depth借鑒一下。

除了ControlNet預處理的黑白圖像,所有的模型都可以自定義上傳蒙版,大家在PS中可以把過于突出的元素抹掉或增減,防止上圖中出現明顯邊緣的情況。

12 NormalMap(法線貼圖)

NormalMap比較神奇,它能夠計算圖片中主體的明暗關系,並且相對較爲還原原圖的姿勢。

不過相對來說,NormalMap在預處理之後的修改空間不大,如果是普通的二三次元轉換,不如線稿來的方便可操作性強;但如果是明暗光影效果較強的圖片,想要保留這些細節的話NormalMap是不錯的選擇。

13 Segmentation(語義分割)

Segmentation擁有超強的穩定性和發散性,它的預處理結果不像其他模型是線稿,而是色塊圖,不同色塊也有對應的不同物體。

可以看到Segmentation擁有超強的固定性,雖然預處理只是一些不同的色塊,但每個色塊都代表著固定的東西,這個模型也非常適合居家類風格,它可以將物體原本的形狀固定住,然後轉換爲任何形式。

另外,雖然是色塊圖,但Segmentation不像NormalMap的預處理那麽難以修改,知道了顔色代碼之後,用戶同樣可以自行繪制色塊到蒙版上,生成圖像中就會出現對應的物體;以及在預處理識別不准確的時候也可以手動修改。

14 總結

這次技巧相對比較詳細的介紹了ControlNet的各種控制類型,一些沒講到的相對大同小異,或者可替代性較強,當然大家也可以自行嘗試。由于時間關系,本次所有模型出圖均以演示爲主,效果有所欠缺。

ControlNet本質上來講,依然是圖生圖。但相比SD自帶的圖生圖,它又更偏向以文字生成。在都有原圖約束的情況下,他們最大的區別在于ControlNet擁有多種底稿的控制類型,如邊緣線稿、深度、光影、姿態等。

所以它能夠在遵循原構圖的情況下,對生成圖像隨意調整,而SD自帶圖生圖想要擁有自由度,則需要靠重繪幅度來調整,但這樣一來會對原圖有較大破壞。

最後總結一下ControlNet中容易碰到的坑:

1、提示詞很重要,沒有正反提示詞,即使有原圖打底也容易生成奇怪的東西

2、更換大模型後,需要注意ControlNet模型是否丟失

3、所有ControlNet生圖都會附帶一張預處理結果預覽,沒有的話代表ControlNet沒有啓用

4、ControlNet必須要使用對應模型,但它的模型與大模型不同,不控制生圖風格,更偏功能性

5、使用放大塗鴉繪制時,一定一定一定不要點這個叉子,它是刪除圖像,不是讓圖像複位……

(8690529)

0 阅读:1