ControlNet 的作用是通過添加額外控制條件,來引導 Stable Diffusion 按照創作者的創作思路生成圖像,從而提升 AI 圖像生成的可控性和精度。在使用 ControlNet 前,需要確保已經正確安裝 Stable Diffusion 和 ControlNet 插件。如還未安裝,可以參考這篇文章中的教程進行安裝部署:
目前 ControlNet 已經更新到 1.1 版本,相較于 1.0 版本,ControlNet1.1 新增了更多的預處理器和模型,原有的模型也通過更好的數據訓練獲得了更優的性能。以下我做簡要梳理,想要了解更多內容可以參考作者的文檔: https://github.com/lllyasviel/ControlNet-v1-1-nightly
ControlNet 的使用方式非常靈活,既可以單模型應用,也可以多模型組合應用。清楚 ControlNet 的一些原理方法后,可以幫助我們更好的提升出圖效果。以下通過一些示例,簡要介紹 ControlNet 的實際用法。
1. 線稿上色
方法:通過 ControlNet 邊緣檢測模型或線稿模型提取線稿(可提取參考圖片線稿,或者手繪線稿),再根據提示詞和風格模型對圖像進行著色和風格化。
應用模型:Canny、SoftEdge、Lineart。
Canny 邊緣檢測:
Canny 是比較常用的一種線稿提取方式,該模型能夠很好的識別出圖像內各對象的邊緣輪廓。
使用說明(以下其它模型同理):
- 展開 ControlNet 面板,上傳參考圖,勾選 Enable 啟用(如果顯存小于等于 4G,勾選低顯存模式)。
- 預處理器選擇 Canny(注意:如果上傳的是已經經過預處理的線稿圖片,則預處理器選擇 none,不進行預處理),模型選擇對應的 control_v11p_sd15_canny 模型。
- 勾選 Allow Preview 允許預覽,點擊預處理器旁的??按鈕生成預覽。
其它參數說明:
- Control Weight:使用 ControlNet 生成圖片的權重占比影響(多個 ControlNet 組合使用時,需要調整權重占比)。
- Starting Control Step:ControlNet 開始參與生圖的步數。
- Ending Control Step:ControlNet 結束參與生圖的步數。
- Preprocessor resolution:預處理器分辨率,默認 512,數值越高線條越精細,數值越低線條越粗糙。
- Canny 低閾值/高閾值:數值越低線條越復雜,數值越高線條越簡單。
Canny 示例:(保留結構,再進行著色和風格化)
SoftEdge 軟邊緣檢測:
SoftEdge 可以理解為是 ControlNet1.0 中 HED 邊緣檢測的升級版。ControlNet1.1 版本中 4 個預處理器按結果質量排序:SoftEdge_HED > SoftEdge_PIDI > SoftEdge_HED_safe > SoftEdge_PIDI_safe,其中帶 safe 的預處理器可以防止生成的圖像帶有不良內容。相較于 Canny,SoftEdge 邊緣能夠保留更多細節。
SoftEdge 示例:(保留結構,再進行著色和風格化)
Lineart 精細線稿提取:
Lineart 精細線稿提取是 ControlNet1.1 版本中新增的模型,相較于 Canny,Lineart 提取的線稿更加精細,細節更加豐富。
Lineart 的預處理器有三種模式:lineart_coarse(粗略模式),lineart_realistic(詳細模式),lineart_standard(標準模式),處理效果有所不同,對比如下:
Lineart 示例:(保留結構,再進行著色和風格化)
2. 涂鴉成圖
方法:通過 ControlNet 的 Scribble 模型提取涂鴉圖(可提取參考圖涂鴉,或者手繪涂鴉圖),再根據提示詞和風格模型對圖像進行著色和風格化。
應用模型:Scribble。
Scribble 比 Canny、SoftEdge 和 Lineart 的自由發揮度要更高,也可以用于對手繪稿進行著色和風格處理。Scribble 的預處理器有三種模式:Scribble_hed,Scribble_pidinet,Scribble_Xdog,對比如下,可以看到 Scribble_Xdog 的處理細節更為豐富:
Scribble 參考圖提取示例(保留大致結構,再進行著色和風格化):
Scribble 手動涂鴉示例(根據手繪草圖,生成圖像):
也可以不用參考圖,直接創建空白畫布,手繪涂鴉成圖。
3. 建筑/室內設計
方法:通過 ControlNet 的 MLSD 模型提取建筑的線條結構和幾何形狀,構建出建筑線框(可提取參考圖線條,或者手繪線條),再配合提示詞和建筑/室內設計風格模型來生成圖像。
應用模型:MLSD。
建筑/室內設計風格模型下載:
MLSD 示例:(毛坯變精裝)
4. 顏色控制畫面
方法:通過 ControlNet 的 Segmentation 語義分割模型,標注畫面中的不同區塊顏色和結構(不同顏色代表不同類型對象),從而控制畫面的構圖和內容。
應用模型:Seg。
Seg 語義參考: https://docs.qq.com/sheet/DYmtkWG5taWxhVkx2?tab=BB08J2
Seg 示例:(提取參考圖內容和結構,再進行著色和風格化)
如果還想在車前面加一個人,只需在 Seg 預處理圖上對應人物色值,添加人物色塊再生成圖像即可。
5. 背景替換
方法:在 img2img 圖生圖模式中,通過 ControlNet 的 Depth_leres 模型中的 remove background 功能移除背景,再通過提示詞更換想要的背景。
應用模型:Depth,預處理器 Depth_leres。
要點:如果想要比較完美的替換背景,可以在圖生圖的 Inpaint 模式中,對需要保留的圖片內容添加蒙版,remove background 值可以設置在 70-80%。
Depth_leres 示例:(將原圖背景替換為辦公室背景)
6. 圖片指令
方法:通過 ControlNet 的 Pix2Pix 模型(ip2p),可以對圖片進行指令式變換。
應用模型:ip2p,預處理器選擇 none。
要點:采用指令式提示詞(make Y into X),如下圖示例中的 make it snow,讓非洲草原下雪。
Pix2Pix 示例:(讓非洲草原下雪)
7. 風格遷移
方法:通過 ControlNet 的 Shuffle 模型提取出參考圖的風格,再配合提示詞將風格遷移到生成圖上。
應用模型:Shuffle。
Shuffle 示例:(根據魔獸道具風格,重新生成一個寶箱道具)
8. 色彩繼承
方法:通過 ControlNet 的 t2iaColor 模型提取出參考圖的色彩分布情況,再配合提示詞和風格模型將色彩應用到生成圖上。
應用模型:Color。
Color 示例:(把參考圖色彩分布應用到生成圖上)
9. 角色三視圖
方法:通過 ControlNet 的 Openpose 模型精準識別出人物姿態,再配合提示詞和風格模型生成同樣姿態的圖片。
應用模型:OpenPose。在 ControlNet1.1 版本中,提供了多種姿態檢測方式,包含:openpose 身體、openpose_face 身體+臉、openpose_faceonly 只有臉、openpose_full 身體+手+臉、openpose_hand 手,可以根據實際需要靈活應用。
OpenPose 角色三視圖示例:
要點:上傳 openpose 三視圖,加載 charturner 風格模型( https://civitai.com/?query=charturner ),添加提示詞保持背景干凈 (simple background, white background:1.3), multiple views
10. 圖片光源控制
方法:如果想對生成的圖片進行打光,可以在 img2img 模式下,把光源圖片上傳到圖生圖區域,ControlNet 中放置需要打光的原圖,ControlNet 模型選擇 Depth。
應用模型:Depth。
要點:圖生圖中的所有參數和提示詞信息需要與原圖生成時的參數一樣,具體原圖參數可以在 PNG Info 面板中查看并復制。
示例:
ControlNet 還支持多個模型的組合使用,從而對圖像進行多條件控制。ControlNet 的多模型控制可以在設置面板中的 ControlNet 模塊中開啟:
1. 人物和背景分別控制
方法:設置 2 個 ControlNet,第一個 ControlNet 通過 OpenPose 控制人物姿態,第二個 ControlNet 通過 Seg 或 Depth 控制背景構成。調整 ControlNet 權重,如 OpenPose 權重高于 Depth 權重,以確保人物姿態被正確識別,再通過提示詞和風格模型進行內容和風格控制。
應用模型:OpenPose、Seg(自定義背景內容和結構)、Depth。
示例:
2. 三維重建
方法:通過 Depth 深度檢測和 Normalbae 法線貼圖模型,識別三維目標。再配合提示詞和風格模型,重新構建出三維物體和場景。
應用模型:Depth、Normalbae。
示例:
3. 更精準的圖片風格化
方法:在 img2img 圖生圖中,通過疊加 Lineart 和 Depth 模型,可以更加精準的提取圖像結構,最大程度保留原圖細節,再配合提示詞和風格模型重新生成圖像。
應用模型:Lineart、Depth。
示例:
4. 更精準的圖片局部重繪
方法:在 img2img 圖生圖的局部重繪中,通過疊加 Canny 和 Inpaint 模型,可以更加精準的對圖像進行局部重繪。
應用模型:Canny、Inpaint。
示例:
歡迎關注作者微信公眾號:「DUX Design Center」
復制本文鏈接 文章為作者獨立觀點不代表優設網立場,未經允許不得轉載。
熱評 離家出走的帆高