ControlNetV1.1 基本配置

ControlNet已經(jīng)更新到V1.1.230了。

ControlNet概述
? ? 引用ControlNet提出者編寫的論文(地址:https://arxiv.org/abs/2302.05543)的描述:
This paper presents ControlNet, an end-to-end neural network architecture that controls large image diffusion models (like Stable Diffusion) to learn task-specific input conditions.The ControlNet clones the weights of a large diffusion model into a "trainable copy" and a "locked copy": the locked copy preserves the network capability learned from billions of images, while the trainable copy is trained on task-specific datasets to learn the conditional control.
機(jī)翻:ControlNet是一種可控制大型圖像擴(kuò)散模型(如Stable Diffusion)以學(xué)習(xí)特定于任務(wù)的輸入條件的端到端神經(jīng)網(wǎng)絡(luò)架構(gòu)。ControlNet 將大型擴(kuò)散模型的權(quán)重克隆到“可訓(xùn)練副本”和 “鎖定副本”中。鎖定副本保留了從數(shù)十億張圖像中學(xué)習(xí)到的網(wǎng)絡(luò)能力,而可訓(xùn)練副本則在特定任務(wù)的數(shù)據(jù)集上進(jìn)行訓(xùn)練以學(xué)習(xí)條件控制。
簡(jiǎn)單來(lái)說(shuō),ControlNet是基于Checkpoint模型進(jìn)行微調(diào)的技術(shù)。本文無(wú)意探究ControlNet的具體技術(shù)細(xì)節(jié),而是從使用方面提出自己一些淺顯的理解,目的是為了讀者能夠?qū)ontrolNet的基礎(chǔ)模型有初步的了解。同時(shí),如果可以的話本文也會(huì)給出一些可通過(guò)ControlNet與其它插件或技術(shù)協(xié)同的簡(jiǎn)單案例。受作者水平和精力所限無(wú)法對(duì)所有可能的場(chǎng)景進(jìn)行介紹,敬請(qǐng)諒解。

通用操作
本文基于ControlNet V1.1.230及Stable Diffusion Webui 1.4.0版本所著。因ControlNet更新迭代快,為達(dá)到更好的學(xué)習(xí)、使用體驗(yàn),您應(yīng)該用更新的版本。常用的整合包支持插件的更新功能,如果您需要自行安裝和更新請(qǐng)打開Extensions(擴(kuò)展)選項(xiàng)卡,在Install from URL(從網(wǎng)址安裝)輸入github地址(https://github.com/Mikubill/sd-webui-controlnet)進(jìn)行安裝,在Installed(已安裝)中進(jìn)行更新。
如個(gè)人認(rèn)為非重點(diǎn)內(nèi)容則不再另行說(shuō)明,下述的內(nèi)容盡量保持成稿時(shí)最新的內(nèi)容至教程更新結(jié)束。
先看下通用的操作,在txt2img(文生圖)、img2img(圖生圖)下都可以找到ControlNet插件。

從上到下簡(jiǎn)單介紹一些個(gè)人認(rèn)為比較重要的選項(xiàng),加粗選項(xiàng)為ControlNet V1.1新增功能:
ControlNet Unit:截圖展示了Unit 0-Unit 3決定了最大能開4個(gè)Multi ControlNet,截圖勾選了2個(gè)。(絕大多數(shù)情況用不了4個(gè),開多了顯存可能不夠)
Single Image(單張圖像):可以點(diǎn)擊打開對(duì)應(yīng)圖像文件或者拖動(dòng)圖像文件到Image區(qū)域。
Batch(批量處理):從文件夾里批量打開圖像文件。
Enable(啟動(dòng)):?jiǎn)?dòng)當(dāng)前的Unit,不勾選的話即使選擇了其它選項(xiàng)也是不生效的。
Low VRAM(低顯存模式):在顯存不足的時(shí)候啟用。如果運(yùn)行圖像文件分辨率高或者開Multi ControlNet提示CUDA out of memory時(shí)可以勾選試試。
Pixel Perfect(完美匹配像素):勾選后由ControlNet計(jì)算出預(yù)處理的最佳分辨率,直接勾選就好。
Allow Preview(允許預(yù)覽):勾選后圖像右邊會(huì)顯示Preprocessor Preview界面,直接勾選就好。
Control Type(控制類型):選擇控制類型,例如Canny為生成精確邊緣等,本系列會(huì)提及這方面內(nèi)容,不用著急。
Preprocessor(預(yù)處理):對(duì)圖像的處理方式,選擇了Control Type后自動(dòng)帶入可選項(xiàng)。點(diǎn)擊右邊的“爆炸”按鈕將預(yù)處理的結(jié)果顯示在Preprocessor Preview界面。
Model(模型):選擇了Control Type后自動(dòng)帶入可選項(xiàng)。如果導(dǎo)入了新模型則點(diǎn)擊右邊的“刷新”按鈕加載,平時(shí)不需要點(diǎn)擊。
Control Weight(控制權(quán)重):代表了ControlNet“影響”的權(quán)重。這類似于提示注意力/強(qiáng)調(diào)。從技術(shù)上講,它是在將ControlNet輸出與原始SD Unet合并之前乘以控制網(wǎng)絡(luò)輸出的因素,默認(rèn)為1。
(Starting/Ending) Control Step(啟動(dòng)/結(jié)束的步數(shù)):引導(dǎo)啟動(dòng)/結(jié)束是控制網(wǎng)應(yīng)用的總步數(shù)的百分比(引導(dǎo)強(qiáng)度 = 引導(dǎo)結(jié)束)。例如0.8就是它從開始一直適用到總步數(shù)的 80%,默認(rèn)為0和1,代表一直生效。作用原理比較復(fù)雜,保持默認(rèn)就好,當(dāng)然也可以多次調(diào)整看看效果。
Control Mode(控制模式):
Balance(平衡)ControlNet會(huì)在CFG scale中取得平衡。一般保持這個(gè)選項(xiàng)。
My prompt is more important(我的提示更重要)通過(guò)這種方式,您可以確保您的提示完美地顯示在生成的圖像中。建議提示詞非常多的時(shí)候使用。
ControlNet is more important(ControlNet 更重要)這種“更強(qiáng)”的效果通常具有較少的偽影,并為 ControlNet 提供了更多的空間來(lái)猜測(cè)提示中缺少的內(nèi)容。建議提示詞非常少時(shí)使用。

