Controlnet 允許通過(guò)線稿、動(dòng)作識(shí)別、深度信息等對(duì)生成的圖像進(jìn)行控制。
1. 安裝
自動(dòng)安裝
- 在
stable-diffusion-webui
頁(yè)面上找到Extensions
->Install from URL
,輸入插件的 git 地址,然后點(diǎn)擊 Install 即可, URL 如下:
https://github.com/Mikubill/sd-webui-controlnet.git
- 等待 loading 結(jié)束后,頁(yè)面底部會(huì)出現(xiàn)
Installed into xxx. Use Installed tab to restart.
提示
手動(dòng)安裝
- 進(jìn)入擴(kuò)展文件夾
cd ./stable-diffusion-webui/extensions
- 將項(xiàng)目文件下載至
extensions
文件夾
git clone https://github.com/Mikubill/sd-webui-controlnet.git
2. 啟用 Controlnet
- 依次找到
Extensions
->Installed
->Apply and restart UI
- 待
webui
重啟后,可以在txt2img
和img2img
中看到會(huì)多出來(lái)一個(gè)ControlNet
選項(xiàng) - 安裝完成
3. 配置 Controlnet
用戶(hù)提供一張參考圖( I o r i g i n I_{origin} Iorigin?),
ControlNet
根據(jù)指定的模式對(duì)參考圖進(jìn)行預(yù)處理,得到一張新圖( I n e w I_{new} Inew?),作為另一張參考圖;
根據(jù)提示詞(Prompt
),結(jié)合前面的參考圖,進(jìn)行圖像繪制,即 I o r i g i n + I n e w = I f i n a l I_{origin} + I_{new} = I_{final} Iorigin?+Inew?=Ifinal?
- 上述流程的兩個(gè)階段,對(duì)應(yīng)用到的模型有兩種:
-
ControlNet
官方下載地址
預(yù)處理器模型(annotator)
預(yù)訓(xùn)練模型(models)
ControlNet
官方存放在 huggingface 上的 預(yù)訓(xùn)練模型文件(models) 內(nèi)部包含了SD
的v1-5-pruned-emaonly
模型,這在stable-diffusion-webui
環(huán)境下是沒(méi)必要的,而且也造成了很多硬盤(pán)空間浪費(fèi),可以?xún)H下載裁剪版本
- 裁剪版本
預(yù)訓(xùn)練模型(models)
-
模型存放位置
- 插件的
models
存放目錄:./stable-diffusion-webui/extensions/sd-webui-controlnet/models
- 插件的
annotator
存放目錄:./stable-diffusion-webui/extensions/sd-webui-controlnet/annotator
- 插件的
-
注意: 預(yù)處理器模型(annotator)需按分類(lèi)目錄存放,例如:
-
body_pose_model.pth
和hand_pose_model.pth
應(yīng)保存到openpose
目錄; -
network-bsds500.pth
保存到hed
目錄; -
upernet_global_small.pth
則是保存到uniformer
目錄; - 其他模型文件可根據(jù)關(guān)鍵字,找到對(duì)應(yīng)存放目錄
-
-
在下載并存放好預(yù)處理器模型和預(yù)訓(xùn)練模型后,重啟
webui
即可使用
4. 預(yù)訓(xùn)練模型區(qū)別
詳見(jiàn) Github 倉(cāng)庫(kù)
- ControlNet with User Scribbles
control_scribble-fp16
支持新建白畫(huà)布,在上邊畫(huà)線條。模型將所畫(huà)作為輸入,并獲得對(duì)應(yīng)的輸出,使用人類(lèi)涂鴉控制SD。該模型使用邊界邊緣進(jìn)行訓(xùn)練,具有非常強(qiáng)大的數(shù)據(jù)增強(qiáng)功能,以模擬類(lèi)似于人類(lèi)繪制的邊界線。 - 例圖:
- ControlNet with Canny Edge
control_canny-fp16
需要提供一張圖片,預(yù)處理器使用 Canny 邊緣檢測(cè) 提取出邊緣線,模型使用這個(gè)邊緣線作為輸入,控制生成對(duì)應(yīng)的輸出,適用于給線稿上色,或?qū)D片轉(zhuǎn)化為線搞后重新上色,比較適合人物。 - 例圖:
- ControlNet with HED Maps
control_hed-fp16
需要提供一張圖片,預(yù)處理器使用 HED 邊緣檢測(cè) 提取軟邊緣,使用這個(gè)邊緣線作為輸入,控制生成對(duì)應(yīng)的輸出,提取的圖像目標(biāo)邊界將保留更多細(xì)節(jié),此模型適合重新著色和風(fēng)格化。 - 例圖:
- ControlNet with M-LSD Lines
control_mlsd-fp16
需要提供一張圖片,預(yù)處理器使用 M-LSD 邊緣檢測(cè) ,使用這個(gè)邊緣線作為輸入,控制生成對(duì)應(yīng)的輸出,該模型基本不能識(shí)別人物的,但非常適合建筑生成,根據(jù)底圖或自行手繪的線稿去生成中間圖,然后再生成圖片。 - 例圖:
- ControlNet with Human Pose
control_openpose-fp16
根據(jù)提供的圖片,獲得對(duì)應(yīng)的姿勢(shì)骨架圖作為輸入并生成對(duì)應(yīng)的結(jié)果,根據(jù)圖片生成動(dòng)作骨骼中間圖,然后生成圖片,使用真人圖片是最合適的,因?yàn)槟P蛶?kù)使用的真人素材。 - 例圖:
- ControlNet with Depth
control_depth-fp16
需要提供一張圖片,預(yù)處理器會(huì)使用 Midas 深度估計(jì) 獲取估計(jì)圖作為輸入,并根據(jù)深度估計(jì)圖生成輸出圖片,創(chuàng)造具有景深的中間圖,建筑人物皆可使用,Stability
的模型 64×64 深度,ControlNet
模型可生成 512×512 深度圖。 - 例圖:
- ControlNet with Normal Map
control_normal-fp16
根據(jù)提供的圖片,生成對(duì)應(yīng)的法線貼圖作為輸入。法線貼圖是一種模擬凹凸處光照效果的技術(shù),是凸凹貼圖的一種實(shí)現(xiàn),相比于深度 Depth Map 模型,法線貼圖模型在保留細(xì)節(jié)方面似乎更好一些。根據(jù)底圖生成類(lèi)似法線貼圖的中間圖,并用此中間圖生成建模效果圖。此方法適用于人物建模和建筑建模,但更適合人物建模。 - 例圖:
- ControlNet with Segmentation
control_seg-fp16
可以對(duì)圖像種的多個(gè)物體,比如建筑、天空、花草樹(shù)木等,進(jìn)行區(qū)塊分割,能夠很好的識(shí)別主體和背景,使用語(yǔ)義分割來(lái)控制SD
?,F(xiàn)在您需要輸入圖像,然后一個(gè)名為 Uniformer 的模型將為您檢測(cè)分割。 - 例圖:
-
Segmentation
使用 注意: 如果語(yǔ)義分割圖沒(méi)有生成出來(lái),請(qǐng)查看控制臺(tái)是否有報(bào)錯(cuò),另外,檢查一下upernet_global_small.pth
是否有保存到extensions\sd-webui-controlnet\annotator\uniformer
目錄。因?yàn)?SD
自己也有一個(gè)models\uniformer
目錄,如果前面沒(méi)有手動(dòng)放置好upernet_global_small.pth
模型文件,那么在用到Semantic Segmentation
模型時(shí),SD
會(huì)自動(dòng)下載一個(gè)默認(rèn)文件到它自己的models\uniformer
目錄,這種情況控制臺(tái)會(huì)報(bào)錯(cuò),可以排查到這個(gè)問(wèn)題。 - 可以看到,預(yù)處理階段生成了一張花花綠綠的圖片,這就是語(yǔ)義分割圖,這圖中的每一種顏色都代表了一類(lèi)物品,比如紫色(
#cc05ff
)代表床(bed),橙黃色(#ffc207
)代表墊子(cushion),金黃色(#e0ff08
)代表臺(tái)燈(lamp),ControlNet
的Semantic Segmentation
模型使用的是ADE20K
和COCO
協(xié)議,這些顏色值都可以在下面網(wǎng)址中找到對(duì)應(yīng)的含義:
https://docs.google.com/spreadsheets/d/1se8YEtb2detS7OuPE86fXGyD269pMycAWe2mtKUj2W8/edit#gid=0
https://github.com/CSAILVision/sceneparsing/tree/master/visualizationCode/color150 -
進(jìn)階: 修改某個(gè)物品的顏色,最終替換生成出來(lái)的圖中的物品,比如把臺(tái)燈(
#e0ff08
)換成花(#ff0000
)
5. 多 ControlNet 組合應(yīng)用
- 默認(rèn)情況下只能使用 ControlNet 操縱一種引導(dǎo)生成方式,通過(guò)更改設(shè)置,使 ControlNet 可以同時(shí)經(jīng)過(guò)多個(gè)模型引導(dǎo)輸出:
Settings
—ControlNet
—Multi ControlNet 的最大網(wǎng)絡(luò)數(shù)量
- 需要保存設(shè)置并重啟,啟用后可同時(shí)設(shè)置多個(gè) ControlNet,允許不同模型聯(lián)合控制與相同模型疊加控制,可用于約束多人動(dòng)作,也可用于多維度約束
- 若將其值調(diào)整為 3 ,就可以使用三個(gè) ControlNet 模型來(lái)影響最終圖像的生成,建議按需調(diào)整
- 使用實(shí)例:
完美照片(無(wú)限換裝法) - 知乎
ai繪畫(huà)怎么能畫(huà)出好圖? — 更好的圖生圖效果
6. 參數(shù)介紹
- 啟用(Enable)
- 勾選后,點(diǎn)擊生成按鈕時(shí),將會(huì)實(shí)時(shí)通過(guò)
ControlNet
引導(dǎo)圖像生成,否則不生效。
- 低顯存優(yōu)化(Low VRAM)
- 低顯存模式如果你的顯卡內(nèi)存小于4GB,建議勾選此選項(xiàng),需配合啟動(dòng)參數(shù)
--lowvram
使用
- 像素完美模式(Pixel Perfect)
- 如果啟用像素完美模式,就不需要手動(dòng)設(shè)置預(yù)處理器(annotator)的分辨率。
ControlNet
將自動(dòng)為您計(jì)算最佳分辨率,使每個(gè)像素都與穩(wěn)定擴(kuò)散完美匹配。
- Allow Preview
- 允許預(yù)覽圖像
- 預(yù)處理器(Preprocessor)
- 該列表是預(yù)處理器模型選擇,每個(gè)
ControlNet
的模型都有不同的功能,后續(xù)將會(huì)單獨(dú)介紹。
- 模型(Model)
- 該列表的模型選擇必須與預(yù)處理選項(xiàng)框內(nèi)的模型名稱(chēng)一致,如果預(yù)處理與模型不致也可以出圖,但效果無(wú)法預(yù)料,且并不理想。
- 權(quán)重(Weight)
- 權(quán)重代表使用
ControlNet
生成圖片的權(quán)重占比影響。
- Starting Control Step
- 開(kāi)始介入的步數(shù),以百分比表示,設(shè)置為 0 表示開(kāi)始時(shí)就介入,設(shè)置為 0.2 表示從 20% 的步數(shù)開(kāi)始參與作圖
- Ending Control Step
- 結(jié)束介入的步數(shù),以百分比表示,設(shè)置為 1 表示第 1 步就停止介入,設(shè)置為 0.9 表示到 90% 的步數(shù)結(jié)束參與作圖
- Control Mode
- 選擇權(quán)重的重要強(qiáng)度,相當(dāng)于從前版本的
Guess Mode
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-459578.html
- 畫(huà)面縮放模式(Resize Mode)
- 調(diào)整圖像大小模式:默認(rèn)使用縮放至合適即可,將會(huì)自動(dòng)適配圖片。
7. 版本對(duì)比
- 原版 canny 算法能主觀感受到模型的加載時(shí)間,壓縮版加載時(shí)間較快,1秒左右,生成的圖像在質(zhì)量上肉眼看不出差別,比如人物輪廓,五官位置等(背景有變化不算,這和模型特點(diǎn)有關(guān)系,canny 是提取輪廓,輪廓沒(méi)有大的變化那就不算)
- 騰訊t2i模型在速度上完勝壓縮版(因?yàn)槟P臀募容^?。?,在生成的結(jié)果上沒(méi)有明顯差異,但是有細(xì)微差異,比如臉型
- 下面參考其他博主的文章,對(duì)比下兩者的差異,如果想要快請(qǐng)使用壓縮版模型,如果要更快請(qǐng)使用騰訊t2i模型,就效果而言,孰優(yōu)孰劣請(qǐng)自行判斷,個(gè)人更傾向使用壓縮版模型
- 精確控制 AI 圖像生成的破冰方案,ControlNet 和 T2I-Adapter
ControlNet
和T2I-Adapter
有什么區(qū)別?ControlNet
在論文里提到,Canny Edge detector
模型的訓(xùn)練用了 300 萬(wàn)張邊緣-圖像-標(biāo)注對(duì)的語(yǔ)料,A100 80G 的 600 個(gè) GPU 小時(shí)。Human Pose
(人體姿態(tài)骨架)模型用了 8 萬(wàn)張 姿態(tài)-圖像-標(biāo)注 對(duì)的語(yǔ)料, A100 80G 的 400 個(gè) GPU 時(shí)。
而T2I-Adapter
的訓(xùn)練是在 4 塊 Tesla 32G-V100 上只花了 2 天就完成,包括 3 種 condition,sketch(15 萬(wàn)張圖片語(yǔ)料),Semantic segmentation map
(16 萬(wàn)張)和Keypose
(15 萬(wàn)張)。
兩者的差異:ControlNet
目前提供的預(yù)訓(xùn)模型,可用性完成度更高,支持更多種的condition detector
(9 大類(lèi))。
而T2I-Adapter
在工程上設(shè)計(jì)和實(shí)現(xiàn)得更簡(jiǎn)潔和靈活,更容易集成和擴(kuò)展(by 讀過(guò)其代碼的 virushuo)此外,T2I-Adapter
支持一種以上的condition model
引導(dǎo),比如可以同時(shí)使用sketch
和segmentation map
作為輸入條件,或在一個(gè)蒙版區(qū)域 (也就是inpaint
) 里使用sketch
引導(dǎo)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-459578.html
Reference
- 5分鐘學(xué)會(huì)Stable Diffusion強(qiáng)大的ControlNet插件
到了這里,關(guān)于stable-diffusion-webui 中 Controlnet 使用說(shuō)明的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!