Multi ControlNetで複数の機能を

ControlNet

Stable Diffusionの強力な拡張機能であるControlNetを使って、「OpenPose」で棒人間をプリプロセッサで生成し、プロンプトや画像から好みのポーズを生成したり、「Reference Only」で同じ顔の画像を生成してきました。

ただ、これだとControlNetのどれか1つを使って画像を生成することになります。

①「好きなポーズ」の、②「お気に入りの顔」の人物を生成したいといった、わがままを誰もがすぐに抱くでしょう。

そんな、願望を叶える機能がControlNetにあります。「Multi ControlNet」という機能を使えばControlNetの各機能を複合的に利用し、複雑な条件で画像を生成することができます。

Multi ControlNetを利用する為の設定

デフォルトの状態ではControlNetの機能は1つしか利用できません。Multi ControlNetを使い、ControlNetを複数使うためには設定を変更する必要があります。(簡単です)

「Setting」のタブを選択しパネルを切り替えると、左に並んだ項目の中の「ControlNet」を選択すると、下の画像の画面になります。

MultControlNet:Max models amount (requires restart)

このような記述があり、その下にスライダーがあります。
最初は1になっていますので、ControlNetをいくつ組み合わせたいかを指定します。

組み合わせる数は、利用する際にEnableにチェックを入れるかどうかで決まりますので、こちらで指定する数は、画面のメニューに何個のControlNetのタブを表示するかの設定です。

後からでも追加できますので、最初は3つくらいで十分かと思います。変更後はUIの再読み込みが必要になります。

Multi ControlNetのUI(パネル)を確認

Stable Diffusion web UIを再起動(Reload)したら、画面構成を確認してみましょう。

ControlNetのパネルにUnit0~Unit2の、3つのタブが表示されています。設定で3つと指定したので3つのタブが表示されました。

使う場合は、それぞれのタブでこれまで同様、Enableで利用宣言をして、ControyTypeでどの種類の機能を使うのかを選択し、プリプロセッサー(Preprocessor)とモデル(Model)を選び、あとはパラメータの調整を行う流れです。

行う事は、ControlNetが1つの場合と同じであり、タブが増え分だけ同様の設定を繰り返すだけです。

Multi ControlNetを使ってみる

それでは早速、Multi ControlNetを使ってみましょう。

今回、Multi ControlNetを使って行うことは、今まで使用したことのある、「OpenPose」と「Reference Only」を使って、「ポーズ」と「顔」を条件として与えます。

元の画像とプロンプトは以下になります。以前使用したものと同様です。

Prompt(プロンプト):
best quality, ultra high res, (photorealistic:1.4), RAW photo, (upper waist:1.4), (bokeh:1.7),(Window light only:1.6), (in bright japanese-style room:1.5),(bright:1.5)
1japanese girl, (solo), (smile:1.2,open mouth:0.7), (dark brown eyes), natural skin, (brown updo hair,bangs),standing,
(blue silk floral kimono),(obi)

ポーズの指定(OpenPose)

ポーズの指定は、OpenPoseで棒人間を生成し、元画像が棒人間に合わせて生成画像のポーズが変わります。

指定する画像は以前も使用した、こちらの手をクロスして組む女性の画像です。

設定の仕方は、以前の記事を参考にしてください。

上の画像を指定して、プリプロセッサを設定して、生成できます。

また、プリプロセッサで一旦棒人間を生成してから、棒人間の画像を指定して実行(プリプロセッサ無し)すると、毎回棒人間の画像が生成されずディスクの節約になりますね。

顔の指定(Reference Only)

ControlNetの「Reference Only」を選択します。

タブはOpenPoseで使用したタブとは他のタブに切り替えて、設定していきます。OpenPoseは「ControlNet Unit0」に設定しましたので、「ControlNet Unit1」に設定します。

今回指定する顔の画像はこちら

「Reference Only」の設定も過去の記事を参考にしてください。

迷うところは、画像を指定するには、「Upload independent control image」にチェックを入れると選択する場所が表示されますので、忘れないでくださいね。

Multi ControlNetの生成画像

元々、着物を着た手を下に降ろしていた女性でしたが、両手を胸のあたりでクロスしています。また、顔も指定した女性の顔に近い画像が生成されました。

まとめ

単体でも十分強力な機能であるControlNetを、複数組み合わせて利用できるMulti ControlNetについて使えるように設定し、実際画像を生成してみました。

出力画像を得るために何回もトライ&エラーを繰り返したわけではなく2,3回で出力した画像ではありますが、イメージした画像に非常に近い結果が得られました。同じような画像をtxt2imgで試してみましたが、かけ離れた結果の画像しか得られませんでした(腕が無いだけという説もあります)。

いかにControlNetが強力なツールか、そしてControlNetの組み合わせを可能にし複数の条件を連携させるMulti ControlNetは革新的な機能です。本当にすごいですよね。

コメント

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