今回はStable Diffusionに関する初心者向けの話題で、タイトルの通り
を簡潔にご紹介するという内容になっています。
Stable Diffuison系のモデルを使って画像を生成していると
- 自分好みのモデルがなかなか見当たらないなぁ
- でも自分でモデルを作る方法もさっぱり分からない…
という悩みにぶち当たることがあります。今は様々なモデルが出回っていますが、必ずしも既成のモデルが自分の好みにマッチするとは限りませんよね。かといってLoRAのように特定のキャラクターや画風を学習させたいわけでもなく、あくまでも汎用性のあるモデルとして自分好みのものが欲しい…といった場合もあることでしょう。
そこでこのようなときはマージモデルを自作できるようになると便利です。マージモデルとはその名の通り既存のモデル同士を合体させたモデルのことで、基本的には難しい作業は必要なく簡単に作ることができます。
ここではこのマージモデルの作り方を解説していきますね。
前提:Stable Diffusion web UIをインストールして使えるようにしておく
はじめに前提として、ここでは「Stable Diffusion web UI」を使ったマージモデルの作り方をご説明しますので、予めこのツールをインストールして使えるようにしておく必要があります。
「まだweb UIをインストールしていないよ」という方は、下記の記事でインストール方法や基本的な使い方を解説していますのでまずはそちらをご覧ください。
※ちなみにマージモデル自体は他のツール(NMKD Stable Diffusion GUI等)でも作ることができますが、ここでは解説しません。予めご了承ください。
マージモデルの作り方
ではここからマージモデルの作り方について解説していきます。
「Checkpointのマージ」タブの設定項目について
web UIを起動し、「Checkpointのマージ」タブを開くとマージモデル作成画面になります。色々な設定項目がありそれぞれ知っておいた方がいいので、一つずつご説明しますね。
- モデル選択
- 名前
- Multiplier
- 混合方式
- checkpointのファイル形式
- float16で保存
- コンフィグをコピー
- VAEを焼き込む
モデル選択
マージに使用するモデルを選択します(モデルは予め所定のフォルダに入れておく必要があります)。モデルをマージするには2種類のモデルが必要なのでどのモデル同士をマージするかを決めておきましょう。
ちなみにドロップダウンメニューは3つありますが、3つ目は後述する「混合方式」で「差を加える」を選択したときに使用されます。
名前
マージ後のモデルにつける名前を適当に入力します。
Multiplier
各モデルをどの程度の割合でマージするか決める値です。後述する「混合方式」がデフォルトの「加重平均」の場合、計算式は
となります。したがって、例えばMultiplier=0.3のときはモデルAが70%、モデルBが30%の割合でマージされます。
混合方式
モデルをどのようにマージするか決めます。次の3つの選択肢があります。
- 補間なし
- 加重平均
- 差を加える
補間なし
マージを行わないオプションです。単純にモデルのファイル形式を変更したり、VAEを埋め込んだりしたいときに選択します。
加重平均
2つのモデルを混ぜ合わせる分かりやすいマージ方式です。計算式は先ほどご紹介した通り
です。式をご覧いただければ気づくと思うのですが、MultiplierはモデルAの影響をどれだけ消すか?を決める値になっているので注意してください(※モデルAの割合を決める値かと思いきやそうではありません)。
差を加える
3つのモデルを使ったマージ方式で、モデルBとモデルCの差分をモデルAにマージします。イメージとしてはモデルBとモデルCの異なる部分をモデルAに追加する感じですね。
計算式は次のとおり。
checkpointのファイル形式
モデルのファイル形式を指定します。
- ckpt
- safetensors
の2種類がありますが、safetensorsのほうが読み込みが速く・安全性も高いので特に理由がなければsafetensorsのほうを選びましょう。
float16で保存
チェックを入れるとモデルのファイルサイズが小さくなります。チェックを入れない場合と比較して生成結果が僅かに変わる可能性があります。
コンフィグをコピー
Stable Diffusion v2系以降のモデルをマージするときのための設定項目です。コンフィグファイルをどのモデルからコピーするかを指定します。
v1系のモデルをマージするときは無関係なのでデフォルトのままでOK。
VAEを焼き込む
必要なら指定したVAEを同梱することができます。「なし」のままでもOK。
設定したら「マージ」ボタンを押してしばらく待つだけ!
設定項目を一通り埋めたら、あとはオレンジ色の「マージ」ボタンを押してしばらく待つだけです。選択したモデルやお使いのPCの性能にもよりますが、マージ処理にはそこまで時間はかからず数十秒で完了します。
マージモデルの作成例
さて上記の設定項目をご理解いただければ簡単にマージモデルを作れてしまうのですが、サンプルがないと生成結果がどういう感じになるのかが分かりづらい気がするので、私が実際に試した例を掲載しておきます。
条件
- モデルA:Counterfeit V2.5
- モデルB:Pastel Mix
- Multiplier:0.5
- 混合方式:加重平均
生成した美少女イラストの比較
Counterfeit | Pastel Mix | マージモデル |
---|---|---|
マージモデルはCounterfeitの精細な描写と、Pastel Mixの優しいタッチをそれぞれ引き継いだような画風になりました。
おわりに
以上、Stable Diffusion web UIを使ったモデルのマージ方法について解説しました。マージモデルの作り方が分かると自分好みのモデルを作れて楽しいですし、表現の幅も広がって面白いのでぜひ試してみてください。
この記事が何かしら参考になれば幸いです。