[Python] 圖像處理 – Stable Diffusion 004 – ControlNet (2) Edge Detection

【前言】

在上次我們透過 Canny 簡單的生成線搞,但在 ControlNet 中卻有各式各樣的邊緣探測模型,那這些模型又有哪些不同呢?

【重點整理】

  1. 不同的線搞模型有不同的適用情境
  2. 透過結合多個單元能增強各個的優勢

【預計內容】

  1. Canny Edge Detection
  2. Lineart
  3. Soft-Edge
  4. Scribble
  5. Mobile Line Segment Detection (M-LSD)

【主要內容】

1. Canny Edge Detection

之前的文章中,我們就曾提過 Canny 這支常用的方法,主要是仰賴 Thresholding 進行篩選,因此偶爾會有些斷點,但品質也有相對的保證。

2. Lineart

在 ControlNet 中,功能性最多的邊緣偵測大概就屬 Lineart 為主,在精細的情況也與 Canny 有得一拚。那統一使用原本的 lineart 模型就好,經測試後我認為與 lineart_anime 差別不大。

那在所有風格中,我依照主觀的線搞精細度做出了以下排列。那我認為 Realistic 的線條過於僵硬, Standard 適合有陰影的部分,Coarse 相較適合髮絲,而 De-Noise 可能不要去碰。

<Realistic>
.
<Anime>
.
<Coarse>
.
<Standard>
.
<Anime De-Noise>
.

那統整出大概的屬性,好奇心下當然要進行看看混和測試,這邊推薦下方兩組給各位

+ Lineart_Standard
+ Lineart_Coarse (ControlNet)
+ Lineart_Standard (ControlNet)
+ Lineart_Realistic (Prompt)

3. Soft-Edge

至於 Soft Edge,各位可以想像成柔邊,他的線搞相對寬而模糊,比較適合做輪廓的特效。那下方我便依照分類進行比對。

<pidinet>
.
<pidisafe>
.
<hed>
.
<hedsafe>
.
<teed>
.

4. Scribble

更進一步,Scribble 的線搞更加濃厚而簡單,那除了 xdog 以外的結果相對省略了許多細節,實測下來會稍微影響畫風。那接著我一樣按照稿圖精細度主觀地排列。

<xdog> (Threshold: 12)
.
<xdog> (Threshold: 32)
.
<hed>
.
<pidinet>
.

5. Mobile Line Segment Detection (M-LSD)

最後的 M-LSD 呢,只會抓取直線的部分,比較適合背景的區塊限制。

【後話】

那在這期中,我們統整出不同邊線探測的不同用途,透過結合各種優勢能夠併發出更多的可能性。那在下次會以區塊辨識與立體感為主軸,我們下次再會啦。

【參考資料】

[1] 範例用圖 — 胡桃 by あんべよしろう
https://www.pixiv.net/artworks/93870151

[2] ControlNet: A Complete Guide
https://stable-diffusion-art.com/controlnet/

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.