AIが苦手な「手」を正確に描かせるための拡張機能「Depth map library and poser」の紹介【ControlNet】

手を正確に描かせる拡張機能 画像生成AI

今回はStable Diffusion web UIの拡張機能に関する話題で、タイトルの通り

AIが苦手な「手」を正確に描かせるための拡張機能「Depth map library and poser」

の使い方をご紹介するという内容になっています。

Stable Diffusion系のモデルを使って美少女イラスト等を生成している方であれば、キャラクターの手や指がグチャグチャになってしまう問題に悩むことが多いと思います。この問題に関しては今まで多くの解決策が模索されていましたが今一つ決定打と呼べる案がありませんでした。

しかしそんな中で「ControlNet」と呼ばれる新技術が登場し、これを活用して手や指の問題をある程度解決する方法が考案されました。そして先日にはこの方法をStable Diffusion web UIで簡単に使える無料の拡張機能が登場したので、ぜひ情報を共有しておこうと思った次第です。

ここではその拡張機能「Depth map library and poser」について、インストール方法や使い方を解説していきますね。

※2023/04/17追記:
最新のControlNet 1.1では、openposeモデルを使うと指まで制御できるようになっており下記でご紹介している方法を使う必要性はやや薄まりました。
ただしこの記事でご紹介している方法は依然として手を上手く描くのに有効ですし、途中で解説している「Multi ControlNet」機能は使いこなせると応用が利いて便利なのでぜひやり方を覚えて頂ければと思います。

前提:「Stable Diffusion web UI」と「ControlNetの拡張機能」が必要

まず今回ご紹介する拡張機能を使うためには

  • Stable Diffusion web UI(AUTOMATIC1111版)が必要
  • さらにそのweb UI用のControlNet拡張機能も必要

となります。まだStable Diffusion web UIをインストールしていない場合は、下記の記事でインストール手順や使い方を丁寧に解説していますのでそちらをご覧ください。

「Stable Diffusion web UI」のインストール方法・日本語化・使い方まとめ(AUTOMATIC1111版)
今回も画像生成AIに関する初心者向けの話題で、タイトルの通り 「Stable Diffusion web UI」のインストール方法・日本語化の方法・使い方 をまとめてみるという内容になっています。 画像生成AIの代表格であるStable D...

またControlNetについては下記の記事で詳しくご紹介していますので、まだ使ったことがないよ、という方はそちらも併せてご覧頂ければと思います。

ポーズを指定して画像を生成できる「ControlNet」の使い方【Stable Diffusion web UI】
今回も画像生成AIに関する話題で、タイトルの通り ポーズや構図をきっちり指定して画像を生成できる「ControlNet」の使い方 を丁寧にご紹介するという内容になっています。 画像生成AIを使ってイラストを生成する際、ポーズや構図を決めると...

Depth map library and poserの概要

ではここからが本題で、拡張機能「Depth map library and poser」の概要や使い方についてご説明していきます。

公式ページ

GitHub - jexom/sd-webui-depth-lib: Depth map library for use with the Control Net extension for Automatic1111/stable-diffusion-webui
Depth map library for use with the Control Net extension for Automatic1111/stable-diffusion-webui - jexom/sd-webui-depth...

Depth map library and poserとは?

まずこの拡張機能は一言でいうと

ControlNetを利用してキャラクターの手や指をより正確に描くための拡張機能

です。

先ほどの公式ページには必要最低限の説明しか書かれていないので補足しておくと、ControlNetには「奥行き」を判定してその通りの画像を生成する機能があり、これはその機能を利用した拡張機能となっています。

ちなみに今までは

  1. 3Dモデリングソフト等で手をモデリング
  2. 手順1の3Dモデルを画像化
  3. 手順2の画像をControlNet用の元画像として使う

という流れが必要だったのですが、正直面倒くさかったのでこのような便利な拡張機能が誕生したものと思われます。

Stable Diffusion web UIへのインストール方法

次に導入方法についてですが、やり方は簡単で「拡張機能」タブ→「URLからインポート」と進み、下のURLを入力して「インストール」ボタンを押すだけです。

https://github.com/jexom/sd-webui-depth-lib.git

sd-webui-depth-libのインストール方法

あとはweb UIを再起動すればインストール完了です。

Depth map library and poserの使い方

画面構成と基本的な使い方

最後に使い方ですが、web UIの画面に「Depth Library」というタブが出現します。それを選ぶと次のような画面になります。

Depth Libraryの画面

左側に手の画像が色々あるので、その中から好きな画像を選び、大きさ・位置・回転を調整するだけです。

Multi ControlNet機能を使って画像を生成する方法

ただそれだけだと本当に手しかなく、キャラクター全体のポーズを指定するには不十分です。そこで別の拡張機能「Openpose Editor」と併せて使ってみましょう。

ControlNet用のポーズを簡単に作れる「Openpose Editor」の使い方【Stable Diffusion web UI】
今回はStable Diffusion web UIとControlNetに関する話題で、タイトルの通り ControlNet用のポーズを作れるweb UI用の拡張機能「Openpose Editor」の使い方 をご紹介するという内容になっ...

まずOpenpose Editorで好きなポーズを作り、棒人間の画像を保存します。

Openpose Editorで作った棒人間の例

次に棒人間の画像をDepth map library and poserに読み込みます。読み込みは「Add Background image」ボタンから行うことができます。そうしたら手を追加し、位置や大きさ・回転を棒人間に合わせてください。

Depth Libraryで手の配置を行った場合の例

なおライブラリには「左手」しか用意されていません。右手を用意したい場合は、手のバウンディングボックスの側面をつまんで反対側にドラッグしていくと、もう一方の側面をまたいだ時に左右反転して右手になります。

これで手の部分ができたので一旦保存しておきましょう(※ちなみに読み込んだ棒人間の画像は、あくまでも参考として表示されるだけなので手の部分だけが保存されます)。

次に、ControlNetの設定を変更して「Multi ControlNet」機能を有効化します。「設定」タブ→「ControlNet」→「Multi ControlNet: Max models amount」を「2」にしてweb UIを再起動してください。

Multi ControlNetの有効化方法

これでControlNetにおいて

  • 棒人間を使ったOpenpose機能
  • 手の奥行き情報を使ったDepth機能

の2つを同時に使用できるようになります。

ここまでできたら保存した画像を使ってControlNetで画像生成を行います。txt2imgのControlNetの項目を展開すると、「Control Model」タブが2つになっていると思うので、先ほど保存した画像をそれぞれのタブにドラッグ&ドロップして設定を行ってください。

Openposeの設定Depthの設定

具体的には

  • Enable:チェックをON
  • Preprocessor:none(←必ずこれに設定してください)
  • モデル:棒人間のほうは「Openpose」、手のほうは「Depth」を選択

という感じです。

これで試しに美少女イラストを生成してみると、下のように手がかなり正確に描かれたイラストが生成されました!

Depth map library and poserを活用して生成した美少女イラストの例

おわりに

以上、簡単ではありますが「Depth map library and poser」のご紹介でした。この拡張機能を使うと手軽に正確な手を描かせることができて便利なので、ぜひ試してみてください。

この記事が何かしら参考になれば幸いです。