勉強がてら自分自身でStable Diffusionのマージを作成してみます。
階層マージは難しそうなので単純マージを試します。
今回試すマージ手法
AUTOMATIC1111に搭載されている「Checkpoint Merger」を使用します。
Primary model (A)と Secondary model (B)にそれぞれ混ぜたいモデルを選択します。今回は下記のモデルをそれぞれ選択してみました。いずれも「CreativeML Open RAIL-M」をライセンスとしています。
A:0.25 x B:0.75の比率でマージするEstrildaMixとA:0.35 x B:0.65でマージするEstrildaMix2を作成してみます。
約40秒でモデルの格納先に出力されました。
マージ前後を比較してみる
下記のプロンプトで生成した画像を比較してみましょう。
viewer-mixは淡く柔らかい雰囲気のタッチが特徴なのに対して、MeinaPastelはよりアニメ的かつリアリスティックな描写に優れたモデルです。MeinaPastelは私のプロンプトの書き方に対して欲しい要素が出てきやすいため表現のしやすさを保ちつつ、少しviewer-mixのタッチの雰囲気を取り込みたいという思いでマージしてみました。
EstrildaMixとEstrildaMix2を見比べてみると、viewer-mixの比率を少し高めた後者では顔の輪郭のクセがviewer-mix感が出ていますね。個人的にはこれらの更に中間くらいが好みなのでA:0.3 x B:0.7で再度マージし直します。
……と、こんな感じでマージ比率を変えたり繰り返し様々なモデルとマージを繰り返していくことで、好みに寄せたモデルを作り出すことができるようになります。
ライセンスは基本的にマージ元となったモデルのものを引き継いでいくことになるため、どのモデルをどの比率でマージしたか以外にも各モデルのライセンスを控えておくと良いでしょう。