今回はStable Diffusion web UIの拡張機能に関する話題で、タイトルの通り
の使い方をご紹介するという内容になっています。
Stable Diffusion系のモデルを使って美少女イラスト等を生成している方であれば、キャラクターの手や指がグチャグチャになってしまう問題に悩むことが多いと思います。この問題に関しては今まで多くの解決策が模索されていましたが今一つ決定打と呼べる案がありませんでした。
しかしそんな中で「ControlNet」と呼ばれる新技術が登場し、これを活用して手や指の問題をある程度解決する方法が考案されました。そして先日にはこの方法をStable Diffusion web UIで簡単に使える無料の拡張機能が登場したので、ぜひ情報を共有しておこうと思った次第です。
ここではその拡張機能「Depth map library and poser」について、インストール方法や使い方を解説していきますね。
最新のControlNet 1.1では、openposeモデルを使うと指まで制御できるようになっており下記でご紹介している方法を使う必要性はやや薄まりました。
ただしこの記事でご紹介している方法は依然として手を上手く描くのに有効ですし、途中で解説している「Multi ControlNet」機能は使いこなせると応用が利いて便利なのでぜひやり方を覚えて頂ければと思います。
前提:「Stable Diffusion web UI」と「ControlNetの拡張機能」が必要
まず今回ご紹介する拡張機能を使うためには
- Stable Diffusion web UI(AUTOMATIC1111版)が必要
- さらにそのweb UI用のControlNet拡張機能も必要
となります。まだStable Diffusion web UIをインストールしていない場合は、下記の記事でインストール手順や使い方を丁寧に解説していますのでそちらをご覧ください。
またControlNetについては下記の記事で詳しくご紹介していますので、まだ使ったことがないよ、という方はそちらも併せてご覧頂ければと思います。
Depth map library and poserの概要
ではここからが本題で、拡張機能「Depth map library and poser」の概要や使い方についてご説明していきます。
公式ページ
Depth map library and poserとは?
まずこの拡張機能は一言でいうと
です。
先ほどの公式ページには必要最低限の説明しか書かれていないので補足しておくと、ControlNetには「奥行き」を判定してその通りの画像を生成する機能があり、これはその機能を利用した拡張機能となっています。
ちなみに今までは
- 3Dモデリングソフト等で手をモデリング
- 手順1の3Dモデルを画像化
- 手順2の画像をControlNet用の元画像として使う
という流れが必要だったのですが、正直面倒くさかったのでこのような便利な拡張機能が誕生したものと思われます。
Stable Diffusion web UIへのインストール方法
次に導入方法についてですが、やり方は簡単で「拡張機能」タブ→「URLからインポート」と進み、下のURLを入力して「インストール」ボタンを押すだけです。
あとはweb UIを再起動すればインストール完了です。
Depth map library and poserの使い方
画面構成と基本的な使い方
最後に使い方ですが、web UIの画面に「Depth Library」というタブが出現します。それを選ぶと次のような画面になります。
左側に手の画像が色々あるので、その中から好きな画像を選び、大きさ・位置・回転を調整するだけです。
Multi ControlNet機能を使って画像を生成する方法
ただそれだけだと本当に手しかなく、キャラクター全体のポーズを指定するには不十分です。そこで別の拡張機能「Openpose Editor」と併せて使ってみましょう。
まずOpenpose Editorで好きなポーズを作り、棒人間の画像を保存します。
次に棒人間の画像をDepth map library and poserに読み込みます。読み込みは「Add Background image」ボタンから行うことができます。そうしたら手を追加し、位置や大きさ・回転を棒人間に合わせてください。
なおライブラリには「左手」しか用意されていません。右手を用意したい場合は、手のバウンディングボックスの側面をつまんで反対側にドラッグしていくと、もう一方の側面をまたいだ時に左右反転して右手になります。
これで手の部分ができたので一旦保存しておきましょう(※ちなみに読み込んだ棒人間の画像は、あくまでも参考として表示されるだけなので手の部分だけが保存されます)。
次に、ControlNetの設定を変更して「Multi ControlNet」機能を有効化します。「設定」タブ→「ControlNet」→「Multi ControlNet: Max models amount」を「2」にしてweb UIを再起動してください。
これでControlNetにおいて
- 棒人間を使ったOpenpose機能
- 手の奥行き情報を使ったDepth機能
の2つを同時に使用できるようになります。
ここまでできたら保存した画像を使ってControlNetで画像生成を行います。txt2imgのControlNetの項目を展開すると、「Control Model」タブが2つになっていると思うので、先ほど保存した画像をそれぞれのタブにドラッグ&ドロップして設定を行ってください。
具体的には
- Enable:チェックをON
- Preprocessor:none(←必ずこれに設定してください)
- モデル:棒人間のほうは「Openpose」、手のほうは「Depth」を選択
という感じです。
これで試しに美少女イラストを生成してみると、下のように手がかなり正確に描かれたイラストが生成されました!
おわりに
以上、簡単ではありますが「Depth map library and poser」のご紹介でした。この拡張機能を使うと手軽に正確な手を描かせることができて便利なので、ぜひ試してみてください。
この記事が何かしら参考になれば幸いです。