マージモデルの作り方!自分好みのモデルを作ってみよう【Stable Diffusion web UI】

マージモデルの作り方 画像生成AI

今回はStable Diffusionに関する初心者向けの話題で、タイトルの通り

Stable Diffusion web UIを使ったマージモデルの簡単な作り方

を簡潔にご紹介するという内容になっています。

Stable Diffuison系のモデルを使って画像を生成していると

  • 自分好みのモデルがなかなか見当たらないなぁ
  • でも自分でモデルを作る方法もさっぱり分からない…

という悩みにぶち当たることがあります。今は様々なモデルが出回っていますが、必ずしも既成のモデルが自分の好みにマッチするとは限りませんよね。かといってLoRAのように特定のキャラクターや画風を学習させたいわけでもなく、あくまでも汎用性のあるモデルとして自分好みのものが欲しい…といった場合もあることでしょう。

そこでこのようなときはマージモデルを自作できるようになると便利です。マージモデルとはその名の通り既存のモデル同士を合体させたモデルのことで、基本的には難しい作業は必要なく簡単に作ることができます。

ここではこのマージモデルの作り方を解説していきますね。

前提:Stable Diffusion web UIをインストールして使えるようにしておく

はじめに前提として、ここでは「Stable Diffusion web UI」を使ったマージモデルの作り方をご説明しますので、予めこのツールをインストールして使えるようにしておく必要があります。

「まだweb UIをインストールしていないよ」という方は、下記の記事でインストール方法や基本的な使い方を解説していますのでまずはそちらをご覧ください。

「Stable Diffusion web UI」のインストール方法・日本語化・使い方まとめ(AUTOMATIC1111版)
今回も画像生成AIに関する初心者向けの話題で、タイトルの通り 「Stable Diffusion web UI」のインストール方法・日本語化の方法・使い方 をまとめてみるという内容になっています。 画像生成AIの代表格であるStable D...

※ちなみにマージモデル自体は他のツール(NMKD Stable Diffusion GUIでも作ることができますが、ここでは解説しません。予めご了承ください。

マージモデルの作り方

ではここからマージモデルの作り方について解説していきます。

「Checkpointのマージ」タブの設定項目について

web UIを起動し、「Checkpointのマージ」タブを開くとマージモデル作成画面になります。色々な設定項目がありそれぞれ知っておいた方がいいので、一つずつご説明しますね。

「Checkpointのマージ」タブの画面

  1. モデル選択
  2. 名前
  3. Multiplier
  4. 混合方式
  5. checkpointのファイル形式
  6. float16で保存
  7. コンフィグをコピー
  8. VAEを焼き込む

モデル選択

マージに使用するモデルを選択します(モデルは予め所定のフォルダに入れておく必要があります)。モデルをマージするには2種類のモデルが必要なのでどのモデル同士をマージするかを決めておきましょう。

ちなみにドロップダウンメニューは3つありますが、3つ目は後述する「混合方式」で「差を加える」を選択したときに使用されます。

名前

マージ後のモデルにつける名前を適当に入力します。

Multiplier

各モデルをどの程度の割合でマージするか決める値です。後述する「混合方式」がデフォルトの「加重平均」の場合、計算式は

モデルA * (1 – Multiplierの値) + モデルB * Multiplierの値

となります。したがって、例えばMultiplier=0.3のときはモデルAが70%、モデルBが30%の割合でマージされます。

混合方式

モデルをどのようにマージするか決めます。次の3つの選択肢があります。

  1. 補間なし
  2. 加重平均
  3. 差を加える
補間なし

マージを行わないオプションです。単純にモデルのファイル形式を変更したり、VAEを埋め込んだりしたいときに選択します。

加重平均

2つのモデルを混ぜ合わせる分かりやすいマージ方式です。計算式は先ほどご紹介した通り

モデルA * (1 – Multiplierの値) + モデルB * Multiplierの値

です。式をご覧いただければ気づくと思うのですが、MultiplierはモデルAの影響をどれだけ消すか?を決める値になっているので注意してください(※モデルAの割合を決める値かと思いきやそうではありません)。

差を加える

3つのモデルを使ったマージ方式で、モデルBとモデルCの差分をモデルAにマージします。イメージとしてはモデルBとモデルCの異なる部分をモデルAに追加する感じですね。

計算式は次のとおり。

モデルA + (モデルB – モデルC) * Multiplierの値

checkpointのファイル形式

モデルのファイル形式を指定します。

  • ckpt
  • safetensors

の2種類がありますが、safetensorsのほうが読み込みが速く・安全性も高いので特に理由がなければsafetensorsのほうを選びましょう。

float16で保存

チェックを入れるとモデルのファイルサイズが小さくなります。チェックを入れない場合と比較して生成結果が僅かに変わる可能性があります。

コンフィグをコピー

Stable Diffusion v2系以降のモデルをマージするときのための設定項目です。コンフィグファイルをどのモデルからコピーするかを指定します。

v1系のモデルをマージするときは無関係なのでデフォルトのままでOK。

VAEを焼き込む

必要なら指定したVAEを同梱することができます。「なし」のままでもOK。

設定したら「マージ」ボタンを押してしばらく待つだけ!

設定項目を一通り埋めたら、あとはオレンジ色の「マージ」ボタンを押してしばらく待つだけです。選択したモデルやお使いのPCの性能にもよりますが、マージ処理にはそこまで時間はかからず数十秒で完了します。

マージモデルの作成例

さて上記の設定項目をご理解いただければ簡単にマージモデルを作れてしまうのですが、サンプルがないと生成結果がどういう感じになるのかが分かりづらい気がするので、私が実際に試した例を掲載しておきます。

条件

生成した美少女イラストの比較

Counterfeit Pastel Mix マージモデル
Counterfeitで生成した美少女イラストの例(1) Pastel Mixで生成した美少女イラストの例(1) マージモデルで生成した美少女イラストの例(1)
Counterfeitで生成した美少女イラストの例(2) Pastel Mixで生成した美少女イラストの例(2) マージモデルで生成した美少女イラストの例(2)

マージモデルはCounterfeitの精細な描写と、Pastel Mixの優しいタッチをそれぞれ引き継いだような画風になりました。

おわりに

以上、Stable Diffusion web UIを使ったモデルのマージ方法について解説しました。マージモデルの作り方が分かると自分好みのモデルを作れて楽しいですし、表現の幅も広がって面白いのでぜひ試してみてください。

この記事が何かしら参考になれば幸いです。