Checkpoint Merger

Last-modified: 2023-12-03 (日) 00:29:35

Stable Diffusion web UIが標準で備えている機能の一つ。

  • モデル(.safetensors/.ckpt)ファイルを混ぜ合わせることが出来る。
  • モデルに他のVAEファイルをbake(焼き込む、つまり内蔵)することが出来る。

Checkpoint Merger実行結果メモ用

項目解説

Primary model (A)

Secondary model (B)

Tertiary model (C)

合成素材にするモデル達。
何はともあれAの指定は必須である。
BやCの指定が必要になるかどうかは、後述のInterpolation Methodの選択によって変わる。

🔃を押すと、モデルリストの表示が更新される。
モデルフォルダへ新しいモデルを追加した場合等に利用する。

Custom Name (Optional)

結果として作成されるモデルファイルの名前を入力する欄。
(Optional) とある通りで、入力は必ずしも必要ではない。
未入力の場合はABCのモデル名や割合に基づいて自動的に命名される。

例:

0.7(aaaa) + 0.3(bbbb).safetensors

ただしInterpolation MethodにNo interpolationを選択した場合は例外で、

要求された操作はユーザー マップ セクションで開いたファイルでは実行できません。

等のエラーメッセージが表示される。
同名のファイル(モデルAのこと)が既に存在しており、上書きに失敗するからだ。
従って、No interpolationを選ぶ場合には、何らかの新しい名前を入力する必要がある。

Multiplier (M) - set to 0 to get model A

複数のモデルを混ぜ合わせる際の割合を制御する値。デフォルト0.3。
この値がどういう使われ方をするかは、後述のInterpolation Methodによる。

Interpolation Method

No interpolation

補間なし。基本的にAのモデルがそのまま出力される。

  • ファイル形式(.safatensors/.ckpt)を変更したい
  • fp16で保存し直したい
  • 他のVAEを内蔵したい
  • モデルのメタデータを編集したい

などの場合に利用する。

Weighted sum

2つのモデルを混ぜ合わせる。
得られる結果は A*(1-M)+B*M となる。
※通常なんとなくM=元(A)の割合と思いがちだが、実際にはAをどれだけ消すかの割合なことに注意

Add difference

3つのモデルを混ぜ合わせる。
得られる結果は A+(B-C)*M となる。

Checkpoint format

ckpt

2022年の夏から年末にかけて使われていた、旧形式。

safetensors

現在主流になっている形式。おすすめ。

(関連) モデルについて#拡張子が色々あるけど、どれを選べば良いの?

Save as float16

ONにするとモデルをfp16で保存する。
デフォルトはOFFになっているが、ONにすることをおすすめする。
OFFではファイルサイズが大きくなってしまう場合がある。

(関連) モデルについて#同じモデルでも複数(fp16,fp32,pruned)あるけどどれがいいの?

Bake in VAE

内蔵したいVAEファイルを指定する。

その他

Sigmoid

今は廃止された古い方式
拡張機能Marge Boardで対応している

Git Re-Basin

Merge-Stable-Diffusion-models-without-distortion
マージ時のモデルの損失を抑えるらしい(詳細不明
WebUIとは別の環境が必要
改良型.py
GUI版

おたより

  • A=null,B=とわDB(TL産fp16),C=NAI,result⇒xとし、A=sdv1-5,B=x,C=nullにしたけど転送できませんでした。 -- 2022-10-23 (日) 17:28:16
  • 海外 https://rentry.co/LFTBL -- 2022-11-10 (木) 04:42:15