「Checkpoint Merger」をわかりやすく解説ー複数のモデルから新たなモデルを作る【Stable Diffusion】

2023年7月23日Stable diffusionAI, ControlNet

Checkpoint Merger

Stable diffusionの「ControlNET&拡張機能講座」第22回目。複数のモデルをマージ(融合)して、新たなモデルを作り出す「Checkpoint Merger」をわかりやすく解説していきます。

現在持っているモデルがワンパターンに感じてきたら使えそうニャ。

そんなわけでさくっとやり方を説明していきましょう。前回の「「Dynamic prompts」をわかりやすく解説ーワイルドカードでランダムキャラ作成」は以下のリンクから。

 

「Checkpoint Merger」の使い方

「Checkpoint Merger」は最初から入っているので、導入の必要はありません。

2種類のモデルのマージ

checkpoint merger

「Checkpoint Merger」タブに移動すると、「Primary model (A)」「Secondary model (B)」「Tertiary model (C)」が一番上にあります。ここでモデル(最大3種類)を設定します。それぞれクリックすると、現在導入しているモデルの一覧が出てくるので、最初は2種類をマージしますので、適当にAとBにモデルを設定しておいてください。

その下の「Custom Name」は出力されるマージモデルの名前です。わかりやすい名前を適当につけてください。考えるのが面倒だったら「test」でもいいです。

つぎに「Multiplier (M) 」ですが、これは重みですね。

たとえば0.3にした場合、Aの重みは0.7、Bの重みは0.3になります(合計して1)。Aの重みが0.3ではないので注意してください。

0.3で設定すると、Bが0.3になるのニャ。Aは0.7なのニャ。

重みをおなじにしたければ、0.5にすればいいですね。

その下の「Interpolation Method」は、2種類のマージをするので「Weighted sum」を選択。ちなみに「No interpolation」は1つのモデルにVAEをマージするだけのもの、Add difference」は3つのモデル用です。

Checkpoint format」は、ほとんどの有名モデルが「safetensors」なのでそれを選択。

Copy config from」はモデルのコンフィグをコピーする項目なので、「A, B or C」のままで。

Bake in VAE」はVAEもマージするかどうかなので「NONE」で。

あとは一番下の「Merge」ボタンをクリックするだけです。

終わったら、モデルを選ぶ欄にマージモデルが追加されているので、いつものように利用すればいいだけです。

Checkpoint Merger

出来上がったのがタイトルの画像ですね。アニメ調のモデル(左)と、実写寄りのモデル(中央)0.5のウェイト(重み)で組み合わせた結果、その中間ぐらいのモデル(右)ができあがっているのがわかるかと思います(すべておなじシード値とプロンプト)。

アニメすぎず、実写すぎずでいい感じニャ。

性質の違うものどうしを組み合わせたほうが結果が顕著ですね。

3種類のモデルのマージ

次は3種類に挑戦してみましょう。

といってもやることはほぼ同じで、「Checkpoint Merger」で3つのモデルを設定します。A,B,Cに適当に設定してください。

Interpolation Method」は、Add difference」を選択。

「Multiplier (M) 」「A+(B-C)×M」のMの重みになります。

わかりやすくいうと、「BとCの差分に重みをつけて、Aとマージする」という意味ですね。

あとは一番下の「Merge」ボタンをクリックするだけです。

なんか計算式がわかりにくいニャ。

正直2つだけでやったほうが結果もわかりやすいと思います。

3つやるばあいは、まずAとBをマージして、その結果にCをマージみたいに2回に分けてやったほうがいいでしょう。

作ったモデルを消す

つくったモデルは、いつもモデルを入れているフォルダに自動的に入ります。Stable Diffusionをインストールしたフォルダの

\stable-diffusion-webui\models\Stable-diffusion

の中ですね。ふつうに削除すればOKです。起動中はモデルのリロードを忘れずに。

 

まとめ

そんなわけでモデルをマージする「Checkpoint Merger」でした。

使ってみると案外簡単なので、「このモデルとこのモデルを合わせたらいいものできそう」と思ったときにマージしてやるとよいでしょう。

処理も速いので、気軽にできるのがいいですね。

いろいろ挑戦してみるのニャ。

それではまた次回の講座でお会いしましょう。【追記】次回「「mediapipe_face」をわかりやすく解説ー表情を利用して画像生成」できました。以下のリンクから。