ComfyUI を Desktop版とソース版で2つ持っても、モデルまで2セット持たずに済む仕組みが用意されている。共有のやり方は2つあり、--base-directory で丸ごと向ける方法と、extra_model_paths.yaml でフォルダ単位に向ける方法だ。ただし Desktop版だけは設定ファイルの名前も置き場所も違う。ここを知らずに extra_model_paths.yaml を作ると、いつまでも読まれない。
なぜ複数インスタンスを立てるのか?
いちばん多い理由はバージョンを分けたいから。新しいモデルは新しい ComfyUI を要求するが、動いているワークフローは壊したくない。検証機もDesktop版(アプリ 0.9.1.0)とソース版(コア 0.3.76)が同居している。
カスタムノードの相性を切り分けたいときも同じで、片方を素の状態に保つと壊れたのがノードか本体かを1回の起動で判別できる。
同時に起動するには何が要る?
要るのはポートをずらすこと。既定は 8188 なので、そのままでは2つ目がぶつかる。
ソース版の comfy/cli_args.py では --port の既定が 8188、--listen が 127.0.0.1 と宣言されている。2つ目はこう起動する。
python main.py --port 8189
GPUが複数あるなら --cuda-device で分ける(ヘルプいわく「他のデバイスは見えなくなる」)。GPU1枚なら2つ同時に生成するとVRAMを取り合うので、起動は同時でも生成は片方ずつが現実的だ。
モデルを共有する方法は2つある
丸ごと共有するか、フォルダ単位で共有するか。先に試すべきは前者だ。
| –base-directory | extra_model_paths.yaml | |
|---|---|---|
| 指定するもの | 起動引数1つ | YAMLファイル |
| 共有範囲 | models・custom_nodes・input・output・temp・user をまとめて | フォルダ種別ごとに指定 |
| 向いている場面 | 2つを同じ内容で使いたい | モデルだけ共有し出力は分けたい |
--base-directory のヘルプは「models、custom_nodes、input、output、temp、user の各ディレクトリの基準を設定する」。YAMLを書かずに1行で済む。出力だけ分けたいなら --output-directory で上書きできる。
Desktop版だけ設定ファイルの名前が違う
Desktop版が読むのは extra_model_paths.yaml ではない。extra_models_config.yaml という別名のファイルだ。
置き場所も ComfyUI のフォルダではない。
| OS | Desktop版の設定ファイル |
|---|---|
| Windows | C:\Users\ユーザー名\AppData\Roaming\ComfyUI\extra_models_config.yaml |
| macOS | ~/Library/Application Support/ComfyUI/extra_models_config.yaml |
検証機で実際に開くと、インストール時に自動生成された内容が入っていた。全文はこうで、パスは環境ごとに変わる。comfyui: ではなく comfyui_desktop: というキーを使う点に注意。
# ComfyUI extra_model_paths.yaml for win32
comfyui_desktop:
is_default: "true"
custom_nodes: custom_nodes/
download_model_base: models
base_path: D:\ComfyDesktop
desktop_extensions:
custom_nodes: (Desktop同梱ノードのパス)
この自動生成分を消して上書きしない。Desktop はここに自分のデータ置き場を書いている。共有設定を足したいときはセクションを追記する形にして、先にファイルをコピーしてバックアップを取る。1行目のコメントが extra_model_paths.yaml と名乗っているのも混乱の元だが、実ファイル名は extra_models_config.yaml だ。
これは公式の記載だけでなくアプリの実体を走査しても裏が取れる。extra_models_config.yaml はアプリ本体(app.asar)とUI翻訳を含む57ファイルに出てくるが、extra_model_paths.yaml は同梱の Python 側(main.py や .example)に出てくる。2つは競合ではなく、Electron のアプリ層と Python のコア層で担当が違う。生成ファイルの1行目が紛らわしいのはこのためだ。
編集後は再起動が必要。公式も「保存後は変更を反映するために ComfyUI を再起動する必要がある」と繰り返し書いている。
共有できるフォルダの種類は?
ソース版の folder_paths.py に登録されているキーは21種類だった。
checkpoints / loras / vae / controlnet / diffusion_models / text_encoders / clip_vision / embeddings / upscale_models などに加え、custom_nodes も対象に入る。
同梱の extra_model_paths.yaml.example には、1キーに複数パスを縦棒(|)で並べる例も載っている。diffusion_models に models/unet を、text_encoders に旧来の models/clip/ を併記する形だ。昔のフォルダ構成のままでも拾える。
実際どれくらい効くのか
検証機の中央モデル置き場は合計127GB・58ファイルだった。2セット持てばそのまま倍になる。
| フォルダ | 実測サイズ |
|---|---|
| diffusion_models | 58GB |
| checkpoints | 25GB |
| text_encoders | 17GB |
| unet | 11GB |
| loras | 11GB |
| clip_vision / controlnet / vae ほか | 約6GB |
58ファイルで127GBになるのは動画生成系が1本で数十GBあるからだ。あとで消せばいい規模ではないので、2つ目を入れる前に共有設定を決めておく。
実機で確認した範囲:ソース版 ComfyUI 0.3.76(comfyui_version.py)と Desktop版アプリ 0.9.1.0(実行ファイルのバージョン情報)が同居していること、AppData\Roaming\ComfyUI\extra_models_config.yaml が実在してインストール時の内容が入っていること、folder_paths.py の登録キーが21種類あること、--port/--base-directory/--cuda-device のヘルプ文、中央モデル置き場の容量(du の実測)。
2インスタンスの同時起動と共有設定の動作確認は行っていない。ソース版に仮想環境が無く、検証機の Python の torch は CPU 版のため、起動確認には環境構築が要る。稼働中の127GB環境を触る判断もしなかった。手順と再起動要否は ComfyUI 公式ドキュメントの記載による。なお 8188・8189 が空いていることは確認済み。
よくある質問
extra_model_paths.yaml を作ったのに読まれません
extra_models_config.yaml(AppData\Roaming\ComfyUI 配下)で、ソース版・Portable版とはファイル名も場所も違います。2つ同時に起動できません
--port 8189 のように別ポートで起動してください。GPUが複数あるなら --cuda-device で割り当ても分けられます。出力フォルダだけは分けたいのですが
--base-directory でまとめて共有したうえで、--output-directory を足してください。ヘルプに「–base-directory を上書きする」と明記されています。input・temp・user も同様の個別指定があります。シンボリックリンクで共有してはいけませんか
まとめ:2つ目を入れる前に置き場所を決める
- 同時起動はポートをずらすだけ(既定 8188)
- 共有はまず
--base-directory。YAMLを書かずに済む - 細かく分けたいときだけ
extra_model_paths.yaml - 🔴 Desktop版は
extra_models_config.yaml(AppData\Roaming\ComfyUI)。自動生成分を消さない - 共有できるフォルダ種別は21種類。custom_nodes も含む
- 編集後は再起動が要る
導入そのものからやり直すなら入門記事へ(ComfyUIの使い方完全入門)。GPUが認識されない側の問題は別記事にまとめてある(GPUが使われないときの対処)。

コメント