今回は、ローカル環境にインストールした複数の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など拡張機能用のモデルも当然必要となるので、モデルファイルだけでも相当なファイルサイズになります。
・krita-ai-diffusionの登場
Stable Diffusionのユーザーインタフェースとは異なりますが、筆者の場合、krita-ai-diffusionも使用しています。
krita-ai-diffusionは、kritaというオープンソース・ペイントソフト用のプラグインです。
ComfyUIの技術を使っているプライグインで、kritaのキャンパス上で適当にマウスで描いた線や図形をもとにリアルタイムで画像生成してくれる優れモノです。
使用するCheckpointによって画風が変わるので、様々なイラストを描くことが可能です。
このkrita-ai-diffusionの登場により、全く絵心がない筆者でも、それなりのイラストを描くことができるようになりました。
ComfyUIがバックエンドにある。
つまり、krita-ai-diffusion を使うには、当然Checkpointが必要となります。
・同じファイルを複数保存するという無駄
筆者は、以下の3つのStable Diffusionを使っていることになります。
- Stable Diffusion WebUI
- Comfyui
- krita(krita-ai-diffusion)
Stable Diffusion WebUI(AUTOMATIC1111)、ComfyUI、krita-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)パスを書き換える
- エクスプローラーで stable-diffusion-webui を開く。
- アドレスバーの上で右クリックしてアドレスをコピーする。
- コピーしたアドレスを 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です。
3.まとめ
今回は、CheckpointやLoRA、VAEなどを保存してあるmodelsフォルダとembeddingsフォルダの共有について解説しました。
Stable Diffusion WebUIのmodelsフォルダとembeddingsフォルダをComfyuiに読ませる訳ですが、逆のことはできないのでしょうか?
結論から言うと、多少の制約はありますが不可能ではありません。
この疑問については、次回の記事で解説します。
最後までお読みいただき、ありがとうございました。
次回の記事もお楽しみに!
コメント