老鹿學(xué)Ai繪畫:初窺ControlNet|安裝|通用參數(shù)講解


今天我們要分享的內(nèi)容視頻版如下,視頻已添加進(jìn)度條及配音,想要原視頻以及插件的鹿友公眾號后臺回復(fù)“463”獲?。?/p>
以下是圖文版內(nèi)容:
正文共:3267字 45圖
預(yù)計閱讀時間:9分鐘
嗨,好久不見,有快一個月沒有更新了,因為最近比較忙,但是又不忍心停更,所以只能晚上抽時間寫文,大家且讀且珍惜吧:

前面我們已經(jīng)花了9篇文章將Stable Diffusion的入門內(nèi)容介紹完了,如果還沒有看的鹿友墻裂推薦閱讀:

從今天開始我們將進(jìn)入Stable Diffusion進(jìn)階必學(xué)插件,ControlNet的學(xué)習(xí)。
雖然ControlNet總體學(xué)習(xí)起來難度不大,但是內(nèi)容還是挺多的,為了控制文章的篇幅以及視頻的時長,應(yīng)該會分好幾期來分享。
當(dāng)然更新頻次方面我自己也多多抓緊,盡量更新快一點,希望廣大鹿友多多支持。

01
ControlNet的概述
正式學(xué)習(xí)之前我們先來回顧上一篇文章結(jié)尾處對SD各項功能的總結(jié):

通過以上的總結(jié)可以看出,目前SD已經(jīng)能夠從很多方面控制出圖,但你會發(fā)現(xiàn)這種程度的控制是遠(yuǎn)遠(yuǎn)不夠的。
我這里用自己的照片舉例吧,例如我現(xiàn)在有這樣一張圖:

然后我希望生成的圖片都擺出和我一樣的姿勢,按照我們之前學(xué)習(xí)過的內(nèi)容,你可能首先會想到使用圖生圖的功能。
首先我們可以在提示詞中輸入如圖所示的提示詞:

可以看到當(dāng)我們在重繪幅度不高的情況下,也能一定程度上還原這個動作:

但由于圖生圖識別的是原圖的顏色,因此生成的圖片始終和原圖有些類似,包括衣服和背景。
而如果我們想要和原圖差異大一點,一旦提高重繪幅度,動作就很難保持:

可能需要不斷的抽卡才能得到一張合適的圖片,而結(jié)合ControlNet,例如Scribble這種模式,我們可以把圖片轉(zhuǎn)換為草圖,并且能一定程度上保證它的輪廓,

這樣我們就可以在較高重繪幅度的同時,基本保證姿勢的不變:

總結(jié)一句話,ControlNet就是進(jìn)一步通過其他維度來控制出圖的準(zhǔn)確度。
截止到寫文的時間2023年7月5號,ControlNet一共有14個模型:

并且還有很多預(yù)處理器:

另外ControlNet的更新相當(dāng)頻繁,據(jù)我觀察每2到3天好像就會更新一次,在我寫這篇文章的時候,它都已經(jīng)又更新了:

02
ControlNet的安裝
安裝ControlNet和普通插件一樣,可以通過網(wǎng)址安裝:

也可以在可用中搜索ControlNet,我由于已經(jīng)安裝過了,所以不會有顯示:

最后就是用離線壓縮包安裝,需要將壓縮包解壓到SD安裝目錄的extensions里,離線壓縮包我文后也會分享給大家:

安裝完畢之后你就可以在文生圖和圖生圖的界面看見ControlNet的選項卡了:

插件安裝完畢以后,默認(rèn)情況下模型這一欄是沒有的,因此就需要安裝ControlNet模型:

前面提到了目前ControlNet官方模型有14個,就是這些以pth結(jié)尾的文件,文后同樣會打包分享給大家:

下載以后請解壓到ControlNet的models文件夾里。
另外這個文件夾里本身包含了所有yaml配置文件,通常情況下你只用下載pth結(jié)尾的文件即可,當(dāng)然你將官網(wǎng)的yaml文件下載放進(jìn)去替換也可以。
下載完模型之后記得在ControlNet的模型欄位點刷新:

當(dāng)你在第一次選擇預(yù)處理器的時候,其實系統(tǒng)是會自動進(jìn)行一個預(yù)處理器模型的下載:

但很多時候會因為網(wǎng)絡(luò)問題下載失敗而導(dǎo)致ControlNet用不了,因此建議大家手動安裝一下預(yù)處理模型,模型同樣文后會分享給大家。
需要在ControlNet的annotator這個文件夾里,新建一個downloads的文件夾,然后把如圖所示的文件夾全部拷貝進(jìn)去:

安裝完畢以后我建議大家在設(shè)置中,把ControlNet的最大數(shù)量改為3或者5,這樣大家就可以多個預(yù)處理器同時使用,對出圖進(jìn)行疊加控制:

