広告

[Stable diffusion] Control Net の使い方

AI

Control Net 拡張機能を利用することで、キャラのポーズをある程度コントロールすることができます。その他、線画を塗ってもらうとかもできます。
Control Net の入れ方について、以前の記事に書いていたので、導入方法はそちらをご参考ください。

Control Net 機能について

  • openpose:画像からポーズを再現する
  • Canny:線画抽出(キャラクターの線がを抽出する機能)&線が塗り
  • MLSD:直線抽出機能、Canny と似ているが、建物とかの線の抽出に向いている
  • normal_map:表面の凹凸検出(3D向けかも)
  • Depth:画像の奥行を抽出する。奥行のあるものに向いているかも
  • Depth_leres:preprocessor 部分のみに存在、モデルは Depth を利用
  • HED:Cannyににってるが、輪郭の強弱も拾っているようなので、立体感がでるかも
    • repaint に向ているらしい
  • pidinet:preprocessor 部分のみに存在、モデルは HED 利用
    • よりはっきりした HED(Canny でいいんじゃない感じがする)
  • scribble:落書きから画像を推測して画像を作成する
    • prompt でしっかり誘導すると、効果がいいかも?
  • Fake-scribble:preprocessor 部分のみに存在、モデルは scribble 利用
    • 画像 → 落書き → 画像
    • 写真からイラストを作るに向いているかも?
  • Segmentation:画像から色の違いを抽出して、床や壁を書いてくれる

イラストを描くなら、openpose と Canny のほうがよく使うと思います。

使い分け

キャラクターイラスト:

  • openpose
  • Canny
  • Depth
  • Depth_leres

背景、建物の図:

  • MLSD
  • Depth
  • Depth_leres
  • Segmentation

アイディア生み出すや模様の置き換えなど:

  • Canny
  • Scribble
  • Fake-scribble

新しいバージョンでいろいろモデルが追加されていくので、細かくチェックするには、作者の Wiki を見たほうが良いと思います。
https://github.com/lllyasviel/ControlNet-v1-1-nightly

使い方

画像とかインポートするのですが、Prompt もメインの部分なので、両方使って画像を生成します。

 機能の有効化

有効にしないと使えないので、機能の有効は Control Net の以下の部分でします。

事前設定 - ディテクトマップ自動保存

ディテクトマップを自動保存させることができます。自動保存有効にすると、Stable-Diffusion-WebUI\stable-diffusion-webui\outputs\txt2img-images\detected_maps\canny に保存されます。

※ ディテクトマップについて、説明は後続の内容で分かります。

設定箇所はこちら:

基本的な使い方

sd webui に特化したものにしてくれた Mikubill 氏の Github にも使い方とサンプルが載っていますので、把握しておきたい場合、こちらも参考するといいでしょうか。

モデルの指定のところは二つの設定はあります

  • preprocessor(事前処理):アップロードした画像からディテクトマップを生成する
    • ディテクトマップ(detectmap:検出マップ図):AI のモデルが識別できるような図(openpose の場合は棒人間の図)
  • Model:ディテクトマップから画像を生成する
    • もしディテクトマップをお持ちの場合、preprocessor を None で直接画像を生成できる

今回は openpose と Canny の使い方をまとめます。

  • openpose:画像からポーズを再現する
    • 棒人間の図(ディテクトマップ)使って、同じポーズで図を生成する
    • preprocessor(事前処理):None
    • Model:openpose
    • 画像から棒人間を抽出して、同じポーズで図を作成する
    • preprocessor:openpose
    • Model:openpose
  • Canny:線画抽出(キャラクターの線がを抽出する機能)
    • 線画(ディテクトマップ)を選択して、主体を prompt に記載(例:1girl,)することで、線画を塗ってくれる
    • preprocessor:none
    • Model:canny
    • 画像から線画を抽出して、その線画を使って塗りなおす
    • preprocessor:canny
    • Model:canny
    • 自前の線画を使う場合、「invert input color」にチェック入れて、そのまま使用可能
    • これは PC のほうは白が線、黒が空白と認識しているから
    • preprocessor:none
    • Model:canny

コメント

タイトルとURLをコピーしました