SHUTO.HATANAKA*

← Memorandum

Windows 11 + WSL2でComfyUI専用環境を構築する方法

[すべてAIに生成させました]

今回は、Windows 11上にComfyUI専用のWSL2環境を作り、NVIDIA GPUを使ってComfyUIを起動するところまでまとめます。

既存のWSL環境とは分離し、ComfyUIやCustom NodeによるPython依存関係の汚染を避ける構成にしています。

僕の環境は以下です。

  • Windows 11
  • WSL2
  • Ubuntu 24.04
  • NVIDIA GeForce RTX 4070 Laptop GPU
  • VRAM 8GB
  • ComfyUI専用WSLを作成

なぜComfyUI専用のWSLを作るのか

ComfyUIでは、画像生成モデルだけでなく、

  • PyTorch
  • CUDA関連ライブラリ
  • Pythonパッケージ
  • Custom Node
  • ffmpeg
  • 各Custom Node固有の依存関係

などを大量にインストールします。

特にCustom Nodeを増やしていくと、Pythonパッケージのバージョン競合が発生する可能性があります。

そのため、普段開発に使っているWSLとは分離し、

WSL
├── Ubuntu
│   └── 普段の開発環境

└── ComfyUI
    └── 画像・動画生成専用環境

という構成にしました。


1. ComfyUI専用WSLを作成する

まずPowerShellを開きます。

WSLを最新版に更新します。

wsl --update

Ubuntu 24.04をComfyUIという名前で新しくインストールします。

wsl --install Ubuntu-24.04 --name ComfyUI

これで既存のUbuntuとは別に、ComfyUI専用のLinux環境を作成できます。


別ドライブへWSLを保存する場合

ComfyUIではモデルファイルだけで数十GBになることがあります。

Cドライブ容量を圧迫したくない場合は、WSL自体をDドライブなどへ配置する方法もあります。

例えば、

wsl --install Ubuntu-24.04 --name ComfyUI --location D:\WSL\ComfyUI

とします。


2. WSLが作成されたか確認する

PowerShellで以下を実行します。

wsl -l -v

例えば以下のようになっていればOKです。

NAME        STATE      VERSION
Ubuntu      Running    2
ComfyUI     Stopped    2

ComfyUI環境へ入るには、

wsl -d ComfyUI

を実行します。


3. Linuxの基本パッケージをインストールする

最初にパッケージ一覧を更新します。

sudo apt update
sudo apt upgrade -y

続いて必要なツールをインストールします。

sudo apt install -y \
  git \
  curl \
  wget \
  build-essential \
  python3 \
  python3-pip \
  python3-venv

4. NVIDIA GPUがWSLから認識されているか確認する

ComfyUIをGPUで動かすうえで、ここがかなり重要です。

WSL内から以下を実行します。

nvidia-smi

僕の環境では以下のように表示されました。

NVIDIA-SMI 565.72
Driver Version: 566.14
CUDA Version: 12.7

GPU: NVIDIA GeForce RTX 4070 Laptop GPU
Memory: 8188 MiB

RTX 4070 Laptop GPUが表示されていれば、WSLからGPUを利用できています。


WSL内にNVIDIAドライバを入れない

ここは注意点です。

WSL2ではWindows側のNVIDIAドライバを経由してGPUを利用できます。

そのため、Ubuntu側で改めて

sudo apt install nvidia-driver-...

のようなLinux用NVIDIAドライバを入れる必要はありません。

むしろ、WSL側に別のドライバを入れることで環境を壊す可能性があります。

基本的には、

Windows

NVIDIA Driver

WSL2

PyTorch

CUDA

ComfyUI

という構成になります。


5. Windows側ではなくLinux側へComfyUIを置く

WSLを起動した直後、場合によっては以下のような場所にいることがあります。

/mnt/c/WINDOWS/system32

ここはWindowsのSystem32です。

ComfyUIをここにインストールするのは避けます。

Linux側のホームディレクトリへ移動します。

cd ~

確認します。

pwd

以下になればOKです。

/home/shuto

6. ComfyUIに必要なパッケージを追加する

ComfyUIでよく使うパッケージを追加します。

sudo apt install -y \
  git \
  git-lfs \
  ffmpeg \
  libgl1 \
  libglib2.0-0 \
  python3.12-venv

Git LFSも有効にします。

git lfs install

7. ComfyUIをGitHubから取得する

ホームディレクトリへ移動します。

cd ~

ComfyUIをcloneします。

git clone https://github.com/Comfy-Org/ComfyUI.git

移動します。

cd ComfyUI

8. Pythonの仮想環境を作る

ComfyUI専用のPython環境を作ります。

python3 -m venv .venv

有効化します。

source .venv/bin/activate

以降、ターミナルの先頭に

(.venv)

のような表示が付けば有効化されています。

pipも更新しておきます。

python -m pip install --upgrade pip

9. CUDA対応PyTorchをインストールする

今回の環境では、

Driver Version: 566.14
CUDA Version: 12.7

となっていました。

そこでCUDA 12.6向けのPyTorchを使用します。

pip install \
  torch==2.11.0 \
  torchvision==0.26.0 \
  torchaudio==2.11.0 \
  --index-url https://download.pytorch.org/whl/cu126

ここで重要なのは、ComfyUIを使うだけならWSL内へCUDA Toolkit一式を別途インストールする必要は基本的にないという点です。

CUDA対応版PyTorchに必要なランタイムが含まれています。


10. PyTorchからGPUを認識できるか確認する

