Checkpointモデル同士を合成させたい!
どうやって出来るの?
Checkpoint Merger、または、拡張機能であるSuperMergerを使うことで
Checkpoint同士を組み合わせたモデルを作成することができます。
さらにクオリティーを高くすることが出来るので、ぜひ参考にして利用してみてください!
この記事では、Checkpoint MergerとSuperMergerの使い方について解説します。
Checkpoint Mergerとは
Checkpoint Mergerは、Checkpoint同士を合成させることができる機能です。
最大3つまで合成させることができます。
以下の画像では、Checkpointの「ACTeka-Remix」と「KayWaii」を組み合わせて生成した結果になります。
このように、Checkpointをマージしてクオリティを高くすることができます。
Checkpoint Mergerの使い方
「Checkpoint Merger」をクリックしてください。
モデルを設定する
Primary model(A)は、1つ目のモデル
Secondary model(B)は、2つ目のモデル
Tertiary model(C)は、3つ目のモデルを設定します。
最大3つまでモデルを組み合わせることができます。
今回の例では、Primary model(A)とSecondary model(B)の場所に2つのモデルを設定しています。
モデル名を決める
Custom Name(Optional)項目ではモデル名を決めることができます。
何も入れない場合は合成後に自動で名前が設定されます。
モデルを混ぜる割合を設定
Multiplier(M)の項目では合成する割合を設定します。
「0.5」にするとmodel(B)の割合を半分振り分けます。
「0.2」ならmodel(A)は「0.8」、model(B)は「0.2」となります。
モデルの補間方法を設定
Interpolation Methodではモデルの補完方法を選択します。
2つのモデルを合成する場合は、「Weight sum」を選択します。
「Add difference」では、3つのモデルを設定しないとエラーが起きるので3つ設定してください。
ファイル形式を設定
Checkpoint formatではファイル形式を選択します。
ckpt形式は古い形式になっているので非推奨です。
ここでは「safetensors」を選択しています。
Save as float16を設定する
「Save as float16」にチェックを入れることで
モデルの容量を小さくすることができます。
検証したのですが、品質は全く変わらないのでチェックを入れることを推奨します。
チェックをつけてマージするとエラーが出る場合があるので
その時はチェックを外してマージしてみてください。
Copy config fromを選択
「Copy config from」項目は
どのモデルの設定をマージするモデルに引き継ぐのかの設定になります。
Stable Diffusion V1系なら「Don’t」でいいです。
Stable Diffusion V2以降なら他の場所を選択する場合があります。
VAEの設定をする
「Bake in VAE」項目では、VAEも組み合わせて合成することができます。
マージする
設定が完了したら「Merge」ボタンをクリックすることで合成が始まります。
上手く合成できたら「Stable Diffusion checkpoint」の項目に
新しくモデルが追加されているので確認してください。
リアル風&アニメ風でマージした比較結果
以下の画像では、リアル風の生成に向いている「majicMIX」と「Beautiful Realistic Asians」をマージした結果になります。
右側の合成後では、2つのモデルと組み合わさって生成することができています。
以下の画像では、アニメ風の生成に向いている「brightmix」と「endlessmix」の2つをマージした結果になります。
こちらも上手く2つのCheckpointと組み合わさって画像生成することができていますね。
このように、画風を合成させて質を高くすることができます。
SuperMergerとは
SuperMergerは、Stable Diffusion Web UIの拡張機能であり
使用することで、Checkpoint Mergerと似たようにCheckpoint同士を組み合わせて画像生成することができます。
他には、階層マージも使用することができます。
SuperMergerの導入方法
右上にある「Extensions」を選択して
「Install from URL」を選択します。
URL for extension’s git repositoryに、「https://github.com/hako-mikan/sd-webui-supermerger.git」をコピーペーストしてください。
「Install」をクリックしてください。
「Installed」を選択してから
「sd-webui-supermerger」がインストールされているか確認してください。
「Settings」を選択してから
「Reload UI」をクリックして再起動すると導入完了です。
SuperMergerの使い方
「SuperMerger」のタブが追加されているのでクリックしてください。
「Merge」を選択してください。
モデル設定
「ModelA〜C」に、マージするCheckpointを選択してください。
最大3つまで可能です。
合成する
「Merge!」をクリックしてください。
マージが完了すると、「Current Model」にマージされているモデル名が記載されます。
マージされてもSuperMergerの仕様上、左上にある「Stable Diffusion checkpoint」には反映されません。
txt2imgに生成する内容を入力
「txt2img」に、生成する内容を入力してください。
生成する
SuperMergerに戻ってから、「Gen」をクリックすることで
マージしたモデルで画像生成することができます。
Calculation Modeについて
「Calculation Mode」を変更すると、違った画像生成結果にできます。
以下では、初期設定の「normal」、「cosineA」、「cosineB」で生成した比較結果になります。
このように、違った生成結果にすることができます。
階層マージのやり方
階層マージを行う場合は、「use MBW」にチェックを入れます。
「Merging Block Weights」の右側にある逆三角形をクリックして開きます。
下にスクロールすると、階層マージを設定するスライダーが多く並んでいます。
階層マージのことは詳しく分かりませんが
これらを変更すると違ったマージ方法になるので、少し異なった画像生成結果にできます。
「Select Preset」中からプリセットを選択すると、自動で設定してくれます。
この例では、「Select Preset」の中から「GRAD_V」を選択して生成してみます。
「Merge&Gen」をクリックすると、画像生成することができます。
以下の動画では、単純マージと階層マージの比較結果になります。
少し違った結果になっていますね。
以下の画像では、アニメ風で単純マージと階層マージを生成した比較結果になります。
こちらも異なった画像生成結果になっています。
このように、階層マージを使用すると違ったマージ方法になるので
全く同じ設定でも異なった画像生成結果にできます。
まとめ
Checkpoint MergerとSuperMergerの使い方について解説しました。
クオリティーの高いCheckpoint同士を組み合わせることで
さらに質を高くすることができます。
是非参考にしてマージしてみてください。