Resize Mode(縮放模式):
Just resize(拉伸) 將圖像調(diào)整為目標(biāo)分辨率。除非高度和寬度完全匹配,否則圖片會(huì)被擠壓。
Crop and resize(縮放)調(diào)整圖像大小,使整個(gè)目標(biāo)分辨率都被圖像填充,裁剪多余部分。默認(rèn)選項(xiàng),當(dāng)原圖的寬度和高度與生成圖不一致時(shí),且不需要額外內(nèi)容時(shí)選擇它。
Resize and fill(填充)調(diào)整圖像大小,使整個(gè)圖像在目標(biāo)分辨率內(nèi)。用圖像的顏色填充空白區(qū)域。當(dāng)生成圖的分辨率大于原圖,選擇該選項(xiàng)會(huì)對(duì)原圖分辨率外的部分額外擴(kuò)充。
學(xué)習(xí)方法
看到上述那么多的參數(shù),相信第一次接觸的讀者可能已經(jīng)不知道該怎么辦了。盡可能的避開技術(shù)原理講實(shí)現(xiàn)是本文的目的,但是有沒(méi)有更直觀的方式能夠盡可能快速的了解各參數(shù)、各預(yù)處理器的作用呢?下面分享一下個(gè)人學(xué)習(xí)過(guò)程中常看的鏈接,盡量少走彎路。
幾位ControlNet的創(chuàng)造者在Github里講插件的重要功能和預(yù)處理器、模型的介紹寫的比較清楚了??梢圆殚啠╤ttps://github.com/Mikubill/sd-webui-controlnet)了解源代碼、插件安裝方法、插件使用方法等。
可以查閱(https://github.com/lllyasviel/ControlNet-v1-1-nightly#model-specification)了解所有預(yù)處理、模型的使用方法等。后續(xù)的文章也會(huì)結(jié)合自己的理解給出一些方法,但是能看原文還是盡量看原文。
可以查閱(https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main)下載所有官方模型,放在(XX/stable-diffusion-webui/extensions/sd-webui-controlnet/models)文件夾里,重啟Webui即可使用。
ControlNet還支持自定義模型。
騰訊實(shí)驗(yàn)室制作的模型(https://huggingface.co/TencentARC/T2I-Adapter/tree/main/models)(包括.pth文件和.yaml文件),放在(XX/stable-diffusion-webui/extensions/sd-webui-controlnet/models)文件夾里,重啟Webui即可使用。本系列不會(huì)涉及這部分的模型,有興趣的請(qǐng)自行嘗試。這部分的介紹請(qǐng)見(https://github.com/TencentARC/T2I-Adapter)
二維碼模型(https://civitai.com/models/90940)

謝謝看官老爺,下一期將對(duì)線條相關(guān)模型進(jìn)行講解,敬請(qǐng)期待!