【AIイラスト】supermergerで階層マージの効率を良くしよう

久々の投稿もやはりAIイラスト関係です。

今更ながら階層マージを効率よく行う方法を書いていきます。

必要な拡張機能

階層マージが話題になった時は、sdweb-merge-block-weighted-gui、という拡張機能で階層マージを行っていましたが、これは1つずつしかマージが出来ないので効率が悪いです。

そこで登場する拡張機能がこちら!

sd-webui-supermerger です。

この拡張機能、何が良いのかと言うと、
複数のレシピを指定してマージができ、その指定した分のマージモデルで画像を生成し、その画像をX/Y/Z plot のように並べた画像を出力してくれるのです。

また、マージしたモデルを保存しない設定にも出来るので、ボツモデルが増えていくこともなくストレージ容量にもやさしいです。

スポンサーリンク

使い方

拡張機能のインストールのような基本的な部分の説明は省きます。

supermergerをインストールすると、「SuperMerger」というタブが追加されます。そのタブを開いて設定していきます。

まずは、基本的な部分の設定をしていきましょう。

まず一番上に「Merge」「LoRA」「History」…とタブが並んでいますが、マージを行うときは「Merge」タブを選んでください。

次に選択するのがマージに使用するモデルです。Model A、B、C にモデルを指定していきます。
今回はAとBの2つのモデルを選択してくださいです。

Merge Modeweight sumを選択し、その下のCalcutation Modenormalを選択しましょう。
どちらもデフォルトでチェックが入っていると思います。

その下にある、use MBWにチェックを入れてください。これにチェックを入れないと階層マージが適用されません。その隣にあるalphaとbetaはデフォルトのままで大丈夫です。

その下にあるsave settingsですが、今はレシピごとに生成されるイラストを比較したいだけなので、save modelのチェックが外れている状態にしてください。

そしたらその横にあるwrite merged model ID toimageにチェックを入れてください。
PNG infoでも良いのですが、このIDというのは、後でレシピを呼び出すのに必要になるので確認しやすいimageにチェックを入れるのをおすすめします。

ここまで設定を終えたら、少し下の方にスクロールしてください。X type、Y typeと書かれた項目があります。今度はここを設定していきます。

この項目はX/Y/Z plot と同じような感じで設定します。

今回はX typeに階層マージのレシピY typeに画像生成時のseed値を入力したいので、
X typeにはmbw alphaY typeにはseedを設定しました。

mbw alphaにはカンマ区切りで26個の0~1の数値を入力します。
入力方法は、そのままレシピを打ち込んでも、プリセット名を入力しても良いです。

ここで余談ですが、レシピが最初から決まっているのであればそのままそのレシピを入力するだけで良いですが、レシピも決まっておらず、良さげなレシピも思い浮かばない場合は以下の乱数生成サイトをおすすめします。

乱数生成(小数)

設定は以下のような感じ。
範囲 : 0 から 1
小数点以下 : 2桁
個数 : 25
ソート : ソートしない
表示方法 : カンマ区切り

小数点以下を2桁にしていますが、ここはお好みで大丈夫です。
また、個数が25個ですが、これはレシピの最初に指定する数値がBaseに該当する為です。

アニメ系モデルとリアル系モデルをマージする際、ベースをどちらかに固定したい場合がほとんどだと思います。ですので、25個で数値を生成し、先頭に「0,」と付けるようしています。

もし、ベースモデルもランダムにしたいという場合は個数を26にして生成しましょう。

それでは、X typeとY typeの設定が終わったら、次はプロンプトや画像サイズなど、生成時の設定をしていきます。

この設定は、普段画像を生成する時に使っている「txt2img」タブからいつも通り行うので、説明は省略します。

プロンプトなどの設定が終わったら「SuperMerger」タブに戻り、X type、Y typeのところにある「Sequential XY Merge and Generation」ボタンをクリックします。

これであとは生成されるのを待つだけです。

もしここでエラーが出る場合、大抵の場合は設定の見落としか、レシピの桁数が不足しています。
レシピの桁不足は、他の階層マージで出力されたログからコピペした時に起こる事が多いので、もし他のログやサイトからコピペしたレシピがあるなら、そのレシピの桁数を確認してみてください。

 

それでは、生成された画像を見てみましょう。生成された画像はいつもと同じ場所に保存されていますつまり、単体はtxt2img-imagesフォルダグリッド表示のはtxt2img-gridsフォルダです。

今回は、レシピごとの比較をしたいのでグリッド表示の画像を使います。

はい、このような感じになりました。

一番左側のレシピはプリセットのALL_Aなので、Model Aで生成された画像が、反対のALL_BではModel Bで生成された画像が表示されています。私の場合、比較するときはこのように最初と最後にベースとなったモデルの画像を置くようにしています。

今回の場合は、全てのレシピでベースをModel Aに振っているので似たようなのが多いですね。

さて、お気づきの方もいるかもしれませんが、生成されたイラストの左上を見てください。
なにやら番号が書かれていますね。そう、これが先ほど言ったIDです。

生成したイラストを見比べて、これが良いというようなモデルが見つかったのであれば、IDをメモしましょう。

今回は、ID 198でやります。

それではやり方です。

まずは、save settingssave modelにチェックを入れましょう。あとはお好みでチェックしてください。

次に、merge from ID にメモしたIDを入力します。Custom Name(Optional)は出力されるモデルの名前になります。好きなように入力しましょう。

これで設定は完了です。あとは「Merge!」ボタンをクリックすればモデルが出力されます。

スポンサーリンク

最後に

これでご飯を食べている間やお風呂に入っている間に、良い感じのマージモデルを作ることができますね。

 

それでは!

コメント