ControlNetのデフォルトの設定値はシンプルな設定になっています。そのため多くの人には有益なのに設定されていない事項がいくつかあるので本記事ではそれをまとめて解説することにしました。
ControlNet モデルを複数適用するMulti-ControlNet
Multi-ControlNetとは
Multi-ControlNetとはControlNetをOpenPoseやreference onlyなどのControlNetの機能を複数併用するための機能です。これによってある特徴量を維持したまま、変えたい特徴量を変更したり、複数の特徴を保持したまま様々なレパートリーの画像生成ができるようになります。
Multi-ControlNetでできること
Multi-ControlNetでできることを具体的に説明すると次の通りです。
- reference onlyで顔や服装を維持したままOpenPoseでポーズを変える。
- reference onlyで顔を維持したままControlNet inpaintで表情を変える。
- OpenPoseで体全体を制御してDepthで手の形を制御する。
ここの具体的では簡単のために2つ紹介しましたが、PCのスペックが許す限り3つでも5つでも多くのControlNetを併用することができます。ただし実用的には3つぐらいを設定しておけば十分です。
Multi-ControlNetの設定手順
- Settingsタブに切り替える。
- サイドバーからControlNetを選択。
- Multi-ControlNet(利用できるモデルの数)とModel cache size(キャッシュするモデルの数)を併用したいモデルの数を選択します。
- Apply settingsを押して適用します。
- Stable Diffusion Web UIを再起動します。
再起動後にトップページ(txt2img)のControlNetのメニューを開くと指定した数だけタブが増えていることが確認できます。各タブの使い方は普通のControlNetと同じなので特徴を指定した数だけControlNetが適用されます。
ControlNetの抽出した特徴マップを自動保存したい。
抽出した特徴マップ(ポーズ、深度など…)を保存するには次のように設定してください。これを設定しておくとお気に入りの特徴量を使い回せて便利です。
- Settingタブに切り替え
- サイドバーからControlNetを選択
- 保存先のフォルダ名を入力。デフォルトは”detected_maps”です。パスはoutput/txt2img/フォルダ名/OpenPose_〇〇/日付
- Allow detectmap auto savingにチェック
- Apply settingsをクリック
特徴画像が保存されるタイミング: 特徴抽出しただけでは、保存されないので注意
特徴画像が保存されるタイミングは、特徴画像によって画像を生成したときに保存されます。特徴抽出ボタン「💥」をクリックして特徴抽出した段階では保存されません。
その他設定値の説明
おすすめの設定値については紹介しましたが、それ以外の設定値についても紹介します。
Extra path to scan for ControlNet models (e.g. training output directory): ControlNetのモデルパスを追加したい場合は設定します。
Path to directory containing annotator model directories (requires restart, overrides corresponding command line flag): Preprocessorなどで使われる特徴抽モデルを保存するディレクトリのパスです。空欄で問題ありません。
ControlNet inpainting Gaussian blur sigma: ControlNetでインペイントする際のぼかしの強さです。基本的には初期値の7で良いですが、ControlNet Inpaintによる変更を弱めたい場合は小さくして、強めたい場合は大きく設定してください。
Do not apply ControlNet during highres fix: ControlNetを使うときにhighres fixを適用したくない場合は適用します。
Do not append detectmap to output: 出力結果に特徴抽出画像を表示してほしくない場合はチェックを入れます。
Allow other script to control this extension: ControlNetの拡張機能にスクリプトを有効にする際にチェックを入れます。代表的なものはControlNet M2Mなどがあります。
Paste ControlNet parameters in infotext: txt2imgなどで生成結果に表示される生成情報にControlNetの情報を追記したい場合はチェックします。これは好みの問題ですがチェックしておいて損はなさそうです。
Show batch images in gradio gallery output: gradioギャラリーとはStable Diffusion WebUIの基盤となるUIフレームワークです。画像生成時にバッチ画像を表示したい場合はチェックをいれます。
Increment seed after each controlnet batch iteration: Control Netでバッチで複数画像生成するときにControlNet内のシード値を変更するかの設定値です。txt2imgやimg2imgの時点でランダム性があるので、あまり設定するメリットがありません。なのでチェックしなくて大丈夫でしょう。
Disable control type selection: Control Type欄を消すかどうかです。便利なので消す必要は基本的にはないでしょう。
Disable OpenPose edit: 拡張機能を追加することでOpenPoseで抽出した棒人間をtxt2imgから修正できるようになります。そのためのボタンがあるのですが、それを消すかどうかです。こちらも特に消す理由はないので残しておいて良いでしょう。
Ignore mask on ControlNet input image if control type is not inpaint: ControlNetのマスクをInpaintを使うとき意外無視するかどうかの設定です。実はインペイント時以外にもマスクを適用することができます。多くの場合は意図せずにマスクを書いていることが多いので、それを無視するかの設定です。あとはインペイントしててそれを他の機能に切り替えてたときにマスクが残ってしまうこともあります。そのときにマスクを消すのが面倒だったら設定しておいて良いでしょう。
コメント