こんばんは、スタジオ真榊です。前回は「Segmentation」を使った構図コントロールのやり方について紹介しましたが、今夜は「canny」や「depth」なども含め、最新のControlNetをフルに使うと何が可能になるのかについて、かなり長文で取り上げていきたいと思います。久々の大型記事ですね!

ControlNetをめぐっては、「Controlnet徹底解説!プロンプト苦難の時代が終わる…」で紹介して以降も、日々精力的なアップデートが続いています。特に界隈で話題なのが「Multi Controlnet」ですよね。これ、同時に複数の抽出機能を使ってイラストを生成できる技術なのですが、本当にヤバイ聖杯中の聖杯です。触ったばかりだと「何に使えるのか分からない」「何と何をどう組み合わせればいいのか分からない」状態に陥りますが、使い方さえわかればAIと一気に仲良しになれます!

短期間に異次元の進化を遂げたControlnetで、具体的にどんなことが可能になったのか。さっそく見ていきましょう~!

Multi controlNetの登場

Multi controlNetの登場:図版1

2023年2月22日に追加された拡張機能「Multi ControlNet」は、複数のcontrolnet機能を同時に発動させて画像生成ができる革新的なアップデートです。text2imageだけでなく、image2imageの際も使うことができます。例えば、「Depth+Openpose」や、「segmentation+canny」、「canny+canny」といった組み合わせによって、複数のイラストからキャラクターを一つのイラストに呼び出したり、構図を完全に固定して各要素だけを入れ替えたり、キャラクタ-はそのままに背景だけを差し替えるようなことが可能になります。

起動方法

Multi controlnetを使えるようにするには、WebUIの設定タブのControlnetのタブを開き、「Multi ControlNet: Max models amount (requires restart)」のつまみを「2」以上にすればOK。t2iなど通常の生成画面に「Control model-0」「Control model-1」「Control model-2」…と、Controlnetの操作タブがその数だけ表示されるようになります。複数のControlnetを使用するときは、それぞれの操作画面の「Enable(有効)」をオンにすることを忘れないようにしてください。

設定画面につまみがない場合は、拡張機能のタブからControlnetを最新版にアップデートする必要があります。アップデート後は「UIの再読み込み」ではなく、WebUI自体を再起動しないと反映されないのでご注意ください。

設定画面のつまみ

              ▲設定画面のつまみ

と、ここでちょっと脱線。Multi Controlnetの説明に入る前に、アプデで追加されたり、これまで説明していなかったControlnet機能についてざっと紹介しておきます。ちなみに、以前は縦に「Control model-0」「Control model-1」...と操作画面が並んでいたのですが、アップデートでタブごとに分けられるようになりました。Ctrl+Vでの画像貼り付けがミスしにくくなったので大変ありがたい!

「preview annotator resultボタン」の実装

アップデートにより、controlnetの操作画面下部に「preview annotator result(抽出結果を見る)」「hide annotator result(抽出結果を非表示にする)」というボタンが追加されています。このボタンにより、いちいち画像生成の結果を待たなくても、参照画像からどのような情報が抽出されるのか事前に確かめることができるようになりました。

「preview annotator resultボタン」の実装:図版1

                ココです

「Annotator resolution」などの値を動かしてもう一度「preview annotator result」を押すことで、白黒画像の抽出処理を調節することができるようになっています。表示された白黒画像を右クリックでダウンロードしたり、別のControlnet画面にそのままドラッグすることも可能。もちろんCanny以外の抽出機能でも同様のことができるので、いろんな設定を試してどんどん活用していきましょう。

抽出データ画像を保存しよう

抽出データ画像を保存しよう:図版1

controlnet機能で抽出したデータ画像はUI画面上には表示されるものの、Outputなどのフォルダには自動保存されません。生成結果から右クリック保存することもできますが、ついつい忘れてしまうことも多く、「あのとき抽出したボーンを保存しておけばよかったなあ」と思う場面もあったと思います。

そうした場合はWebUIの設定タブから「ControlNet」を開き、「Allow detectmap auto saving」にチェックを入れてみましょう。これ以降、controlnetのpreprocessor(前処理)で抽出されたボーン(棒人間)やCannyの輪郭、depth情報といった画像が自動保存されるようになります。保存先はデフォルト設定だと「stable-diffusion-webui\extensions\sd-webui-controlnet\detected_maps」。設定画面の「Directory for detected maps auto saving」の欄で自由に設定できます。

※画像生成終了時に保存されるので、「preview annotator result」で表示しただけではフォルダに残りません

プロンプトいらず?「Guessモード」

プロンプトいらず?「Guessモード」:図版1

「Guess Mode(推測モード)」というボタンも追加されています。これは「非プロンプトモード」のような機能で、プロンプト欄に何も描き込まずとも、参照画像から抽出された情報に最大限注目して同様のものを自由に描くようAIに指示するモード。例えば、プロンプト欄がブランク(空白)の状態で観覧車の写真を「Canny」で読み込ませると、AIはその輪郭から「これは観覧車だろう」と自分で推測して、観覧車を描くことができます。逆に何が描かれているか特定できない輪郭やdepth状態を読み込ませると、AIはそこから連想できるさまざまなものを描き出します。

ただ、これはまだ実験中の機能のようで、期待通りに動かないことも多いです。どういうものなのかだけ理解しておけばOKというところでしょうか。ちなみに、Multi controlnetが発動している場合はどれか一つの画面でGuessモードがONになると、全てのControlnetにその効果が及ぶとのことです。