Super Mergerでモデルマージが超簡単!使い方とコツを徹底解説
Super Merger makes model merging super easy! Thorough Explanation of Usage and Tips
モデルを使ってるとこのキャラは気に入ってるけど背景があんまりとか思うことがあると思うにゃ。
そんなときは気に入った画風のキャラと別のモデルの背景を合体!みたいなことができるにゃ。
階層別マージに焦点を当てますが実際にやってみた個人的な感想を書くにゃ。
いくら頑張っても100%の理想的なモデルにはならないのにゃ!
というのも顔の部分と背景と体はこれでと考えて設定しても思い通りにならないのが現実にゃ。
最終的にたどり着いたのはランダム生成して利用に近いものを選ぶのが一番効率が良いにゃ。
階層マージの仕組みを理解するために時間を費やしてこの背景とキャラを....ムムムムとやってみてなんか違うなーと思ったときに息抜きにランダム生成したらそれっぽいのができたのにゃ!
みたいなことが多い気がするのにゃー!!!
ということで、かなり使い込んで最終的に出たランダム生成の方法を解説するにゃ。
super mergerの導入
Super Mergerは、stable diffusion web UIの拡張機能で、複数のモデルを階層ごとに重み付けしてマージできるツールです。
How-To Guides
Step 1: txt2imgの設定
super mergerのサンプル画像はtxt2imgの内容が繁栄されます。
サンプルで比較する画像をプロンプトとSeed値などで固定化することで比較しやすくなります。
通常の画像生成をするのと同じようにサイズやsanpling数などを設定します。

比較するための画像を1枚生成しておきます。
生成した画像のSeed値を設定します。

Step 2: Super Mergerの設定
Super Mergerのタブに移動します。
次の設定でランダム生成までの設定を記載します。
正直なところ階層マージを調べてみて顔はこの部分で体はこれで...と時間をかけて考えてもあんまり良い結果が得られない気がします。
運を天にまかせてランダム生成したものから理想に近いものを選ぶのが早いです。

ModelAとModelBを選択します。
ここではMerge ModeからWeight sumを選択します。
Calculation Modeから以下のいずれかを選択しますがMerge Modeによって選択できるものが変わります。
・normal: 今までのSuper Mergerと同じ計算方法でマージします。使えるMerge Modeはすべてです。
・cosineA/cosineB: モデルAとモデルBの構造の類似性を考慮して、より良い結果を出す計算方法です。使えるMerge ModeはWeight sumのみです。cosineAはモデルA寄り、cosineBはモデルB寄りになります。
・smoothAdd: モデルの差をスムーズに加算する計算方法です。使えるMerge ModeはAdd differenceのみです。
・tensor: モデルの特徴を層ごとに分割して結合する計算方法です。使えるMerge ModeはWeight sumのみです。
・trainDifference: モデルの差分を疑似的に学習させるようにマージする計算方法です。使えるMerge ModeはAdd differenceのみです。
階層マージを行うため、use MBWにチェックを入れます。
すぐ下にあるOptionsのアコーディオンを開きます。
最初は保存せずに出来上がったモデルの比較をするだけなのでsave modelのチェックは外れたままにします。
safetensorsとfp16にチェックを入れます。
save merged model ID toのimageにチェックを入れます。これは比較画像にmodelのIDが書かれるようになります。
Custom Name(Optional)には保存する場合のモデル名を入力します。

下の方に並んでるアコーディオンのLet the Dice rollを開きます。
Random ModeからR、またはUを選択します。説明にある通りUの方がランダム性が高くなります。
XはSeed for Random Ratioの設定値が使われます。
Settingsには選択したモデルのランダムウェイトを適用するものにチェックします。
Num of challengeにはマージする回数を設定します。
ここまでで準備完了です。
Run Randをクリックします。


今回はNum of challengeに10を設定したので10個のモデルが出来ました。
一番最初に作成した画像と比較して気に入ったものを保存します。
見えにくいですが画像の左上についている番号がmodel IDです。
この番号をもとにモデルを保存します。
Step 3: Modelの保存

先ほどの比較画像の左上に書いてるmodel IDをmerged model IDにセットします。
merged model IDを入力したら左にあるLoad settings fromをクリックします。
次にOptionsのsave modelにチェックを入れます。
最後にCustom Name(Optional)に作成するモデル名称を入力します。
Merge!ボタンをクリックすると設定したmodel IDに応じたモデルの完成です。
Step 4: 作成したモデルの確認

出来上がったモデルを確認します。
マージに使ったModelAとModelBの同じSeed値で作成した画像と新しく出来上がったModelCで同じSeed値で作成したものを並べてみるとよくわかります。
ModelAの体型と背景を強く受けつぎ、ModelBの顔を強く受け継いだ新しいModelCが完成しました。
ただこれ1枚だけでは正直判断できないので数十枚ランダムで画像を生成してみて最終的に良いモデルを選定します。
下手に勉強して思ったものが出来ないのに比べたら楽なのにゃ。
10個~20個ほどランダムで作成すれば意外に理想的なものが不思議とできるのにゃ。
どうしてもこの背景とこのスタイル調のキャラで~みたいな場合は頑張って勉強してみるのも良いかもしれないにゃ。
面倒くさいから吾輩はやらんけどにゃ。
階層マージの仕組みを覚えるだけでも1日じゃ足りないかも知れないにゃ~。
なんやかんやで簡単な方法に落ち着いたのにゃ。
[PR]