次のコマンドを実行します。

python - <<'PY'
import torch

print("PyTorch:", torch.__version__)
print("CUDA build:", torch.version.cuda)
print("CUDA available:", torch.cuda.is_available())

if torch.cuda.is_available():
    print("GPU:", torch.cuda.get_device_name(0))
    print(
        "VRAM:",
        round(
            torch.cuda.get_device_properties(0).total_memory / 1024**3,
            2
        ),
        "GB"
    )
PY

例えば以下のようになれば成功です。

PyTorch: 2.11.0+cu126
CUDA build: 12.6
CUDA available: True
GPU: NVIDIA GeForce RTX 4070 Laptop GPU
VRAM: 8.0 GB

特に、

CUDA available: True

になっていることを確認します。


11. ComfyUIの依存関係をインストールする

ComfyUIディレクトリ内で、

pip install -r requirements.txt

を実行します。

Manager関連もインストールします。

pip install -r manager_requirements.txt

12. ComfyUIを起動する

以下で起動します。

python main.py --enable-manager --listen 0.0.0.0

正常に起動すると、

To see the GUI go to:

http://0.0.0.0:8188

のような表示が出ます。

Windows側のブラウザから、

http://localhost:8188

へアクセスします。

これでWSL上のComfyUIをWindowsのブラウザから操作できます。


13. 次回以降の起動方法

毎回インストールする必要はありません。

PowerShellから、

wsl -d ComfyUI

でComfyUI用WSLへ入ります。

その後、

cd ~/ComfyUI

仮想環境を有効化します。

source .venv/bin/activate

ComfyUIを起動します。

python main.py --enable-manager --listen 0.0.0.0

まとめると、

cd ~/ComfyUI
source .venv/bin/activate
python main.py --enable-manager --listen 0.0.0.0

だけです。


14. v1-5-pruned-emaonly.safetensorsが不足していますと表示された場合

ComfyUIを開いたところ、

v1-5-pruned-emaonly.safetensorsが不足しています

Checkpoint Loader Simpleに必要なモデルファイルが不足しています。

という警告が表示される場合があります。

これはComfyUI自体のインストール失敗ではありません。

開いているワークフローが、

v1-5-pruned-emaonly.safetensors

というStable Diffusion 1.5のモデルを要求しているだけです。


そのワークフローを使わないなら無視してよい

例えば今後、

  • SDXL
  • FLUX
  • Illustrious
  • Image-to-Videoモデル

などを使うのであれば、SD1.5のモデルをわざわざ入れる必要はありません。

別のワークフローを開けばOKです。


そのワークフローを使う場合

Checkpoint Loader Simpleで指定されているモデルを用意する必要があります。

チェックポイントは基本的に、

ComfyUI/
└── models/
    └── checkpoints/

へ入れます。

例えば、

ComfyUI/models/checkpoints/v1-5-pruned-emaonly.safetensors

という配置です。

ComfyUIを再読み込みすると、Checkpoint Loader Simpleからモデルを選択できるようになります。


15. 最終的なディレクトリ構成

今回作った環境はおおよそ以下のようになります。

/home/shuto/
└── ComfyUI/
    ├── .venv/

    ├── models/
    │   ├── checkpoints/
    │   ├── clip/
    │   ├── controlnet/
    │   ├── diffusion_models/
    │   ├── loras/
    │   ├── vae/
    │   └── ...

    ├── custom_nodes/

    ├── input/

    ├── output/

    ├── main.py
    └── requirements.txt

WSL全体としては、

Windows 11

├── WSL: Ubuntu
│   └── 普段の開発環境

└── WSL: ComfyUI

    ├── Ubuntu 24.04
    ├── Python 3.12
    ├── PyTorch
    ├── CUDA Runtime
    ├── ComfyUI
    ├── Custom Nodes
    └── AI Models

となっています。


16. モデル保存先は別途考えた方がよい

ここまででComfyUI自体は動きます。

ただし今後問題になるのがモデル容量です。

Stable Diffusion系なら数GB程度ですが、FLUXや動画生成モデルを使い始めると、

10GB
20GB
30GB
50GB...

と簡単に増えていきます。

モデルをすべてWSL内部へ入れると、WSLの仮想ディスクであるVHDXが巨大化します。

そのため今後は、

ComfyUI本体
→ WSL内

モデル
→ Dドライブなど

生成結果
→ Dドライブなど

という構成にする予定です。

例えば、

D:\
└── AI\
    └── ComfyUI\
        ├── models\
        └── output\

のようにして、ComfyUIから参照させれば管理しやすくなります。


まとめ

今回はWindows 11上にComfyUI専用のWSL環境を作りました。

流れをまとめると、

ComfyUI専用WSL作成

Ubuntu 24.04

NVIDIA GPU認識確認

Python venv

CUDA対応PyTorch

ComfyUI

ブラウザからlocalhost:8188

という構成です。

特に重要だったポイントは次の通りです。

  • 普段使うWSLとComfyUI環境を分離する
  • /mnt/c/WINDOWS/system32ではなくLinux側へインストールする
  • WSL内にNVIDIA Linuxドライバを追加しない
  • Pythonはvenvで分離する
  • PyTorchからCUDA available: Trueになることを確認する
  • モデル不足の警告はComfyUI本体のエラーとは限らない
  • 巨大なAIモデルは将来的に別ドライブへ分離する

これでCustom Nodeをいろいろ試して環境が多少荒れても、普段の開発用WSLへの影響を気にせず使えるようになりました。