【Stable Diffusion】 Checkpointを共有 する

Stable Diffusion

 

今回は、ローカル環境にインストールした複数のUI間で Checkpointを共有 してストレージを節約する方法を解説します。

CheckpointやLora、VAEなどを保存してあるmodelsフォルダとembeddingsフォルダを共有できるので大変便利で効果的です。

Stable Diffusionを自分のパソコンにインストールして使用している方は必見です!

 

1. Checkpointの共有が必要な理由

・複数のStable Diffusion

Stable DiffusionのUI(User Interface)には、Stable Diffusion WebUI(AUTOMATIC1111)ComfyUIなどがあります。

筆者の場合は、Stable Diffusion WebUI(AUTOMATIC1111)をメインに使用しいますが、動画などを生成する場合は、ComfyUIを使用します。

どちらを使用する時も、当然CheckpointやLoRA、embeddingsなどが必要です。

また、Controlnetなど拡張機能用のモデルも当然必要となるので、モデルファイルだけでも相当なファイルサイズになります。

 

Checkpointを共有 する:WebUI画面
WebUI画面
Checkpointを共有 する:Comfyui画面
Comfyui画面

 

・krita-ai-diffusionの登場

Stable Diffusionのユーザーインタフェースとは異なりますが、筆者の場合、krita-ai-diffusionも使用しています。

krita-ai-diffusionは、kritaというオープンソース・ペイントソフト用のプラグインです。

ComfyUIの技術を使っているプライグインで、kritaのキャンパス上で適当にマウスで描いた線や図形をもとにリアルタイムで画像生成してくれる優れモノです。

使用するCheckpointによって画風が変わるので、様々なイラストを描くことが可能です。

このkrita-ai-diffusionの登場により、全く絵心がない筆者でも、それなりのイラストを描くことができるようになりました。

ComfyUIがバックエンドにある。

つまり、krita-ai-diffusion を使うには、当然Checkpointが必要となります。

 

Checkpointを共有 する:kritaの編集画面
krita画面

 

・同じファイルを複数保存するという無駄

筆者は、以下の3つのStable Diffusionを使っていることになります。

  • Stable Diffusion WebUI
  • Comfyui
  • krita(krita-ai-diffusion)

 

Stable Diffusion WebUI(AUTOMATIC1111)ComfyUIkrita-ai-diffusionのそれぞれを普通にインストールするとCheckpointやLoRAなどをそれぞれで異なる場所に保存することになります。

Checkpointのファイルサイズは、小さいのもで約2GB。SDXL系となると約6.5GB程度のファイルサイズになります。

実写系、イラスト系それぞれで、いくつものCheckpointを使うため、ストレージの使用量が半端ではありません。

本記事執筆時に \stable-diffusion-webui\models フォルダのファイルサイズを調べたところ、300GBを優に超えていました。

合計で数百GBにもなるCheckpointやLoRAなどを3か所に置いておくなんて現実的ではありませんし、管理もしにくくなります。

Checkpointなどを1か所に置いて共有できれば、ストレージの節約にもなりますし、管理もしやすくなります。

 

目次に戻る

 

 

2. Checkpointを共有 する方法

CheckpointやLoRAなどを共有する場合、原則としてStable Diffusion WebUI(AUTOMATIC1111)での保存場所が基本となります。

つまり、ComfyUI、krita-ai-diffusionにStable Diffusion WebUI(AUTOMATIC1111)のCheckpointやLoRA、VAEなどの保存場所であるmodelsフォルダを読ませる形になります。

方法は非常に簡単で、ComfyUI、krita-ai-diffusionのインストール時にComfyUIフォルダ内に作成される extra_model_paths.yaml.example というファイルを少し書き換えるだけです。

このyamlファイルの一部を書き換えて extra_model_paths.yaml というファイル名で保存することにより、CheckpointやLoRA、VAEなどをStable Diffusion WebUI(AUTOMATIC1111)と共有できます。

 

(1)extra_model_paths.yaml.example を開く

extra_model_paths.yaml.example をメモ帳、テキストエディット、VS Codeなどで開きます。

ファイルが保存されているフォルダは、以下のとおりです

・Comfyの場合

\ComfyUI


・krita-ai-diffusionの場合

\krita\pykrita\ai_diffusion.server\ComfyUI

 

(2)パスを書き換える

  1. エクスプローラーで stable-diffusion-webui を開く。
  2. アドレスバーの上で右クリックしてアドレスをコピーする。
Checkpointを共有 する:WebUIインストールフォルダのアドレス(パス)をコピー
WebUIのアドレス(パス)をコピー

 

  1. コピーしたアドレスを path/to/stable-diffusion-webui/ の部分に貼り付ける。
    ※この例では、Dドライブ直下にWebUIがインストールされています。
#Rename this to extra_model_paths.yaml and ComfyUI will load it

#config for a1111 ui
#all you have to do is change the base_path to where yours is installed
a111:
    base_path: d:/stable-diffusion-webui/ ←ここに貼り付ける

    checkpoints: models/Stable-diffusion
    configs: models/Stable-diffusion
    vae: models/VAE
    loras: |
         models/Lora
         models/LyCORIS
    upscale_models: |
                  models/ESRGAN
                  models/RealESRGAN
                  models/SwinIR
    embeddings: embeddings
    hypernetworks: models/hypernetworks
    controlnet: models/ControlNet

以下、略

 

(3)extra_model_paths.yaml というファイル名で保存する

extra_model_paths.yaml というファイル名で保存します。

もとのファイル名:extra_model_paths.yaml.example から .example を削除して保存すればOKです。

Checkpointを共有 する:ファイル名をextra_model_paths.yamlに変更して保存
ファイル名をextra_model_paths.yamlにして保存

 

 

目次に戻る

 

 

3.まとめ

今回は、CheckpointやLoRA、VAEなどを保存してあるmodelsフォルダとembeddingsフォルダの共有について解説しました。

Stable Diffusion WebUIのmodelsフォルダとembeddingsフォルダをComfyuiに読ませる訳ですが、逆のことはできないのでしょうか?

結論から言うと、多少の制約はありますが不可能ではありません。

この疑問については、次回の記事で解説します。

最後までお読みいただき、ありがとうございました。

次回の記事もお楽しみに!

 

ページトップへ

コメント

タイトルとURLをコピーしました