天天看點

ControlNet v1.1權威指南【穩定擴散】

作者:新缸中之腦

ControlNet 是一種穩定擴散模型,可讓你從參考圖像中複制構圖或人體姿勢。

經驗豐富的穩定擴散使用者知道生成想要的确切成分有多難。圖像有點随機。你所能做的就是玩數字遊戲:生成大量圖像并選擇你喜歡的圖檔。

借助 ControlNet,穩定擴散使用者終于有了一種精确控制拍攝對象位置和外觀的方法!

在這篇文章中,我們将介紹有關ControlNet的所有資訊。

ControlNet v1.1權威指南【穩定擴散】
推薦:用 NSDT編輯器 快速搭建可程式設計3D場景

1、什麼是ControlNet?

ControlNet是用于控制穩定擴散模型的神經網絡模型。你可以将 ControlNet 與任何穩定擴散模型一起使用。

使用穩定擴散模型的最基本形式是文本到圖像。它使用文本提示作為條件來引導圖像生成,以便生成與文本提示比對的圖像。

ControlNet 除了文本提示之外,還增加了一個條件。額外的調節可以在ControlNet中采取多種形式。

讓我向你展示ControlNet可以執行的操作的兩個示例:使用(1)邊緣檢測和(2)人體姿勢檢測來控制圖像生成。

1.1 ControlNet邊緣檢測示例

如下圖所示,ControlNet 擷取額外的輸入圖像并使用 Canny 邊緣檢測器檢測其輪廓。然後,包含檢測到的邊緣的圖像将另存為控制圖。它作為文本提示的額外條件饋送到 ControlNet 模型中。

ControlNet v1.1權威指南【穩定擴散】

具有邊緣檢測的穩定擴散控制網絡

從輸入圖像中提取特定資訊(在本例中為邊緣)的過程稱為注解(在這篇研究文章中)或預處理(在ControlNet擴充中)。

1.2 ControlNet人體姿勢檢測示例

邊緣檢測不是預處理圖像的唯一方法。Openpose 是一種快速的人類關鍵點檢測模型,可以提取人類姿勢,如手、腿和頭部的位置。請參閱下面的示例。

ControlNet v1.1權威指南【穩定擴散】

使用Openpose進行人體姿勢檢測的帶注解的輸入圖像

下面是使用 OpenPose 的 ControlNet 工作流程。使用OpenPose從輸入圖像中提取關鍵點,并将其儲存為包含關鍵點位置的控制圖。然後,它與文本提示一起作為額外的條件被饋送到穩定擴散。圖像是基于這兩個條件生成的。

使用Canny邊緣檢測和Openpose有什麼差別?Canny邊緣檢測器可以提取主體和背景的邊緣。它傾向于更忠實地翻譯場景。你可以看到跳舞的男人變成了女人,但輪廓和發型被保留了下來。

OpenPose僅檢測人類的關鍵點,例如頭部,手臂等的位置。圖像生成更加自由,但遵循原始姿勢。

上面的示例生成了一個女人跳起來,左腳指向側面,與原始圖像和 Canny Edge 示例中的圖像不同。原因是OpenPose的關鍵點檢測沒有指定腳的方向。

2、安裝穩定擴散ControlNet

