ComfyUI を docker compose で構築する
Stable Diffusion 3 Medium を実行する環境を ComfyUI で用意した手順 では、コンテナを立ち上げて手動で ComfyUI を構築していました。
Ollama と OpenWebUI でローカル LLM では、docker compose を使いましたが、これが便利だったので、ComfyUI も docker compose で構築してみます。
準備
WSL2 の Docker で CUDA する を参考に、GPU を使えるように設定済みのコンテナを使います。
ComfyUI 用に以下の内容を記述したファイルを、compose.yml のファイル名で作成します。なお、デフォルトで使用されるファイル名が同じなのと、フォルダ構成が競合すると面倒なので、OpenWebUI とは別フォルダにファイルを配置するようにしています。
TensorRT 拡張を使うことも考慮して tensorrt のイメージを使用すること、8188 番ポートを転送すること、GPU を有効にするための設定を記述しています。また、command
ディレクティブにパッケージのインストールを記述しています。この書き方だとコンテナを stop/start する度にこの処理が走ってしまいますが、気になるほどの時間はかからないのでこのようにしています。
さらに同じディレクトリに ComfyUI のリポジトリをクローンしておきます。また、同じく必須と思われる ComfyUI-Manager のリポジトリもクローンしておきます。これは、compose.yml を作成したディレクトリで以下コマンドを実行することで可能です。
この状態で、以下のディレクトリ構成になっているはずです。
起動
ファイル、ディレクトリの準備ができたら、以下のコマンドを実行します。
しばらく待つとターミナルに Starting server / To see the GUI go to: http://0.0.0.0:8188
と表示されるので、ブラウザで URL にアクセスします。
これで WebUI を開くことができます。
モデルはコンテナ外からでも ComfyUI/models
以下へ配置できます。UI に反映されない場合はメニューの Refresh
をクリックすれば読み込まれると思います。生成した画像等も ComfyUI/output
へ出力されるので、コンテナ外からのアクセスが容易です。
docker compose 一回で WebUI の起動まで可能になるので、便利になりました。