ComfyUIは、同じPC上で複数起動できます。

ただし、何も考えずに2回起動すると、次のようなエラーを吐き失敗してしまいます。

Port 8188 is already in use on address 127.0.0.1.   
Please close the other application or use a different port with --port.

「その入口はもう使われています」という意味ですが、どういうことなのでしょうか?


ComfyUIはサーバーとして動いている

前提として知っておきたいのが、ComfyUI が 画面実行エンジン に分かれているという点です。

普段触っているノード画面は、workflow を編集したり、実行ボタンを押したりするためのフロントエンドです。 実際に画像や動画を生成しているのは、裏側で動いている ComfyUI サーバーです。

ComfyUIを普通に起動すると、デフォルトでは次のURLで開きます。

http://127.0.0.1:8188

127.0.0.1 は「自分のPC」を表すアドレスで、その後ろの 8188 がポート番号です。

このポート番号が、ComfyUIサーバーへの入口になるんですね。


そのまま2つ起動するとポートがぶつかる

1つ目のComfyUIが 127.0.0.1:8188 を使っている状態で、2つ目も起動しようとすると、デフォルトではこちらも同じ 127.0.0.1:8188 なので、入口がぶつかります。

同じポート番号を、同時に2つのサーバーで使うことはできないため、2つ目のComfyUIは起動に失敗するんですね。


--portで入口をずらす

ComfyUIには、起動時にポート番号を指定する コマンドライン引数--port があります。

2つ目のComfyUIのポート番号をずらして、8189 で起動してみましょう。

次のように指定します。

python main.py --port 8189

ポータブル版の場合は、起動に使っている .bat ファイルを編集し、main.py の後ろに --port 8189 を追加します。

これで、次の2つの入口ができます。

http://127.0.0.1:8188
http://127.0.0.1:8189

それぞれのURLをブラウザで開いてみてください。 どちらも見た目は同じComfyUIですが、それぞれ別のサーバーにつながっています。


多重起動してもGPUは増えない

これで多重起動ができるようになりました。

しかし、画像生成中のComfyUIは、たいていGPUを全力で使っています。 2つのComfyUIで同時に生成したとしても、片方がGPUを占有していれば、結局その処理を待たねば次の処理には進みません。

2つ起動したから生成速度も2倍になるというものではないんですね。

それでも色々な使い道があります。

  • GPUをあまり使わないような処理を分ける
  • 普段使いのComfyUIを起動したまま、開発用のComfyUIを起動する

同じURLなら同じサーバーを見る

ここでは、ComfyUIサーバー自体を複数起動する方法を話しました。

一方で、同じURLをブラウザの別タブや別ウィンドウで開くという小技もあります。

たとえば、http://127.0.0.1:8188 を2つのブラウザタブで開いた場合、同じComfyUIサーバーをいろんな画面から操作できます。

なんとなく似ていますが、それぞれ全く別の操作なので注意してください。

  • 同じURLを複数タブで開く: 同じComfyUIサーバーを複数の画面から見ている
  • 違うポートのURLを開く: 別々のComfyUIサーバーを見ている