基本的なモデルマージについて
公開日:
更新日:
こんにちわ、なるみんと申します。
先日、でょさんと一緒に公開した、SE_V1_Aをたくさんの人に使っていただき大変うれしく思います♪
今回はStable Diffusion WebUI標準機能であるCheckpoint Merger(Checkpointの統合)で基本的なマージ方法を解説したいと思います。
・超簡単に解説しますと、
Aにモデルをセットして
Bにもモデルをセットして
Multiplier (M) でAとBどちらに寄せたいか(0.3ならAが70%、Bが30%)設定して
Mergeを押すとマージができます。
ね?簡単でしょ?おわり!
…だとちょっと寂しいので、もう少し詳しく説明します。
・詳しい解説です。
Primary model (A)にベースになるモデル、
Secondary model (B)に混ぜたいモデルをセットします。
場合によってはTertiary model (C)もセットします。
Custom Name (Optional)で名前を決めます(空白でも大丈夫です)
Multiplier (M)で比率を決めます。AとBの2つだけでしたら既定の0.3は
Aが70%、Bが30%のモデルが出来上がります。
Interpolation Method
No interpolationは
マージは行わず、Aのモデルに対してモデル変換(ckpt、safetensors、fp16)とVAE同梱を可能にするモードです。
Weighted sumは
補間には重み付けされた合計が使用されます。A、Bの2つのモデルを使用し結果は、A * (1 - M) + B * Mとして計算されます。
今回は既定のWeighted sumで行います。
Add differenceは
BとCの2つのモデルの差を、最初のモデルAに加算されます。A、B、Cの3つのモデルが必要。結果は、A + (B - C) * Mとして計算されます。
Checkpoint formatは
ckpt→NMKD Stable Diffusion GUIなど別のAI画像生成ソフトでも簡単に使用可能で汎用性が高い
safetensors→NMKD Stable Diffusion GUIで使用するにはコンバートが必要、WebUIだと読み込みの高速化やモデルの安全性があがる(マルウェアの同梱リスクが低くなる)
と特徴があるのでよくわからない場合はckptのままで大丈夫です。
Save as float16にチェックを入れるとfp16で保存さモデル容量の削減ができますが、float32と比較するとほんのごくわずか生成結果が異なります。
Bake in VAEで好きなVAEを同梱することができます。
Copy config fromはA, B or Cのまま
Discard weights with matching nameも空白のままにします。
Mergeを押すとマージができます。
基本的なマージの解説は以上になります。
自分の好みのモデルができるとAIイラストの幅も広がると思います♪
Stable Diffusion WebUIの拡張機能にMerge Block Weighted(階層マージ)というのもあるのですが、こちらはめちゃくちゃ奥が深いのでまた、別の機会にしたいと思います。
ありがとうございました~!