讓我們來看看如何在 AUTOMATIC1111 中安裝 ControlNet,這是一款流行且功能齊全(且免費!穩定的擴散圖形使用者界面。我們将使用此擴充(事實上的标準)來使用 ControlNet。

如果你已經安裝了 ControlNet,則可以跳到下一部分以了解如何使用它。

2.1 在Colab中安裝ControlNet

在我們的快速入門指南中,将 ControlNet 與一鍵式穩定擴散 Colab 筆記本一起使用很容易。

在 Colab 筆記本的“擴充”部分中,選中“ControlNet”。

ControlNet v1.1權威指南【穩定擴散】

按Play按鈕啟動AUTOMATIC1111。就是這樣!

2.2 安裝 ControlNet 擴充 (Windows/Mac)

你也可以在 Windows PC 或 Mac 上将 ControlNet 與 AUTOMATIC1111 配合使用。按照這些文章中的說明安裝 AUTOMATIC1111(如果尚未這樣做)。

如果已經安裝了 AUTOMATIC1111,請確定你的副本是最新的。

  • 導航到“擴充”頁面。
  • 選擇“從 URL 安裝”頁籤。
  • 将以下 URL 放在擴充的存儲庫字段的 URL 中:
https://github.com/Mikubill/sd-webui-controlnet           
  • 單擊安裝按鈕。
  • 等待确認消息,說明擴充已安裝。
  • 重新啟動AUTOMATIC1111。
  • 通路ControlNet模型頁面。
  • 下載下傳所有模型檔案(檔案名以 .pth 結尾)。如果不想全部下載下傳,可以立即下載下傳最常用的openpose和canny模型。
  • 将模型檔案放入 ControlNet 擴充的模型目錄中:
stable-diffusion-webui\extensionssd-webui-controlnet\models           
  • 重新啟動AUTOMATIC1111 webui。

如果擴充成功安裝,你将在 txt2img 頁籤中看到一個名為 ControlNet 的新可折疊部分。它應該在腳本下拉菜單的正上方。

ControlNet v1.1權威指南【穩定擴散】

這表示擴充安裝成功。

3、安裝 T2I 擴充卡

T2I 擴充卡是神經網絡模型,用于為擴散模型的圖像生成提供額外的控制。它們在概念上類似于ControlNet,但設計不同。

ControlNet v1.1權威指南【穩定擴散】

A1111 控制網擴充可以使用 T2I 擴充卡。你需要在此處下載下傳模型。擷取檔案名讀起來像 t2iadapter_XXXXX.pth 的那些

許多 T2I 擴充卡的功能與 ControlNet 型号重疊。我隻介紹以下兩個。

  • t2iadapter_color_sd14v1.pth
  • t2iadapter_style_sd14v1.pth

将它們放在 ControlNet 的模型檔案夾中。

stable-diffusion-webui\extensions\sd-webui-controlnet\models           

4、更新 ControlNet 擴充

ControlNet是一個經曆了快速發展的擴充。發現你的 ControlNet 副本已過時的情況并不少見。

僅當你在 Windows 或 Mac 上本地運作 AUTOMATIC1111 時,才需要更新。網站的Colab筆記本始終運作最新的ControlNet擴充。

要确定你的 ControlNet 版本是否為最新版本,請将 txt2img 頁面上“ControlNet”部分中的版本号與最新版本号進行比較。

4.1 選項 1:從 Web UI 更新

更新 ControlNet 擴充的最簡單方法是使用 AUTOMATIC1111 GUI。

  • 轉到“擴充”頁面。
  • 在“已安裝”頁籤中,單擊“檢查更新”。
  • 等待确認消息。
  • 完全關閉并重新啟動AUTOMATIC1111 Web UI。
ControlNet v1.1權威指南【穩定擴散】

4.2 選項 2:指令行

如果你熟悉指令行,則可以使用此選項更新 ControlNet,這樣你就可以放心,Web-UI 不會執行其他操作。

步驟1:打開終端應用程式(Mac)或PowerShell應用程式(Windows)。

第 2 步:導航到 ControlNet 擴充的檔案夾。(如果安裝在其他地方,請相應地調整)

cd stable-diffusion-webui/extensions/sd-webui-controlnet           

步驟 3:通過運作以下指令更新擴充。

git pull           

5、使用 ControlNet的簡單例子

現在你已經安裝了 ControlNet,讓我們通過一個簡單的使用它的示例!稍後你将看到每個設定的詳細說明。

你應該安裝ControlNet擴充以跟上本節的内容。可以通過檢視下面的控制網絡部分進行驗證。

ControlNet v1.1權威指南【穩定擴散】

按右側的插入符号展開“ControlNet”面闆。它顯示了控制旋鈕的完整部分和圖像上傳畫布。

ControlNet v1.1權威指南【穩定擴散】

我将使用下圖展示如何使用 ControlNet。你可以點選這裡下載下傳按鈕下載下傳圖像以按照教程進行操作。

ControlNet v1.1權威指南【穩定擴散】

5.1 文本到圖像設定

ControlNet需要與穩定擴散模型一起使用。在穩定擴散檢查點下拉菜單中,選擇要與 ControlNet 一起使用的模型。選擇 v1-5-pruned-emaonly.ckpt 以使用 v1.5 基本模型。

ControlNet v1.1權威指南【穩定擴散】

在 txt2image 頁籤中,編寫提示和(可選)供 ControlNet 使用的否定提示。我将使用以下提示。

提示:

full-body, a young female, highlights in hair, dancing outside a restaurant, brown eyes, wearing jeans

負面提示:

disfigured, ugly, bad, immature

設定圖像生成的圖像大小。我将使用寬度 512 和高度 776 作為我的示範圖像。請注意,圖像大小是在 txt2img 部分中設定的,而不是在 ControlNet 部分中設定的。

GUI 應如下所示。

ControlNet v1.1權威指南【穩定擴散】

5.2 ControlNet設定

現在讓我們轉到“ControlNet”面闆。

首先,将圖像上傳到圖像畫布。

選中啟用複選框。

你需要選擇預處理器和模型。預處理器隻是前面提到的注釋器的不同名稱,例如 OpenPose 關鍵點檢測器。讓我們選擇 openpose 作為預處理器。

標明的 ControlNet 模型必須與預處理器一緻。對于OpenPose,應該選擇control_openpose-fp16作為模型。

“ControlNet”面闆應如下所示。

ControlNet v1.1權威指南【穩定擴散】

就這樣。現在按生成開始使用控制網絡生成圖像。

你應該會看到生成的圖像以遵循輸入圖像的姿勢。最後一個圖像直接來自預處理步驟。在這種情況下,它是檢測到的關鍵點。

ControlNet v1.1權威指南【穩定擴散】

完成後,取消選中啟用複選框以禁用 ControlNet 擴充。

這是使用ControlNet的基礎知識!

剩下的就是要了解:

  • 有哪些預處理器可用(有很多!)
  • 控制網設定

6、預處理器和模型

使用 ControlNet 的第一步是選擇預處理器。打開預覽很有幫助,以便你知道預處理器正在做什麼。預處理完成後,原始圖像将被丢棄,隻有預處理後的圖像将用于 ControlNet。

要打開預覽:

  • 選擇允許預覽。
  • (可選)選擇像素完美。ControlNet 将使用你在文本到圖像中指定的圖像高度和寬度來生成預處理的圖像。
  • 單擊預處理器下拉菜單旁邊的爆炸圖示。
ControlNet v1.1權威指南【穩定擴散】

某些控制模型可能會對圖像産生太大影響。如果看到顔色問題或其他僞影,請減小控制權重。

6.1 選擇正确的模型

選擇預處理器後,必須選擇正确的模型。

很容易判斷哪個模型是在 v1.1 中使用的正确模型。你需要做的就是選擇與預處理器具有相同起始關鍵字的模型。

例如:

預處理器 模型
depth_xxxx control_xxxx_depth
lineart_xxxx control_xxxx_lineart
openpose_xxxx control_xxxx_openpose

6.2 OpenPose預處理器

有多個 OpenPose 預處理器。

OpenPose檢測人類的關鍵點,例如頭部,肩膀,手的位置等。它可用于複制人類姿勢而無需複制服裝、發型和背景等其他細節。

所有 openpose 預處理器都需要與 ControlNet 的 Model 下拉菜單中的 openpose 模型一起使用。

OpenPose 預處理器包括:

  • OpenPose:眼睛、鼻子、眼睛、頸部、肩膀、肘部、手腕、膝蓋和腳踝。
  • OpenPose_face:OpenPose+面部細節
  • OpenPose_hand:OpenPose+手和手指
  • OpenPose_faceonly:僅面部細節
  • OpenPose_full:以上所有内容
  • dw_openPose_full:OpenPose_full的增強版本

OpenPose是基本的OpenPose預處理器,可檢測眼睛,鼻子,眼睛,頸部,肩部,肘部,手腕,膝蓋和腳踝的位置。

ControlNet v1.1權威指南【穩定擴散】

OpenPose_face執行OpenPose處理器所做的一切,但會檢測到其他面部細節。

它對于複制面部表情很有用。

ControlNet v1.1權威指南【穩定擴散】

OpenPose 人臉僅檢測人臉,而不檢測其他關鍵點。這對于僅複制人臉而不适用于其他關鍵點。

ControlNet v1.1權威指南【穩定擴散】

OpenPose_hand檢測關鍵點為 OpenPose 以及手和手指。

ControlNet v1.1權威指南【穩定擴散】

OpenPose full檢測所有openPose面部和openPose手所做的一切。

ControlNet v1.1權威指南【穩定擴散】

DWPose是一種基于研究文章兩階段蒸餾的有效全身姿勢估計的新姿勢檢測算法。它完成了與OpenPose Full相同的任務,但做得更好。應該使用dw_openpose_full而不是openpose_full。

ControlNet v1.1權威指南【穩定擴散】

如果在預處理器菜單中看不到dw_openpose_full,請更新 ControlNet。

DW OpenPose在檢測手和手指方面做得更好。

6.3 切片重采樣

切片重采樣(tile resample)模型用于向圖像添加細節。它通常與升頻器一起使用以同時放大圖像。

請參閱ControlNet Tile Scaling方法。

6.4 引用預處理器

引用(reference)是一組新的預處理器,可用于生成與引用圖像類似的圖像。圖像仍将受到穩定擴散模型和提示的影響。

引用預處理器不使用控制模型。你隻需要選擇預處理器,而不需要選擇模型。實際上,選擇參考預處理器後,模型下拉菜單将被隐藏。

有 3 個引用預處理器。

  • reference adain:通過自适應執行個體規範化進行樣式遷移。論文
  • reference only:将引用圖像直接連結到注意層。
  • reference adain+attn:上述組合。

選擇其中一個要使用的預處理器。

下面是一個示例。

ControlNet v1.1權威指南【穩定擴散】

引用圖像

使用 CLIP 詢問器猜測提示。

a woman with pink hair and a robot suit on, with a sci – fi, Artgerm, cyberpunk style, cyberpunk art, retrofuturism

負向提示:

disfigured, ugly, bad, immature

模型:Protogen v2.2

Reference adain:

ControlNet v1.1權威指南【穩定擴散】

Reference only:

ControlNet v1.1權威指南【穩定擴散】

Reference adain + attn:

ControlNet v1.1權威指南【穩定擴散】

我會說,Reference only的效果最好。

以上圖檔均來自平衡模式。我認為改變樣式保真度沒有太大差別。

6.5 Canny邊緣檢測器

Canny的邊緣檢測器是一種通用的老式邊緣檢測器。它提取圖像的輪廓。它對于保留原始圖像的構圖很有用。

在預處理器和模型下拉菜單中選擇canny。

ControlNet v1.1權威指南【穩定擴散】

生成的圖像将遵循輪廓。

ControlNet v1.1權威指南【穩定擴散】

6.6 深度預處理器

深度預處理器從參考圖像中猜測深度資訊。

  • Depth Midas:經典的深度估算器。也用于官方 v2 圖像深度模型。
  • Depth:更多細節,但也傾向于渲染背景。
  • Depth Leres++:更多細節。
  • Zoe:細節水準介于邁達斯和萊雷斯之間。

參考圖檔:

ControlNet v1.1權威指南【穩定擴散】

深度圖:

ControlNet v1.1權威指南【穩定擴散】

提示:

a woman retrofuturism

否定提示:

disfigured, ugly, bad, immature

可以看到生成的圖像遵循深度圖(Zoe)。

ControlNet v1.1權威指南【穩定擴散】

與更詳細的 Leres++ 進行比較:

ControlNet v1.1權威指南【穩定擴散】

6.7 線條藝術

藝術線條(Line Art)渲染圖像的輪廓。它嘗試将其轉換為簡單的繪圖。

有一些線條藝術預處理器。

  • 線條藝術動漫:動漫風格的線條
  • 線條藝術動漫降噪:細節較少的動漫風格線條。
  • 線條藝術逼真:寫實風格的線條。
  • 線條藝術粗糙:具有較重重量的逼真風格的線條。

與藝術線條控制模型一起使用。

下面的圖像是在控制權重設定為 0.7 的情況下生成的。

線條藝術動漫

ControlNet v1.1權威指南【穩定擴散】

線條藝術動漫降噪

ControlNet v1.1權威指南【穩定擴散】

線條藝術逼真:

ControlNet v1.1權威指南【穩定擴散】

線條藝術粗糙:

ControlNet v1.1權威指南【穩定擴散】

6.8 MLSD

M-LSD(移動線段檢測)是一種直線檢測器。它可用于提取具有直邊的輪廓,如室内設計、建築物、街景、相框和紙邊。

曲線将被忽略。

ControlNet v1.1權威指南【穩定擴散】

6.9 法線貼圖

法線貼圖指定曲面的方向。對于 ControlNet,它是一個圖像,用于指定每個像素所在的表面的方向。圖像像素表示表面朝向的方向,而不是顔色值。

法線貼圖的使用與深度貼圖類似。它們用于傳輸參考圖像的 3D 構圖。

法線貼圖預處理器:

  • Normal Midas:根據邁達斯深度圖估計法線貼圖。
  • Normal Bae:使用裴等人提出的正态不确定性方法估計法态圖。

與邁達斯深度貼圖一樣,邁達斯法線貼圖也非常适合将主體與背景隔離開來。

ControlNet v1.1權威指南【穩定擴散】

Bae 法線貼圖傾向于在背景和前景中渲染細節。

ControlNet v1.1權威指南【穩定擴散】

6.10 塗鴉

塗鴉(Scribble)預處理器将圖檔變成塗鴉,就像手繪一樣。

  • Scribble HED:整體嵌套邊緣檢測 (HED) 是一種邊緣檢測器,擅長像真人一樣生成輪廓。根據ControlNet的作者的說法,HED适用于重新着色和重新設計圖像。
  • Scribble Pidinet:像素差分網絡(Pidinet)檢測曲線和直邊。它的結果類似于HED,但通常會導緻線條更清晰,細節更少。
  • Scribble xdog:高斯差異(XDoG)是一種邊緣檢測方法技術。調整 xDoG 門檻值并觀察預處理器輸出非常重要。

所有這些預處理器都應與scribble控制模型一起使用。

Scribble HED産生粗略的塗鴉線。

ControlNet v1.1權威指南【穩定擴散】

Scribble Pidinet傾向于産生幾乎沒有細節的粗線條。它适用于複制沒有精細細節的電路闆輪廓。

ControlNet v1.1權威指南【穩定擴散】

通過調整 Scribble XDoG 門檻值可以控制細節級别,使 xDoG 成為建立塗鴉的多功能預處理器。

ControlNet v1.1權威指南【穩定擴散】

6.11 分割預處理器

分割(segment)預處理器标記參考圖像中的對象類型。

下面是一個正在運作的分割處理器。

ControlNet v1.1權威指南【穩定擴散】

建築物、天空、樹木、人物和人行道都标有不同的預定義顔色。

可以在這裡的 ufade20k 和 ofade20k 的顔色圖中找到對象類别和顔色。

有幾個細分選項

  • ufade20k:在ADE20K資料集上訓練的UniFormer (uf)分割。
  • ofade20k:在ADE20k資料集上訓練的OneFormer (of)分割。
  • ofcoco:在COCO資料集上訓練的前者分割。

請注意,ADE20k和COCO分割的色彩圖是不同的。

可以使用分割預處理器來傳輸對象的位置和形狀。

下面使用這些預處理器具有相同的提示和種子。

Futuristic city, tree, buildings, cyberpunk

UniFormer ADE20k (ufade20k)在此示例中 準确标記所有内容。

OneFormer ADE20k (ofade20k)在這種情況下噪點更大一些,但不會影響最終圖像。

ControlNet v1.1權威指南【穩定擴散】

OneFormer COCO (ofcoco)的表現類似,但有一些标簽錯誤。

ControlNet v1.1權威指南【穩定擴散】

分割是一種強大的技術。你可以進一步操作分割貼圖以将對象放置在精确位置。使用 ADE20k 的色彩圖。

6.12 随機播放

随機播放(Shuffle)預處理器攪動輸入圖像。讓我們看看實際效果。

與随機播放控制模型一起,随機播放預處理器可用于傳輸參考圖像的配色方案。

輸入圖像:

ControlNet v1.1權威指南【穩定擴散】

随機播放預處理器:

ControlNet v1.1權威指南【穩定擴散】

與其他預處理器不同,随機預處理器是随機的。它将受到你的種子值的影響。

将随機預處理器與随機播放控制模型一起使用。随機控制模型可以與随機預處理器一起使用,也可以不使用随機播放預處理器。

下圖是 ControlNet Shuffle 預處理器和 Shuffle 模型(與上一節的提示相同)。配色方案大緻遵循參考圖像。

ControlNet v1.1權威指南【穩定擴散】

下圖僅包含 ControlNet Shuffle 模型(預處理器:無)。圖像構圖更接近原始圖像。配色方案類似于洗牌。

ControlNet v1.1權威指南【穩定擴散】

下圖具有相同的提示,沒有 ControlNet。配色方案截然不同。

ControlNet v1.1權威指南【穩定擴散】

6.13 顔色栅格T2I 擴充卡

顔色栅格 T2i 擴充卡預處理器将參考圖像縮小到 64 倍,然後将其擴充回原始大小。淨效果是局部平均顔色的網格狀斑塊。

原始參考圖像:

ControlNet v1.1權威指南【穩定擴散】

使用t2ia_color_grid進行預處理:

ControlNet v1.1權威指南【穩定擴散】

然後,可以将預處理的圖像與 T2I 顔色擴充卡 (t2iadapter_color) 控制模型一起使用。

圖像生成将在空間上松散地遵循配色方案。

A modern living room
ControlNet v1.1權威指南【穩定擴散】

增加 ControlNet 權重以使其更緊密地跟蹤。

還可以對此 T2I 顔色模型使用預處理器 None 。

在我看來,它與圖像到圖像非常相似。

6.14 Clip vision style T2I 擴充卡

t2ia_style_clipvision将參考圖像轉換為 CLIP 視覺嵌入。此嵌入包含有關圖像内容和樣式的豐富資訊。

你将需要使用控制模型t2iadapter_style_XXXX。

看看這個驚人的風格轉換的效果:

參考圖檔:

ControlNet v1.1權威指南【穩定擴散】

T2I adapter – CLIP vision:

sci-fi girl
ControlNet v1.1權威指南【穩定擴散】

以下是關閉控制網時此提示将生成的内容。

ControlNet v1.1權威指南【穩定擴散】

該功能與參考控制網非常相似,但我認為T2IA CLIP Vision更強大。

6.15 ControlNet InPainting

ControlNet InPainting允許在Inpainting中使用高降噪強度來生成較大的變化,而不會犧牲與整個圖像的一緻性。

例如,我對現實的人使用了提示。

模型: HenmixReal v4

photo of young woman, highlight hair, sitting outside restaurant, wearing dress, rim lighting, studio lighting, looking at the camera, dslr, ultra quality, sharp focus, tack sharp, dof, film grain, Fujifilm XT3, crystal clear, 8K UHD, highly detailed glossy eyes, high detailed skin, skin pores

否定提示:

disfigured, ugly, bad, immature, cartoon, anime, 3d, painting, b&w

我有這個圖像,想用InPainting來重新生成面部。

ControlNet v1.1權威指南【穩定擴散】

如果我用高去噪強度(> 0.4)在臉上塗漆,結果可能會在全局範圍内不一緻。以下是具有去噪強度1的未上色圖像:

ControlNet v1.1權威指南【穩定擴散】

ControlNet Inpainting是解決方案。

要使用 ControlNet 修複,請執行以下操作:

1、最好使用生成圖像的同一模型。在 txt2img 頁面上生成圖像後,單擊“發送到 Inpaint”,将圖像發送到 Img2img 頁面上的 Inpaint 頁籤。

2、使用畫筆工具在要再生的區域上建立蒙版。如果不熟悉,請參閱有關Inpainting的初學者教程。

ControlNet v1.1權威指南【穩定擴散】

3、将“上色區域”設定為“僅蒙版”。(整個圖檔也有效)

4、将降噪強度設定為 1。如果沒有 ControlNet,你通常不會将其設定得這麼高。

5、在“ControlNet”部分中設定以下參數。無需上傳參考圖檔。

  • 啟用:是
  • 預處理器:Inpaint_global_harmonious
  • 模型: ControlNet
ControlNet v1.1權威指南【穩定擴散】

6、按生成開始修複。

現在,即使在最大降噪強度(1)下,我也能獲得與全局形象一緻的新面孔!

ControlNet v1.1權威指南【穩定擴散】

目前,有3個inpainting預處理器

  • Inpaint_global_harmonious:提高全局一緻性,并允許你使用高降噪強度。
  • Inpaint_only:不會更改未遮罩的區域。它與 AUTOMATIC1111 中
  • Inpaint_global_harmonious相同。
  • Inpaint_only+lama:用lama模型處理圖像。它往往會産生更幹淨的結果,并且有利于對象删除。
ControlNet v1.1權威指南【穩定擴散】

7、ControlNet設定完整說明

你在 ControlNet 擴充中看到了很多設定!當第一次使用它時,它可能有點吓人,但讓我們一一介紹它們。

這将是一次深入的潛水。休息一下,如果需要的話去洗手間...

7.1 輸入控制

ControlNet v1.1權威指南【穩定擴散】
  • 圖像畫布:你可以将輸入圖像拖放到此處。也可以單擊畫布并使用檔案浏覽器選擇一個檔案。輸入圖像将由預處理器下拉菜單中的標明預處理器進行處理。将建立一個控制圖。
  • 寫入圖示:使用白色圖像建立新畫布,而不是上傳參考圖像。它用于直接建立塗鴉。
  • 相機圖示:使用裝置的相機拍照并将其用作輸入圖像。你需要向浏覽器授予通路相機的權限。

7.2 模型選擇

ControlNet v1.1權威指南【穩定擴散】
  • 啟用:是否啟用 ControlNet。
  • 低 VRAM:适用于 VRAM 小于 8GB 的 GPU。這是一個實驗性功能。檢查 GPU 記憶體是否不足,或者是否要增加處理的圖像數量。
  • 允許預覽:選中此選項以啟用參考圖像旁邊的預覽視窗。我建議您選擇此選項。使用預處理器下拉菜單旁邊的分解圖示預覽預處理器的效果。
  • 預處理器:預處理器(在研究文章中稱為注釋器),用于預處理輸入圖像,例如檢測邊緣、深度和法線貼圖。均不使用輸入圖像作為控制圖。
  • 模型:要使用的控制網絡模型。如果選擇了預處理器,通常會選擇相應的模型。ControlNet 模型與在 AUTOMATIC1111 GUI 頂部選擇的穩定擴散模型一起使用。

7.3 控制權重

在預處理器和模型下拉菜單下方,你将看到三個滑動條,可用于控制效果:控制權重、開始和結束控制步驟。

ControlNet v1.1權威指南【穩定擴散】

我将使用以下圖像來說明控制權重的效果。這是一個女孩坐下來的形象。

ControlNet v1.1權威指南【穩定擴散】

但是在提示中,我會要求生成一個站起來的女人。

full body, a young female, highlights in hair, standing outside restaurant, blue eyes, wearing a dress, side light

權重:相對于提示給予控件映射的強調程度。它類似于提示中的關鍵字權重,但适用于控件映射。

以下圖像是使用 ControlNet OpenPose 預處理器和 OpenPose 模型生成的。

ControlNet v1.1權威指南【穩定擴散】

如你所見,Controlnet 權重控制相對于提示遵循的控制映射的程度。權重越低,ControlNet 對圖像遵循控制圖的要求就越少。

啟動 ControlNet 步驟:首先應用步驟 ControlNet。0 表示第一步。

結束控制網步驟:步驟控制網結束。1 表示最後一步。

讓我們修複固定為 0 的起始步驟,并更改結束 ControlNet 步驟以檢視會發生什麼。

ControlNet v1.1權威指南【穩定擴散】

由于初始步驟設定了全局組合(采樣器在每個步驟中去除了最大數量的噪聲,并且它從潛在空間中的随機張量開始),是以即使你僅将 ControlNet 應用于前采樣步驟的 20%,也會設定姿勢。

相反,更改結束 ControlNet 步驟的效果較小,因為全局組合是在開始步驟中設定的。

7.4 控制模式

ControlNet v1.1權威指南【穩定擴散】
  • 平衡:控制網适用于采樣步驟中的調節和非調節。這是标準操作模式。
  • 我的提示更重要:ControlNet 的效果在 U-Net 注入執行個體中逐漸降低(一個采樣步驟中有 13 個)。最終效果是你的提示比控制網絡具有更大的影響力。
  • ControlNet 更重要:在解除調節時關閉 ControlNet。實際上,CFG量表還可以作為控制網效果的乘數。

如果你不完全了解它們的實際工作原理,請不要擔心。選項标簽準确說明效果。

7.5 調整大小模式

調整大小模式控制當輸入圖像或控制圖的大小與要生成的圖像的大小不同時要執行的操作。如果這些選項具有相同的縱橫比,則無需擔心它們。

我将通過設定文本到圖像來生成橫向圖像來示範調整大小模式的效果,而輸入圖像/控制地圖是縱向圖像。

  • 隻需調整大小:獨立縮放控件映射的寬度和高度以适合圖像畫布。這将更改控件映射的縱橫比。

女孩現在需要向前傾,這樣她才能仍然在畫布内。你可以使用此模式建立一些有趣的效果。

ControlNet v1.1權威指南【穩定擴散】
  • 裁剪和調整大小:使圖像畫布适合控制圖。裁剪控件映射,使其與畫布大小相同。
  • 因為控制地圖在頂部和底部被裁剪,是以我們的女孩也是如此。

    ControlNet v1.1權威指南【穩定擴散】
  • 調整大小和填充:使整個控件映射适合圖像畫布。使用空值擴充控件映射,使其與圖像畫布的大小相同。
  • 與原始輸入圖像相比,側面有更多的空間。

    ControlNet v1.1權威指南【穩定擴散】

    現在(希望)你知道所有設定。讓我們探讨一些使用 ControlNet 的想法。

    8、 多個ControlNet

    你可以多次使用 ControlNet 來生成圖像。讓我們來看一個例子。

    模型: Protogen v2.2

    提示:

    An astronaut sitting, alien planet

    否定提示:

    disfigured, deformed, ugly

    此提示會生成具有各種構圖的圖像。

    ControlNet v1.1權威指南【穩定擴散】

    假設我想獨立控制宇航員和背景的構圖。為此,我們可以使用多個(在本例中為 2 個)控制網。

    我将使用此參考圖像來固定宇航員的姿勢。

    ControlNet v1.1權威指南【穩定擴散】

    ControlNet 0 的設定:

    • 啟用:是
    • 預處理器:OpenPose
    • 模型: control_xxxx_openpose
    • 調整大小模式:調整大小和重新填充(因為我的原始參考圖像是縱向的)
    ControlNet v1.1權威指南【穩定擴散】

    我将使用以下參考圖像作為背景。

    ControlNet v1.1權威指南【穩定擴散】

    深度模型非常适合此目的。

    ControlNet 1 的設定:

    • 啟用:是
    • 控制權重:0.45
    • 預處理器:depth_zeo
    • 模型: control_XXXX_depth
    • 調整大小模式:裁剪和調整大小
    ControlNet v1.1權威指南【穩定擴散】

    現在我可以獨立控制主體和背景的構圖:

    ControlNet v1.1權威指南【穩定擴散】

    技巧:

    • 調整 ControlNet 權重,如果其中一個沒有完成其工作。
    • 如果有最終圖像不同大小的參考圖像,請注意調整大小模式。

    9、模仿人體姿勢

    也許ControlNet最常見的應用是複制人類的姿勢。這是因為通常很難控制姿勢...直到現在!輸入圖像可以是穩定擴散生成的圖像,也可以是從真實相機拍攝的圖像。

    要使用 ControlNet 傳輸人體姿勢,請按照說明在 AUTOMATIC1111 中啟用 ControlNet。使用以下設定。

    • 預處理器:openpose
    • 模型: control_...._openpose
    • 確定已選中啟用。

    以下是一些示例。

    9.1 示例 1:從圖像複制姿勢

    作為基本示例,讓我們複制以下欣賞樹葉的女人圖像的姿勢。

    ControlNet v1.1權威指南【穩定擴散】

    使用各種模型和提示,你可以顯著地更改内容,但保持姿勢。

    ControlNet v1.1權威指南【穩定擴散】

    9.2 示例 2:重新混合影片場景

    你可以将Pulp Fiction中的标志性舞蹈場景重新塑造為公園中的一些瑜伽練習。

    ControlNet v1.1權威指南【穩定擴散】

    這使用帶有DreamShaper模型的ControlNet。

    ControlNet v1.1權威指南【穩定擴散】

    這是相同的提示,但使用墨水朋克擴散模型。你需要在提示中添加激活關鍵字 nvinkpunk:

    ControlNet v1.1權威指南【穩定擴散】

    10、使用 ControlNet 對圖像進行風格化處理

    下面是v1.5模型,但各種提示實作不同的風格。使用了具有各種預處理的ControlNet。最好進行實驗,看看哪一個效果最好。

    ControlNet v1.1權威指南【穩定擴散】

    你還可以使用模型對圖像進行樣式化。下面是使用提示“貝多芬的繪畫”與Anythingv3,DreamShaper和OpenJourney模型生成的。

    ControlNet v1.1權威指南【穩定擴散】

    11、使用魔術姿勢控制姿勢

    有時,你可能無法找到具有所需确切姿勢的圖像。可以使用魔術姿勢等軟體工具建立自定義姿勢。

    第 1 步:轉到魔術姿勢網站。

    ControlNet v1.1權威指南【穩定擴散】

    第2步:移動模型的關鍵點以自定義姿勢。

    第 3 步:按預覽。截取模型的螢幕截圖。應該得到如下所示的圖像。

    ControlNet v1.1權威指南【穩定擴散】

    第 4 步:使用 OpenPose ControlNet 模型。選擇你選擇的模型和提示以生成圖像。

    以下是使用1.5模型和DreamShaper模型生成的一些圖像。在所有情況下,姿勢都複制得很好。

    ControlNet v1.1權威指南【穩定擴散】

    12、室内設計思路

    可以使用穩定擴散控制網的直線探測器MLSD模型來生成室内設計思路。以下是ControlNet設定。

    • 預處理器:mlsd
    • 模型: MLSD

    從任何室内設計照片開始。讓我們以下面的一個為例。

    ControlNet v1.1權威指南【穩定擴散】

    提示:

    award winning living room

    模型:Stable Diffusion v1.5

    以下是一些産生的設計思路。

    ControlNet v1.1權威指南【穩定擴散】

    或者,你可以使用深度模型。它将強調保留深度資訊,而不是直線。

    • 預處理器:Depth Midas
    • 模型:Depth

    生成的圖像:

    ControlNet v1.1權威指南【穩定擴散】

    13、穩定擴散深度模型與ControlNet的差別

    穩定擴散的建立者Stability AI釋出了一個深度圖像模型。它與ControlNet有很多相似之處,但存在重要差異。

    讓我們先談談相似之處。

    • 它們都是穩定擴散模型...
    • 它們都使用兩種條件(預處理的圖像和文本提示)。
    • 他們都使用MiDAS來估計深度圖。

    差別在于:

    • 圖像深度模型是 v2 模型。ControlNet 可用于任何 v1 或 v2 模型。這一點很重要,因為 v2 模型是出了名的難以使用。人們很難産生好的形象。ControlNet 可以使用任何 v1 模型的事實不僅為 v1.5 基礎模型開放了深度調節,而且還為社群釋出的數千種特殊模型開放了條件反射。
    • ControlNet更加通用。除了深度之外,它還可以通過邊緣檢測、姿勢檢測等進行調節。
    • ControlNet的深度圖具有比圖像深度更高的分辨率。

    14、ControlNet如何工作?

    如果不解釋 ControlNet 在背景的工作原理,本教程将是不完整的。

    ControlNet 的工作原理是将可訓練的網絡子產品附加到穩定擴散模型的 U-Net(噪聲預測器)的各個部分。穩定擴散模型的權重被鎖定,以便在訓練期間保持不變。在訓練期間僅修改附加的子產品。

    研究論文中的模型圖很好地總結了這一點。最初,附加網絡子產品的權重全部為零,使新模型能夠利用經過訓練和鎖定的模型。

    ControlNet v1.1權威指南【穩定擴散】

    在訓練期間,每個訓練圖像一起提供兩個條件:(1) 文本提示,以及 (2) 控制映射,例如 OpenPose 關鍵點或 Canny 邊緣。ControlNet 模型學習基于這兩個輸入生成圖像。

    每個控制方法都是獨立訓練的。

    原文連結:http://www.bimant.com/blog/controlnet-v11-ultimate-guide