AI活用

ComfyUIでモデル保存先を共有する|extra_model_paths.yamlの設定方法

ComfyUIのモデル保存先は、extra_model_paths.yamlにbase_pathと種類ごとのpathを書くだけで外部フォルダや他のUI(Forge・A1111)と共有できます。YAMLの書き方、Checkpoint・LoRA・VAEの分け方、外付けSSD・NASの注意、表示されないときの確認順を解説します。

この記事の目次
  1. 結論:正本フォルダを1つ決め、YAMLで各UIから参照する
  2. モデル共有のメリット:容量・管理・速度をどう考えるか
  3. extra_model_paths.yamlの基本:base_pathと種類ごとのキー
  4. Checkpoint・LoRA・VAEを分ける:キー名がそのままNodeの一覧になる
  5. Forge等と共有する:どのフォルダを正本にするか
  6. 案1:すでにあるA1111・Forgeのフォルダを正本にする
  7. 案2:UIに属さない中立フォルダを正本にする
  8. 重複保存と共有で容量を比べる
  9. 外付けSSD・NASの注意:切断・権限・遅延
  10. モデルが表示されないとき:path→権限→拡張子→再読み込みの順で確認する
  11. よくある質問
  12. シンボリックリンクで済ませるのと、YAMLで設定するのはどちらがよいですか?
  13. ComfyUI Desktop版でも同じファイルを使いますか?
  14. 複数のセクションを書いたら、どの順で一覧に出ますか?
  15. まとめ

ComfyUIのモデル保存先は、extra_model_paths.yamlに「どのフォルダを基準に、どの種類のモデルがどこにあるか」を書くだけで、ComfyUI本体の外にあるフォルダや、Forge・A1111など他のUIのフォルダと共有できます。モデルを1か所に置けば、同じCheckpointを何GBも重複して保存せずに済み、どれが最新かも迷いません。

情報確認日:2026年8月22日(日本時間)

結論:正本フォルダを1つ決め、YAMLで各UIから参照する

