前言:
首先,既然你會來到這主題,我就假設你已經知道ControlNet是一個Stable diffusion webui下的外掛,常用於控制圖片人物的身體姿勢或其它內容,並且也知道它的用途與操作方式了,所以一些重複的步驟我就不多說了。
ControlNet 1.1更新方法:
更新方式沒什麼技術性,開啟SDW介面後,切換到Extensions頁籤,然後點擊Check for updates按鈕,等更新完成後重啟SDW即可完成安裝。
然而,網路上也有許多人直接更新之後遇到許多奇奇怪怪的狀況,如果是這種情形,我建議你就別糾結那些靈異現象了,直接把整個ControlNet重新安裝吧。
先照著
這篇文章中的第三個項目中的方式去移除原本的ControlNet,接著再照著
這篇文章中的新版安裝方式描述把ControlNet安裝回來即可。如果你是採用整個砍掉重裝的方式,那安裝後自然就會是最新的1.1版了,不需要再手動更新一次。
新舊相容:
ControlNet1.1對所有的解析模型都做了新的改進並建立了新的模型,但同時它也仍然相容舊的模型,只是改了名字。例如以前的depth現在叫做depth_midas,以前的normal叫做normal_midas等等。
但我建議你也別糾結如何新舊相容了,既然你都特地升級成新版了那就全面更新就好了,新模型有了全面的進化,實在沒有理由特地沿用舊版模型。
新模型下載:
新模型在
這邊下載,下載ptn檔就好,yaml檔是不需要的。
模型ptn檔版本號中的尾碼:
p=正式版本
e=測試中版本
u=未完成版本
(這邊參考一下就好,實際上你沒有那麼多選擇,
檔案列表中有什麼就下載什麼就好,
它並沒有真的列出所有新舊檔案)
下載後將ptn檔放置到"stable-diffusion-webui安裝資料夾\extensions\sd-webui-controlnet\models"即可。
沿續
上一篇教學的觀念,我仍然建議你不要一股腦就全下載,只要下載自己真正需要的模型就好,模型的主要名稱大致沒變,只是加上了新的版本號
v11而已。每個模型的作用,除了可以參考我上一篇教學的介紹,也可以直接看
原作者網站的說明。
如果你不是具有強迫症的學習狂人,其實參考我上一篇教學跟這篇教學也就差不多了,對於只想簡單輕鬆的畫畫美圖的人來說足夠了。
模型選用推薦:
大多數的常用模型我在
上一篇教學中已大致講過一遍,我這次就不再重複解釋,我直接列出三個我認為常用的模型。
其餘模型並非不好,而是它們的應用場景較專業或較特殊,例如有的是你要先另外準備好草稿/線稿/塗鴉稿做為基底再以圖生圖,而有的更偏向於修圖功能,例如對原圖的銳利化/清晰化/改變氛圍元素等等。我認為大多數人的繪圖模式都是改改prompt,套套一些外掛功能,然後點點滑鼠就畫出一張圖,會特地準備好一張草稿的人應該是較專業的族群。
我私心認為一般族群不需要那麼多複雜的功能,例如:我有試想過如果我想認真玩草稿生圖功能的話,那也許我要先手工畫好一張圖,然後掃瞄進電腦,再陽春一點就是用手機拍個手稿照片然後傳進電腦,萬一夠瘋的話就是為了玩這個特地買個繪圖板,不管怎麼想,都好像不是我會想做的事情。
當然,說穿了就是個懶字,我用不到不代表大家都用不到,學習達人想要更深入的了解這些東西的話,下面兩個github站點都是值得深入查看的:
新功能介紹:
新版的操作邏輯與舊版大致相同,我就不再重複解釋一遍了,但新版有幾個特別方便的新功能值得說說。
1.Pixel Perfect
新版本中,不再需要手動調整ControlNet的解析尺寸大小,並且也已經移除了尺寸調整功能,只要勾選Pixel Perfect即會自動將解析尺寸設成出圖尺寸大小。
舊版本是像下面這樣子,你每次都還要特地把ControlNet的解析尺寸大小調成與出圖設定一致,萬一你圖片尺寸頻繁變動的話每次都要調真的會煩死。Pixel Perfect的出現真的是一個非常有感的升級。
2.Send dimensions to stable diffusion
這個項目剛好與第一項中的Pixel Perfect是相反的,Pixel Perfect是使ControlNet的尺寸自動配合出圖尺寸,而Send dimensions to stable diffusion則是反過來使出圖尺寸自動調整為ControlNet的參考圖尺寸。
舉個例子,我先在ControlNet中讀入一張尺寸為864x544的參考圖,然後按下Send dimensions to stable diffusion按鈕,這時我的繪圖尺寸就會也自動變成864x544:
3.Allow Preview
在舊版本中,若想要得到圖片的解析結果,都要實際完成一次繪圖才會得到一張解析圖,在新版本中,只要勾選Allow Preview,接著點擊下方的爆炸小按鈕(Run Preprocessor)即可立刻得到一張解析結果。
4.Control Mode (Guess Mode)
這是一個新增的設定功能,可以當做一個更直觀的權重(weight)設定來看,不用調整數值,而是直接三選一:平衡/更重視prompt/更重視ControlNet。
實際使用範例:
1.openpose姿勢控制
首先從openpose開始,openpose這次提供了幾種組合:
它們所代表的意義如下:
openpose= 身體姿勢
openpose_face =身體姿勢+臉部表情
openpose_faceonly=臉部表情
openpose_full=身+臉+手全套
openpose_hand=身體姿勢+手部姿勢
openpose(控制身體姿勢)是最經典的使用方式,基本上毫無懸念:
2.openpose_faceonly表情控制
接著單獨來看看它的openpose_faceonly表情解析力如何,既然都要測表情了就找些比較誇張的表情來測,因為一般的微笑表情冷酷表情其實根本不需要ControlNet也畫的出來,有測等於沒測。
以下就找幾個奇特的表情來看看:
第一個表情
第二個表情
顯然這兩個表情都不夠力,只好來個更誇張的表情試試了:
從這三種表情測試來看,顯然表情偵測還有進步空間,表情的細微之處無法做到跟原圖完全一樣,尤其誇大的表情更是如此。但即使如此,也不減損它的價值,因為使用了表情控制之後確實畫出了許多更生動的表情,這仍然是個有趣且實用的功能,只是精準度還有進步空間。
目前的身體姿勢跟表情控制即使有些不穩定,但都算是進入可實用的階段了,倒是手部控制嘛...還是一言難盡。
3.openpose_full姿勢表情手勢全控制
最後來測試個全套控制,這邊一樣要找誇張的範例才有測試價值,所以川普老先生已經找不到適合的圖了。
值得注意的是,手勢(hand)的偵測是非常嚴格的,手部圖像必須十分鮮明才行,且手部圖像不可與背景混淆,一旦不符合標準,手部是偵測不出來的。
例如下面就是一個失敗的例子,肉眼可見的手部在ControlNet卻是無法被偵測:
像下面這張圖就沒有問題,不過這是個堪稱教科書等級的無聊範例:
然後...同樣不要對手勢控制有太多期待,該崩的時候還是會崩:
4.openpose特殊使用:多人照片
這好像也不是個新玩意,舊版的時候就能這樣用了,不過作者網頁有提到我還是說一下,如果參考圖源是多人照片那它同樣的也會解析出多人圖像:
5.inpaint重繪修圖
inpaint操作邏輯與SDW內建的inpaint功能雷同,用於針對特定範圍重繪修圖,我以下方這張眼睛跟手都怪怪的圖來試試:
首先在ControlNet載入這張失敗的圖,preprocessor與model都選擇inpaint,並且將眼睛與手部通通mask:
接著是在prompt中輸入一些有關眼睛與手的關鍵字:
然後點擊繪圖,即會出現一張新的圖片,這與內建的inpaint有點差別,圖片背景似乎被偷加了一些料。這個重繪過程中仍然是有隨機性的,每次的出圖結果都不相同,並且,手部仍然是痛點,失敗率依然偏高:
這個inpaint功能在txt2img或是img2img都是可以使用的,算是本次更新的亮點之一。
結語:
這次的版本號雖然只進了0.1,但新增與異動的內容也算是一次大改版了。
當然,我還是要再次強調,並非我沒介紹到的模型通通都沒用,其餘模型在本次的更新也都有各自的改善與進步,我只是優先介紹幾個實用性與泛用性較高的模型罷了。例如tile模型也是很厲害,適合用於對單一圖片瘋狂研磨+精修+放大+美化,但我在前幾篇文章也說過了,我是佛系繪圖派,所以我沒在使用tile。
我個人還是那個觀念,一個人的精力與時間都是有限的,一下子就全都要全都學沒好處,必須視自己的需求找出真正值得花費時間學習的目標。