Stable Diffusionでマージ(融合)モデルを作成する方法
- ※当ブログはアフィリエイト・アドセンスによる収益で運営されています。
こういったお悩みにお答えします。
Stable Diffusionでイラストを生成するにあたってモデル選びはとても重要。あなたの好みに合ったモデルを使わないと、いつまで経っても理想のイラストは手に入りません。
この記事では
- 【9つの設定項目】Stable Diffusionでマージ(融合)モデルを作成する方法
- 実際にモデルをマージした結果
- さらに細かく調整したいなら階層マージにチャレンジしよう
- もっとスムーズにイラストを生成したいなら…
- 生成した大量のイラストを簡単に管理する方法
これらについて解説していくので、最後まで読むとモデルをマージして、あなた好みのモデルを手に入れる方法がわかります。
初心者の方・Stable Diffusionに関してわからないことがある方は以下の記事も読んでみてください。Stable Diffusionのダウンロード方法や使い方について詳しく解説しています。
>>【完全初心者用ガイド】Stable Diffusionの使い方を徹底解説!
【9STEP】Stable Diffusionで簡単にモデルをマージする方法
『異なるモデルをマージ(融合)する』と聞くとなにやら難しそうですが、実際の作業はとても簡単です。初心者の方もサクッと試してみてください。
まずは『Checkpoint Merger』タブを選択しましょう。9つの設定項目があるので、順番に解説していきます。
マージするモデルを選択
Checkpoint Mergerでは『2つ』もしくは『3つ』のモデルをマージすることができます。はじめは単純な『2つ』から始めるのがおすすめ。
Primary model (A)とSecondary model (B)にマージするモデルを選びましょう。
Custom Name:マージモデルの名前を入力
マージ後のモデルの名前を入力しましょう。どのモデルをマージしたのかがわかるような名前にしておくのがおすすめです。
Multiplier(M):マージの比率を選択
ここが最も重要なパラメーターです。モデルAとモデルBをマージするときは
- A × (1 – M) + B × M
の計算式でモデルの特徴量が配分されます。
例えば
- M = 0 → Aのまま
- M = 0.3 → Aが7・Bが3の割合
- M = 0.5 → AとB半分ずつ
- M = 0.8 → Aが2・Bが8の割合
このように、数値を大きくするほどモデルAの割合が減っていきます。
Interpolation Method:補間方法を選択
Interpolation Methodは
- No interpolation
- Weighted sum
- Add difference
これら3つから選択することになります。
No interpolation
『補間なし』を表します。2つのモデルをマージするのではなく、1つのモデルにVAEを焼く場合に選択しましょう。
Weighted sum
2つのモデルを加重平均で補間します。2つのモデルをマージする場合はこれ。
Add difference
モデルBとモデルCの差をモデルAに付加する方法です。計算式はA + (B – C) * M。
3つのモデルをマージする場合に選択します。
Checkpoint format
常に『safetensors』でOK。ckpt形式は古く、セキュリティ上のリスクも高いため非推奨です。
Save as float16
チェックを入れるとマージ後のモデルが『float16(半精度)』形式になります。ほぼデメリットはなく、モデルの容量を軽くできるため常にチェックを入れておきましょう。
Copy config from
マージ後のモデルに元モデルの設定を引き継ぐかどうか、引き継ぐとしたらどのモデルから引き継ぐのかを決める項目。
『設定ってなんじゃい』という話ですが、どうもSD 2.xのモデル以外は関係なさそう(出典:Github)。
とりあえず筆者はいつも『Don’t』にしています。
Bake in VAE
マージ後のモデルにVAEを含ませておくかどうか。ネット上にあるモデルもVAEを含んでいるものと含んでいないものがありますよね。
個人で楽しむためにマージするなら『None』でいいのではないでしょうか。
Discard weights with matching name
モデルから特定の名前を持つ要素を削除するときに使うようです(出典:Github)。
今回のように『モデルを混ぜてみたい』という場合は空欄のままでOK。
以上の項目について設定が完了したら『Merge』ボタンを押すとマージが開始されます。
実際にモデルをマージした結果
今回はマージの効果がわかりやすいように
- Primary model(A):AbyssOrangeMix3
- Secondary model(B):chilloutmix
これら2つの、アニメ系・リアル系で有名なモデルを選びました。
AbyssOrangeMix3ではこのようなアニメ系のイラストが
chilloutmixではリアル系のイラストが生成されます。大きく性質が異なるモデルだということだけ覚えておいてください。
もちろん、モデルのマージはアニメ系同士・リアル系同士でも可能です(というかそのケースが多いはず)。
その他の設定項目は
- Custom Name:Abysschill(適当)
- Multiplier(M):0.5
- Interpolation Method:Weighted sum
- Checkpoint format:safetensors
- Save as float16:チェック
- Copy config from:Don’t
- Bake in VAE:None
- Discard weights with matching name:空欄
こんな感じでマージを行いました。
所要時間はほんの数十秒。筆者(RTX3060)よりも上位機種(40×0)を使っている方はもっと速いでしょう。
完了するとマージ後のモデルが選択できるようになります(表示されない場合は右側の更新ボタンを押してください)。
アニメ系とリアル系の特徴が混ざり合って、2.5次元系のモデルになりました。
組み合わせるモデル・マージする割合によって無限の組み合わせがあるので、自分好みのモデルを作るためにいろいろなパターンを試してみてください。
さらに細かく調整したいなら階層マージにチャレンジしよう
『このモデルの〇〇の部分だけ取り入れたい』というような場合は『階層マージ』が必要です。
ここまでお伝えしてきたのは、モデル単位でマージする『単純マージ』でした。モデル全体を混ぜ合わせるため、背景・顔・構図など、モデルが持つすべての特徴が引き継がれてしまいます。
階層マージでは、U-Netのレイヤーごとにマージする・しないを細かく選択できるのがメリット。
ただし、どのレイヤーがどの要素に影響しているのかなどまだまだ研究中の分野です。沼るので個別に解説はしませんが、興味がある方はsupermergerという拡張機能を導入して階層マージにチャレンジしてみてください。
モデルとLoRAをマージするなどの応用も可能です。
supermergerのダウンロードは
- https://github.com/hako-mikan/sd-webui-supermerger
こちらからどうぞ。
もっとスムーズにイラストを生成したいなら…
もしあなたがもっと快適にAIイラストを生成したいなら、グラボを見直してみるのがおすすめです。
グラボはAIイラストを生成するうえで最も重要なパーツ。いくらCPUやメモリが高性能でもグラボがしょぼかったら致命的です。
本格的に取り組んでいくのなら、グラボにはケチらず投資しましょう。最低でも12GBのVRAMは確保しておきたいところ。VRAMが2GB・4GBくらいしかない古いグラボだと高解像度化や学習に大きな支障が出てしまいます。
コスパを重視する方・予算が5万円以下の方はRTX 3060一択と言っていいでしょう。
もう少し予算が確保できて、さらにハイスペックなグラボに興味がある方は以下の記事もお読みください。きっとあなたに合ったグラボが見つかりますよ。
>>【コスパ重視】Stable Diffusionにおすすめのグラボ3選!
PCごと買い替えを検討している方は以下の記事をお読みください。快適にStable Diffusionを使えるマシン3選を紹介しています。
>>Stable Diffusionにおすすめのパソコン3選と推奨スペックを解説!
生成した大量のイラストを簡単に管理する方法
Stable Diffusionで生成した大量のイラストを効率的に管理するなら『Eagle』というツールがおすすめ。
イラストを生成するとメタデータが自動でEagleに送られ、タグやメモとして保存されます。このタグを使うことで検索や管理がとても楽ちん。
例えば『a dog』というタグで検索すると、そのプロンプトで生成されたイラストだけを表示することができます。『あのイラストどんなプロンプトで生成したっけ?』『LoRAのトリガーワード忘れた』なんて迷わずに済みますよ。
Eagleは本来『約4,000円・買い切り型』の有料ツールですが、30日間の無料体験ができるので、とりあえず試してみてください。
『Stable Diffusionでマージ(融合)モデルを作成する方法』のまとめ
- Checkpoint Mergerで簡単にモデルをマージできる
- 所要時間はたったの数十秒
- お気に入りの組み合わせを見つけてみよう
ここまでお読みいただきありがとうございました!
他にもわからないことがあったら以下の記事をお読みください。初心者向けにStable Diffusionの使い方を一から解説しています。