責任範囲

  • extra_model_paths.yamlの書き方(base_path・種類ごとのキー・複数path・is_default
  • Checkpoint・LoRA・VAEなど種類ごとにpathを分け、誤認識を防ぐ整理
  • Forge・A1111と共有するとき、どのフォルダを正本にするかの設計例
  • 外付けSSD・NASに置くときの切断・権限・遅延の注意と、モデルが表示されないときの確認順
  • モデルの入手方法や、LoRAの使い方そのものは扱わない。LoRAはComfyUIでLoRAを使う方法に渡す
スポンサーリンク

モデル共有のメリット:容量・管理・速度をどう考えるか

画像生成のCheckpointは1ファイルで数GBあり、ComfyUIとForgeの両方で使うために2か所に置くと、その分だけ容量を二重に消費します。共有する最大の利点は、この重複を無くせることと、「どのフォルダのファイルが最新か」を1か所だけ見れば済むことです。

観点 UIごとに別保存 正本を1つにして共有
容量 UIの数だけ同じファイルが増える 1ファイル分で済む
更新・削除 全部のフォルダで同じ作業が要る 正本を直せば全UIに反映
設定の手間 なし(各UIの既定フォルダに置くだけ) UIごとに1つ設定ファイルを書く
壊れたときの影響 そのUIだけ 正本を壊すと全UIに影響

読み込み速度は、共有するかどうかではなく「ファイルがどの媒体にあるか」で決まります。Checkpointの読み込みはファイルを丸ごとメモリに載せる処理なので、内蔵NVMe・外付けSSD・HDD・ネットワーク越しの転送速度の差が、そのまま読み込み時間の差になります。毎回使うCheckpointは速い媒体、たまに使うものは大容量の媒体と役割を分けてください。秒数は環境で変わるため、後述の記録表で自分の環境を測ることを勧めます。

extra_model_paths.yamlの基本:base_pathと種類ごとのキー

ComfyUIのフォルダ直下にある雛形extra_model_paths.yaml.exampleをコピーし、extra_model_paths.yamlという名前にすると起動時に自動で読み込まれます。雛形の先頭に「Rename this to extra_model_paths.yaml and ComfyUI will load it」とあるとおりで、起動引数は不要です。

最小の例は次のとおりです。

my_models:
    base_path: D:/ai-models/
    is_default: true
    checkpoints: checkpoints/
    loras: loras/
    vae: vae/

読み方は3段階です。

  1. my_models:はセクション名で、自由に付けてよい。雛形ではcomfyui:a1111:という名前が例示されている
  2. base_path:は基準フォルダ。ここを起点に、下の各キーの相対pathが解決される。~や環境変数(%USERPROFILE%$HOME)も展開される
  3. checkpoints:loras:vae:はモデルの種類を表すキー。値はbase_pathからの相対path(絶対pathも可)

YAMLはインデント(行頭の空白)で階層を表します。セクション名は行頭から書き、その下のキーは同じ数の半角スペースで下げ、Tab文字は使いません。1行だけずれると、そのキーだけ別の階層と解釈され、モデルが出てこない原因になります。

1つのキーに複数のフォルダを指定したいときは、雛形にあるとおり|を使って1行に1pathずつ書きます。

my_models:
    base_path: D:/ai-models/
    loras: |
        loras/
        loras-archive/

is_default: trueを付けたセクションは、一覧で先頭に並び、Managerからのダウンロード先やCustom Nodeの導入先としても優先されます。正本にするセクションに1つだけ付けてください。設定が効いているかは、起動時のコンソールに出る「Adding extra search path」という行で確認できます。

Adding extra search path checkpoints D:\ai-models\checkpoints
Adding extra search path loras D:\ai-models\loras
Adding extra search path vae D:\ai-models\vae

この行が出ないキーは、YAMLの階層かキー名が間違っています。

Checkpoint・LoRA・VAEを分ける:キー名がそのままNodeの一覧になる

ComfyUIは「キー名=モデルの種類」として扱い、Load Checkpointはcheckpoints、Load LoRAはloras、Load VAEはvaeのフォルダだけを一覧に出します。種類を混ぜて1つのフォルダに置くと、LoRAがLoad Checkpointの一覧に出るなど選択ミスの原因になります。

キー 読み込むNodeの例 補足
checkpoints Load Checkpoint MODEL・CLIP・VAEをまとめた単体ファイル
loras Load LoRA LyCORISなども同じキーにまとめてよい
vae Load VAE 外部VAEを使うときだけ必要
text_encoders CLIP系のLoader 旧名clipも別名として受け付ける
diffusion_models Load Diffusion Model 旧名unetも別名として受け付ける
controlnet Load ControlNet Model T2I-Adapterも同じキーで読む
embeddings promptから参照 Textual Inversion
upscale_models Load Upscale Model ESRGAN系など

対応するキーの正式な一覧は、雛形の末尾にあるとおり本体のfolder_paths.pyが正本です。雛形に載っていないキーを使うときは、そこで名前を確認してください。

読み込める拡張子も決まっています。現行の本体では.ckpt.pt.pt2.bin.pth.safetensors.pkl.sftが対象で、これ以外の拡張子のファイルはフォルダにあっても一覧に出ません。

Forge等と共有する:どのフォルダを正本にするか

共有で最初に決めるのは「正本をどこに置くか」です。選び方は2つあり、どちらも雛形に例があります。

案1:すでにあるA1111・Forgeのフォルダを正本にする

A1111やForgeを先に使っていて、そちらにモデルが溜まっている場合はこの案です。雛形のa1111:セクションのコメントを外し、base_pathを自分のインストール先に変えるだけで動きます。

a1111:
    base_path: D:/stable-diffusion-webui-forge/
    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

A1111系はフォルダ名がStable-diffusionLoraVAEで、ComfyUIの既定と違います。この差をYAMLで吸収するのがこのセクションの役割です。ForgeはA1111の構成を引き継いでいますが、自分の環境のフォルダ名を実際に開いて確認してください。

案2:UIに属さない中立フォルダを正本にする

これから環境を増やすなら、D:/ai-models/のようにどのUIにも属さないフォルダを正本にし、各UIからそこを参照させる方が長持ちします。UIを入れ替えても正本は動かず、UIを消したときにモデルごと消える事故も防げます。ComfyUI側は前節の最小例のとおりで、Forge側はそのUIの設定で同じフォルダを指すようにします(指定方法はForgeのドキュメントを確認)。

どちらの案でも、ComfyUIの既定フォルダComfyUI/models/はそのまま残ります。YAMLは「追加の検索先」を登録する仕組みなので、既定フォルダとYAMLのフォルダの両方が一覧に出ます。移行中は同じファイルが2か所にあると一覧に2回出るので、正本に寄せたら既定側は空にしておきます。

重複保存と共有で容量を比べる

共有の効果は、自分の環境で次のように測ると実感しやすくなります。

  1. 普段使うCheckpoint・LoRA・VAEのファイルサイズを合計する(フォルダのプロパティで確認)
  2. UIの数を数え、「合計サイズ×UIの数」を重複保存時の容量とする
  3. 正本を1つにしたときの容量は合計サイズそのもの
  4. 差が、共有で空く容量
項目
Checkpointの合計サイズ
LoRAの合計サイズ
VAE・その他の合計サイズ
UIの数
重複保存時の容量(合計×UI数)
共有時の容量(合計)
Checkpoint読み込み時間(媒体ごと)

外付けSSD・NASの注意:切断・権限・遅延

正本を外付けSSDやNASに置くこと自体は問題ありません。ただし、内蔵ドライブにはない3つの事故が起きます。

  • 切断:外付けSSDを抜いたままComfyUIを起動すると、そのフォルダが無いためモデルが一覧から消えます。Workflowを読み込むと「モデルが見つからない」という警告になり、壊れたように見えますが、接続して再読み込みすれば戻ります。ドライブレターやマウント先が変わると同じことが起きるので、固定しておきます
  • 権限:NASや別ユーザーが作ったフォルダは、読み取り権限が無いと一覧に出ません。ComfyUIを実行しているユーザーで、そのフォルダのファイルを開けるかを先に確認します
  • 遅延:ネットワーク越しのCheckpoint読み込みは、転送速度が内蔵ドライブより桁で遅くなることがあります。生成が遅いのではなく読み込みで待っている状態なので、頻繁に切り替えるモデルはローカルの速い媒体に置きます

NASは「保管庫」、ローカルSSDは「作業机」と役割を分け、使うモデルだけローカルに置く運用が現実的です。外付けSSDを複数のPCで持ち回る場合は、両方のYAMLで同じフォルダ構成を指しておくと、差し替えるだけで同じ一覧になります。

モデルが表示されないとき:path→権限→拡張子→再読み込みの順で確認する

設定したのにLoad Checkpointの一覧に出ない場合、原因は次の4つのどれかに絞れます。上から順に確認します。

  1. path:起動時のコンソールに「Adding extra search path」が出ているか。出ていなければYAMLのファイル名・置き場所・インデントを見直す。出ているが行のpathが意図と違うならbase_pathとキーの相対pathを直す
  2. 権限・接続:そのpathをエクスプローラーやFinderで開けるか。外付け・NASなら接続されているか
  3. 拡張子:ファイルが.safetensors.ckptなど対応拡張子か。ダウンロード途中の.partや、zipのままになっていないか
  4. 再読み込み:ComfyUIを起動したままフォルダにファイルを追加した場合は、画面の更新(Refresh)か再起動で一覧を取り直す。本体はフォルダの更新時刻を見てキャッシュを作り直すが、UI側の一覧は開き直すまで古いまま

4つすべてを確認しても出ないときは、キー名の綴りをfolder_paths.pyで確認します。lora(単数)やcheckpoint(単数)のような似た名前は別のキーとして扱われ、エラーも出ずに無視されます。

一覧には出るのに読み込みで落ちる場合は、YAMLではなくファイル自体かメモリの問題です。モデルの読み込みで止まる・落ちるときの切り分けはVRAM不足の切り分け記事を参照してください。初めてComfyUIを動かす段階で一覧が空なら、まずComfyUIの使い方の最小構成で既定フォルダから1枚生成できる状態にしてから、共有設定に進んでください。

よくある質問

シンボリックリンクで済ませるのと、YAMLで設定するのはどちらがよいですか?

YAMLを勧めます。シンボリックリンクはOSや権限によって作れない場合があり、何をどこに向けたかがファイルシステム側にしか残りません。YAMLなら設定が1ファイルに集まり、他のPCでもそのファイルを直すだけで済みます。

ComfyUI Desktop版でも同じファイルを使いますか?

仕組みは同じですが、Desktop版はファイルの置き場所が通常のインストールと異なります。Desktop版の設定画面またはドキュメントで、現行のextra_model_paths.yamlの位置を確認してください。

複数のセクションを書いたら、どの順で一覧に出ますか?

is_default: trueを付けたセクションが先頭に来て、残りはYAMLに書いた順と既定フォルダが続きます。順番を気にするより、同じファイルが複数の場所に無い状態を保つ方が、選び間違いを防げます。

まとめ

extra_model_paths.yamlは、雛形をコピーしてbase_pathと種類ごとのキーを書くだけで、ComfyUIの外にある正本フォルダや他のUIのフォルダを検索先に追加できる設定ファイルです。種類ごとにフォルダを分け、is_defaultを正本に1つだけ付け、起動時の「Adding extra search path」で効いていることを確認してください。

外付けSSDやNASに置くなら、切断・権限・遅延の3点を前提に、頻繁に使うモデルだけローカルに置く運用にします。表示されないときは、path→権限→拡張子→再読み込みの順で1つずつ潰せば、ほぼこの4つのどれかで解決します。

スポンサーリンク