ControlNet這個Stable diffusion外掛非常實用,也非常火紅,相關教學已可算是滿坑滿谷了,我這篇教學也沒什麼特別,主要只是想說這整個套件其實有很多功能並不實用,你只需要專注在自己真正需要的功能上就好,而我會列一些我自己的測試結果以證明我為什麼說有些功能並不實用。
本篇展示的照片人物來自我自行訓練並混合的幾個Lora,理論上應該不會太像實際真人,萬一有人覺得很像你自己的話,那一定是誤會,只是你長的太像網紅了。
ControlNet的安裝並不難,都是動動滑鼠幾秒鐘內的事,所以這一篇我比較有餘裕分享更多的測試細節。
控制動作,對於單純想看美女的繪圖族群來說好像不太重要,但其實我覺得不管對任何人來說都同樣重要,目前網路上一堆人的圖都長的像下面這樣就是直挺挺的站著,初看還會覺得驚艷,久了就覺得審美疲勞了:
但加上一些動作之後感覺就不同了,視覺上變得更豐富了,圖片也更像一個攝影作品了,這也使你的繪圖元素也多了更多可玩性,所以我也把ControlNet列為具有強烈重要性值得學習的主題之一:
ControlNet安裝方式依新舊版略有不同,但基本上都很簡單。
新版安裝方式:
新版已有內建在外掛清單中,安裝方式如下圖所示:
先啟動Stable diffusion webUI並打開介面,切換到Extensions頁籤下的Available子頁籤,接著點擊Load from按鈕就會跳出所有可用的外掛清單。
接著按Ctrl+F搜尋快捷鍵就會跳出搜尋框,在裡面打上controlnet,往下查找應該就會找到一個名為sd-webui-controlnet的外掛,直接點擊右側Install按鈕並稍待一下即可完成安裝,安裝後記得重整介面,或是直接重啟整個Stable diffusion webUI。
舊版安裝方式:
舊版的話可能還無法在內建清單找到,要一點手動過程但也不難。
安裝方法同樣是開啟Stable diffusion webUI介面並切換到Extensions頁籤,不同的是這時是要切換到Install from URL子頁籤,在URL for extension's git repository中填入網址:
https://github.com/Mikubill/sd-webui-controlnet
然後點擊Install按鈕即可完成安裝,完成安裝後一樣記得要重整或重啟介面。
模組下載與使用:
上一步安裝的只是功能架構,還要再下載相關模組才能發揮作用,模組
由此下載:下載後把模組檔案放到:
stable-diffusion-webui安裝資料夾\extensions\sd-webui-controlnet\models\
這邊可以看到模組很多也很大,你不需要全部下載,而且裡面有些東西很難用或是根本沒用,具體要下載哪些可以先看看我下一段的測試與介紹再決定。
但我並不會把所有模組通通都抓下來測,這太累也沒意義,但常被拿來討論的幾個我通通都會測到。
注意,ControlNet並非萬用萬能,如果來源圖片的動作太複雜的話,它可能會解不出來。
目錄與短評:
我這次會介紹五個比較常見的模組,但我覺得你並不會真的全部都需要
1.OpenPose骨架生圖:偵測照片生成動作骨架,並由此控制人物動作,生成的圖也還保有圖片的自由度不會過度參照原圖。而生成的骨架圖也能重複使用。這個強烈推薦必用。
2.Normal法線生圖:接近百分百還原參考照片,人物動作,服裝,週邊物件幾乎都能還原,是優點也是缺點,這讓你生成的圖幾乎被它控制住了,除非高度還原剛好就是你想要的。
如果你只是想要簡單的丟一張照片讓它參考照片繪圖的話,上面兩個模組就夠用了。另外三個模組雖然也都能以圖生圖,但它們的主要特色不在這邊。
3.Canny線稿生圖與4.Scribble塗鴉稿生圖,這兩個類型很像,我放在一起講,這兩個模組適合你手邊僅有簡單的線稿與塗鴉稿,而剛好你畫功不佳又想把這些草稿自動生出一份華麗完稿的時候,就適合用這兩個模組,或是你本人滿滿的創作欲,很愛畫又畫不漂亮的時候,這兩個模組都能幫你補全,甚至是補過頭。
但我認為,大部份的AI繪圖使用者都是基於有趣在享受全自動生成美圖的過程,也許願意自備畫稿的人是相對少的族群,這3跟4這兩個模組我基本上沒用過,對你來說有用嗎?
5.Depth(景深生圖):這個模組比較特別,能結合其它外掛做一些進階應用,但我覺得目前生成效果都不佳,勸你就別花腦力學了,等它進步一點再來。
第一個模組介紹:OpenPose(骨架圖生圖)
我先說結論,OpenPose是最重要且最實用的模組,一定要下載。而其它模組我基本上覺得不是不好用就是使用情況較為受限,如果你不是剛好有相關需求,可以說通通用不上。
這一段會一邊介紹實際操作細節一邊介紹OpenPose模組,操作細節只在這一段講解,後面就不再重複描述。
OpenPose的作用是會直接解析來源照片中人物動作並使你繪出的人物動作可以參照來源照片中的人物動作。
具體操作方式如下:
如果ControlNet有正確安裝的話,在繪圖介面中應該會出現一個ControlNet頁籤,先把它點開。
接著在此功能頁籤中,勾選Enable,下方選單中,選擇我們要用的功能與模組,以這段要使用的是Openpose為例,Preprocessor選單就要選擇Openpose,Preprocessor的意思是是否要對圖片做預解析,如果我們是直接傳入照片圖檔的話,這一欄就是要先做好選擇,反之,若我們傳入的是已解析過的線稿,則這欄就選擇None,要選擇None的場合我們稍後會做展示。
接著是第二個欄位Model,選擇我們要使用的模組,以這段為例同樣是選擇Openpose。
接著是最下方的Width+Height尺寸,填入你本次實際繪圖的目標長寬。
最後,在上面顯示Drop Image Here or Click to Upload的圖片框中,傳入一張你想做為動作參照來源的圖片,傳入方式可以是直接拖曳或是點擊後由檔案列表中選擇。這邊我選擇川普,這張圖非常重要,我後面的所有測試都會以這張圖為主,希望川普老人家不要跨海提告我侵犯他的肖像權。
設好參數,傳好參照圖之後,就完成設定了,可以開始繪圖了,照你平常的步驟去繪圖即可,畫出來的圖片人物動作就會自動參考這個動作圖了。
以下是繪圖結果,它是抓個大致的動作線條,但動作還原度已經很不錯了,如果覺得怪怪的主要是我的參照來源本來就是個怪動作。
繪圖結果除了會包含一般繪圖成品還會包含一個解析後的動作線稿,這個線稿可以按滑鼠右鍵儲存後重複利用。
接著示範一下,反過來使用上一步存下來的動作線稿來直接繪圖:設定項目大致相同,但因為我們傳入的是已經處理過的線稿,所以Preprocessor這邊選擇None,代表不需要再做任何預解析。
反向重複利用的結果也是差不多:
第二個模組介紹:Normal(法線圖生圖)
接著介紹第二個模組,Noram模組,操作細節大同小異就不多說了,主要就是把Preprocessor跟Model都改成Normal就行了。
繪製成品如下:可以發現它的還原度更高,手勢服裝都完全照著原圖還原了。如果你傳入的是細節更豐富的圖,例如桌上有杯子書本等等的狀況也都會忠實還原。但優點也是缺點,就是它對圖片的控制力道太強了,例如我的prompt中並沒有提到西裝,但生成的圖一定會學著川普穿西裝,你的圖片創意會被它控制住,但如果你剛好要的就是這種百分百還原的效果,Normal算是好用的。
如果你不希望它那麼的忠實還原的話,把Weight(權重)的值調低一點,畫面可以柔軟一點,不過它基本上還是走強力還原參考圖的風格。
降低權重後的產出,也許可以說線條有順一點,但相去不遠:
它同樣能產出一個解析圖稿:
然而跟Openpose不同的是,這圖稿無法反向重複使用,反向使用只會產出怪怪的圖:
事實上,只有Openpose的使用靈活度高而且解析線稿還能重複利用,Openpose以外的所有模型都無法這麼便利,所以以我的使用情況來說,我幾乎是只用Openpose。
第三個模組介紹:Canny(線稿生圖)
設定邏輯同上,修改兩個選單為Canny即可。
產出結果也是控制力偏強的那種:
它也會自動解析出一個線稿,但線條有點簡略,同樣無法重複反向使用,我就不再演示反向使用的醜圖了。
Canny的重點其實反倒不是傳照片畫圖這件事,它的重點是可以自動解析產出線稿,如果是美術相關工作者,常常需要產出線稿,用這工具可以省一點工夫。
第二個重點是,如果你很有創作欲但偏偏畫功不佳的話,這個功能可以給你一些幫助,但也因為它就是這麼高度自動化的工具,可能畫出來的東西不符合你的期待或是加工過度了。
例如,我用小畫家隨便畫個人:
記得,設定項中,因為這次丟的已經是不需解析的原生線稿了,Preprocessor要選擇None:
把上面那張隨手亂畫的異形圖丟給它自動補全的話,會是以下效果,這算是加工過度還是符合期待,就看你自己怎麼想了:
權重1的結果:
權重0.5的結果:它完全放飛自我了
第四個模組介紹:Scribble(塗鴉稿生圖)
這邊的參考圖一樣是使用我們的川大哥,產出結果如下:
並且也同樣會解析出一個無法重複使用的圖稿,我覺得這已經稱不上是塗鴉了:
既然這個模組是塗鴉稿生圖,那我剛剛畫的那張異形圖似乎可以再拿來測一次,設定方式與前幾個模組雷同,就是把Preprocessor設為None,Model選Scribble,然後傳入我剛剛用小畫家畫的圖:
雖然跟我的塗鴉比絕對是美化過度,但我就是畫一個人站著,它也是畫一個人站著,倒也不能說它在亂搞就是了。
第五個模組介紹:Depth(景深偵測生圖)
設定流程也是一樣,我就不再重複說明了,產出結果如下:
老實說測到現在我已經審美疲勞了,這模組也是還原力控制力很強那種。
它的解析結果同樣無法重複使用:
事實上,depth的重點也同樣不是傳照片生圖,它可以與其它外掛結合進行一些進階用法:例如用來解析還原背景建築物,再將建築物與人物結合,這讓你可以同時控制人物跟背景,但目前我覺得這技術還不成熟,生成的圖頗有違和感,我就不介紹了。你做兩層解析的結果就是背景歸背景,人物歸人物,它無法自動整合,我覺得現階段你還不需要浪費腦力去學這個。
我隨手試做的範例圖,如果後面改放一隻怪獸也許就合理了:
上圖是先解析建築物再解析人,下圖則是先解析人再解析建築物,這樣好像合理一點:
雖然湊一湊能湊出還算能看的圖,但要我給評價的話就是個有趣但不實用的功能,這種玩法除了有違和感的問題之外,你還要另外先準備好背景素材,並且生成結果可能跟你準備的素材毫不相關,毫無可控性。
第二個進階用法也是與其它外掛配合,去控制人物手勢,AI繪圖的手部一直是個強大痛點,能控制人物手勢好像很厲害?但它的狀況跟上面講的一樣,生出來的手一樣違和感很高,完全不實用:
例如,我設定好的手勢應該要長這樣:
但生成結果並沒有忠實還原我的設定手勢,而且一樣把手畫崩了:
既然這套功能中的手指同樣是隨機生成,並且同樣會畫崩,那跟我自己隨機亂畫有什麼不同?
我們確實很需要有手勢指定功能,但顯然這還不符合期待。