03
ControlNet通用參數(shù)
雖然ControlNet有很多預(yù)處理器和模型,但大部分參數(shù)屬于通用參數(shù)。
首先是加載圖片的區(qū)域,可以是一張正常的圖片,會根據(jù)你選擇的預(yù)處理器提取相應(yīng)的信息。
也可以直接使用骨骼圖,深度圖或輪廓圖等,這個我們以后再細(xì)說:

下方可以點擊創(chuàng)建新的空白畫布:

可以設(shè)置畫布的寬高尺寸之后,然后點擊創(chuàng)建:

創(chuàng)建之后你就可以直接在畫布上繪制草圖了,不過這個功能應(yīng)該很少用到:

創(chuàng)建畫布的旁邊是使用ControlNet讀取電腦攝像頭所拍攝到的畫面,我沒有攝像頭,所以暫時也沒用過這個功能:

下面一個功能,看提示是反轉(zhuǎn)攝像機(jī)的意思,沒用過:

當(dāng)你在ControlNet中上傳圖片以后,點擊第四個按鈕,那么SD出圖的尺寸將自動設(shè)置為和你上傳的圖相同:

激活啟用按鈕,ControlNet才能生效,低顯存優(yōu)化,建議顯卡緩存只有4G的情況下激活:

我們使用ControlNet生成信息圖的時候,信息圖的寬高比要盡量和出圖的設(shè)置相近。
因此例如出圖的尺寸設(shè)置為768*1024,在ControlNet中上傳的圖片最好也是同樣的寬高比:

而當(dāng)我們選擇一種預(yù)處理器的時候,可以手動設(shè)置預(yù)處理器的分辨率,數(shù)值越大生成的信息圖尺寸越大越精確,但消耗的資源也會越多,反之亦然。
因此當(dāng)我們出圖尺寸設(shè)置為768*1024,但是預(yù)處理器分辨率設(shè)置為512的時候,生成的信息圖尺寸就被調(diào)整為了512*683:

勾選這個完美像素選項,它會自動幫你匹配合適的預(yù)處理器分辨率,可以看到這個時候我們生成的信息圖尺寸就變成了768*1024:

ControlNet需要同時選擇預(yù)處理器以及對應(yīng)的模型才能起作用,默認(rèn)情況下是全部,需要你手動選擇,很不方便:

因此你可以直接選擇你想要控制的類型,這樣它就只會顯示該類型下的預(yù)處理器,并且自動匹配對應(yīng)的模型:

接下來三個參數(shù),控制權(quán)重不用多說,后面兩個參數(shù)分別是控制的起始及結(jié)束步數(shù),單位為百分比。
例如當(dāng)我的采樣迭代步數(shù)為20,起始控制步數(shù)為0.5,代表著ControlNet從第10步才開始起作用:

下面有三種控制模式,官方的算法寫的很玄乎,但其實就是字面的意思,均衡、提示詞更重要和ControlNet更重要:

畫面縮放模式和圖生圖中的縮放模式一樣,當(dāng)ControlNet中上傳圖的寬高比和出圖設(shè)置不同時,會根據(jù)不同的選擇方式調(diào)整圖片尺寸,這里就不再贅述了:

最下面這個參數(shù)字面意思看是將生成的圖自動發(fā)送回ControlNet中,但經(jīng)過我測試好像暫時沒有什么效果,暫且略過吧:

最后再補(bǔ)充一個漏說的知識點,前面我們提到了ControlNet中可以直接上傳信息圖,比如骨骼圖,輪廓圖等。
在圖片輸入框的下方會提示,當(dāng)你的圖片為白色背景黑色邊緣時,預(yù)處理器需要選擇為反轉(zhuǎn):

例如我這里上傳了一個白色背景黑色描邊的文字輪廓圖,控制類型選擇為canny,這是專門提取輪廓信息的預(yù)處理器。
預(yù)處理器中選擇反轉(zhuǎn),反轉(zhuǎn)這個預(yù)處理在所有的線條類控制里都有:

選擇完畢之后記得點擊爆炸圖標(biāo),前面忘記說了,使用ControlNet在確定預(yù)處理器和模型之后一定要點一下這個圖標(biāo),點擊之后就可以看到我們的圖片輪廓被提取出來了:

然后再在提示詞中輸入你想要的提示詞,就能很輕松的得到一個藝術(shù)字的效果了:


以上就是今天想要分享給大家的所有內(nèi)容。
本來想再單獨介紹一下canny處理器的參數(shù)的,但是今天的篇幅感覺已經(jīng)夠長了,我們以后再分享吧。
最后自我吐槽一下,這篇文章是7月5號晚上開始寫的,就這樣每天晚上寫一些,等到視頻剪輯完都7月10號了,阿西吧:

如果覺得對自己有所幫助,請不要吝嗇自己的點贊、點在看、轉(zhuǎn)發(fā)朋友圈,你們的支持對我很重要,謝謝!
更多內(nèi)容歡迎關(guān)注公眾號:
本文由“野鹿志”發(fā)布
轉(zhuǎn)載前請聯(lián)系馬鹿野郎