「Stable Diffusion web UI」ではモデルのマージ機能が搭載されており、それを利用することで既存のモデルをマージして(混ぜ合わせて)新しいモデルを作成することができます。
モデルのマージ機能は、いつも利用しているモデルAにモデルBの要素を少し加えたいといったときに活用できます。
誰でもすぐに自分だけのオリジナルモデルを作成することができます。
新しいモデルを作成する
Checkpointのマージ
マージしたいモデルのファイルを「Stable Diffusion web UI」→「sd.webui」→「webui」→「models」→「Stable-diffusion」内に移動させておきます。用意したモデルは上書きも削除もされませんので安心してください。
その後、「Stable Diffusion web UI」を起動します。
「Checkpointのマージ(Checkpoint Merger)」タブを開きます。
「1つ目のmodel(A)(Primary model)」欄にベースにしたいモデルを選択します。「2つ目のmodel(B)(Secondary model)」欄に混ぜ合わせたいモデルを選択します。
三つ目のモデルがある場合には「3つ目のmodel(C)(Tertiary model)」欄にそのモデルを選択します。
ここでは「Stable-diffusion」フォルダ内にたまたま入っていたモデルを選択しました。「anything-v4.0」をベースにして「CounterfeitV25」を混ぜ合わせます。
混ぜ合わせるモデルは、どういうモデルがマージされて出来上がったものかを予め調べておくほうがよいかもしれません。
マージモデルの名称を半角英数で「名前(Custom Name)」欄に入力します。どのモデルを混ぜ合せたものか分かるような名称をつけておくと後から判別できて便利です。
ここでは「anything-v4.0」と「CounterfeitV25」の前半部をとって、「anycountermix3」としました。末尾の「3」は次の設定内容を一瞥できるようにしたものです。配合比率を変更しながら繰り返しマージするため、すぐ見て分かるほうがよいです。
「Multiplier(M)0にすると完全にmodel Aとなります」とあるように、ベースとなるモデルAにモデルBの要素をどの程度付加するかをスライドバーを動かして「0.05」刻みで設定します。
既定の「0.3」はモデルAが70%、モデルBが30%の配合比率となるようです。
ここの数値が高くなりすぎるとモデルBの影響が強く出てきてしまいます。最初はデフォルトの「0.3」から「0.2」あたりで設定してみてはいかがでしょうか。
「混合方式(Interpolation Method)」は「加重平均(Weighted sum)」のままです。
特段の理由がない限り「safetensors」を選択します。「float16」にチェックを入れるとモデル容量を軽減できるとのことですが、チェックなしでよいと思います。一度チェックを入れてみたらエラーが出ました。
VAEをモデルに入れることもできるようです。今回は「なし」のまま作成しました。
すべての設定が完了したら「マージ」ボタンをクリックします。マージ作業は数十秒で完了します。
なお、パソコン本体のメインメモリが少なすぎるとエラーが出るかもしれません。今はメモリがとても安くなっていますので、今のうちに増設されることを強く推奨します。
新しいモデルのファイルは、モデルを入れている「Stable-diffusion」フォルダに生成されています。
今回の場合はモデルの生成に21秒掛かりました。
新しいモデルを使って画像を生成する
新しく生成したモデルは、「Stable Diffusion web UI」を再起動することなく、チェックポイントの選択欄から選ぶことができます。
配合比率をデフォルトの「0.3」しましたが、それでも「CounterfeitV25」の影響が強く出ているように感じます。
今回はモデルフォルダに入っているモデルを便宜的にマージしましたが、実際はモデルの特徴をよく見てからマージを試みてください。
いずれにしても配合比率を変更しながら何度かマージをすることになります。