クラウドをやめてComfyUIに移行した理由
約8ヶ月前、ブログ用の画像をMidjourneyとLeonardo AIで作成していた。コストは大したことなかったが、一番困ったのは、コマンドラインの図解や擬似ターミナルスクリーンショットなど、特定のスタイルが必要なときにどのクラウドツールも思い通りにならなかったことだ。
ローカルでComfyUIを試してみて、これこそずっと求めていたものだと気づいた。無料だからではなく(それもメリットだが)、ワークフローを完全にコントロールできるから — モデルの選択、サンプラーのカスタマイズ、複数ステップのチェーン — すべてノードグラフで可視化できる。
Stable Diffusion初心者にとって、ComfyUIの学習曲線はかなり急だ。だが1〜2日慣れれば、柔軟性においてAUTOMATIC1111を大幅に上回る。この記事は自分がやったことをそのまま書いたもの — 余計な話は一切なし。
ハードウェアとソフトウェアの要件
ComfyUIを動かすための最低限のセットアップと、参考として自分が実際に使っている構成を紹介する:
- GPU NVIDIA: 最低4GB VRAM(8GB以上推奨)。自分はRTX 3060 12GBを使用しており、非常にスムーズに動作する。
- RAM: 16GB以上。大きなモデルの中にはRAMが少ないとスワップが必要なものもある。
- ストレージ: モデル用に最低20GBを確保。チェックポイントは通常1ファイルあたり2〜7GB。
- Python: 3.10または3.11。一部の依存関係がまだ完全に対応していないため3.12は避ける。
- Git: リポジトリのクローンと更新に必要。
NVIDIA GPUがなくても、CPUまたはAMD(ROCm)で動作するが、速度は大きく異なる — GPUの10〜30秒に対して1枚あたり5〜10分かかる。
ComfyUIのインストール
ステップ1: リポジトリのクローン
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
ステップ2: 仮想環境の作成と依存関係のインストール
# venvを作成
python -m venv venv
# アクティベート (Linux/macOS)
source venv/bin/activate
# アクティベート (Windows PowerShell)
.\venv\Scripts\Activate.ps1
# CUDAサポート付きPyTorchをインストール (NVIDIA GPU)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
# その他の依存関係をインストール
pip install -r requirements.txt
注意:URL内のCUDAバージョン(cu121)はインストール済みのCUDAツールキットと一致させる必要がある。nvidia-smiで確認し、右上のCUDA Version列を確認すること。
# CUDAバージョンを確認
nvidia-smi
# CUDA 12.4の場合はcu124を使用
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
ステップ3: Stable Diffusionモデルのダウンロード
ComfyUIにはモデルが同梱されていないため、Hugging FaceまたはCivitAIから自分でダウンロードする必要がある。まず始めるなら:高品質が必要ならSDXL Base 1.0、リアルな画像が欲しいならRealistic Visionを選ぼう。
# モデル保存用ディレクトリを作成
mkdir -p models/checkpoints
mkdir -p models/vae
mkdir -p models/loras
# Hugging Faceからモデルをダウンロード (例: SDXL)
# ゲートモデルのダウンロードにはHuggingFaceトークンが必要
wget -P models/checkpoints/ https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors
複数ファイルを一括ダウンロードする場合など、huggingface-cliを使うとモデル管理がより便利になる:
pip install huggingface_hub
huggingface-cli login # https://huggingface.co/settings/tokens からトークンを入力
# 特定のモデルをダウンロード
huggingface-cli download stabilityai/stable-diffusion-xl-base-1.0 \
sd_xl_base_1.0.safetensors \
--local-dir models/checkpoints/
ステップ4: ComfyUIの起動
python main.py
出力は以下のようになる:
Starting server
To see the GUI go to: http://127.0.0.1:8188
ブラウザでhttp://127.0.0.1:8188にアクセスすると、ComfyUIのノードグラフインターフェースが表示される。
詳細設定
extra_model_paths.yamlの設定
AUTOMATIC1111を使用していてすでにモデルがある場合、コピーは不要 — パスを指定するだけでよい:
# extra_model_paths.yaml (ComfyUIのルートディレクトリに作成)
a1111:
base_path: /home/username/stable-diffusion-webui/
checkpoints: models/Stable-diffusion
loras: models/Lora
vae: models/VAE
embeddings: embeddings
便利なパラメータで起動する
# ローカルネットワークからのアクセスを許可(別のPCからなど)
python main.py --listen 0.0.0.0
# GPUメモリが少ない場合にVRAM使用量を削減
python main.py --lowvram
# CPUを使用(GPUがない場合やテスト用)
python main.py --cpu
# 自動的にブラウザを開く
python main.py --auto-launch
# 別のポートで起動
python main.py --port 8080
自分のサーバーではComfyUIを--listen 0.0.0.0フラグで起動し、nginxリバースプロキシを前段に置いてHTTPS経由でリモートアクセスしている — 6ヶ月ほど安定して問題なく動いている。重要な注意点として、ComfyUIにはデフォルトの認証がない。nginxでBasic認証かIPホワイトリストを設定しないと、誰でもあなたのマシンで画像を生成できてしまう。
ComfyUI Managerのインストール(必須)
ComfyUI Managerはカスタムノードを管理するextensionで、複雑なワークフローを使いたい場合にほぼ欠かせない:
cd custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
cd ..
# ComfyUIを再起動
python main.py
インストール後、インターフェース右上にManagerボタンが表示される。ここからカスタムノード、モデル、不足している依存関係を数クリックでインストール・更新できる。
基本ワークフロー:Text to Image
ComfyUIにはデフォルトのワークフローが付属している。理解すべき重要なノード:
- Load Checkpoint: モデル(.safetensors)を選択
- CLIP Text Encode: ポジティブ・ネガティブプロンプトを入力
- KSampler: steps、CFGスケール、サンプラー(euler、dpm++ 2m、…)を調整
- VAE Decode: 潜在空間を実際の画像に変換
- Save Image: 出力を保存
よく使う設定:DPM++ 2M Karras、25ステップ、CFG 7.0。RTX 3060 12GBでは1024×1024の画像が約18〜22秒で完成 — 継続的に試行錯誤するには十分な速さだ。
確認とモニタリング
GPUが使用されているか確認する
# ターミナル1: ComfyUIを起動
python main.py
# ターミナル2: GPU使用率をリアルタイムで確認
watch -n 1 nvidia-smi
画像生成中はGPU-Util列が80〜100%になるはずだ。0〜5%しか表示されない場合、ComfyUIがCPUにフォールバックしている — CUDAのインストールを確認すること。
Python環境の確認
import torch
print(torch.__version__) # バージョンを確認
print(torch.cuda.is_available()) # Trueでなければならない
print(torch.cuda.get_device_name(0)) # GPUの名前
ログとデバッグ
ComfyUIはターミナルに直接ログを出力する。保存するには:
python main.py 2>&1 | tee comfyui.log
よくあるエラーと対処法:
- CUDA out of memory:
--lowvramを追加するか、まず解像度を512×512に下げてみる。 - Module not found: アクティブなvenv内で
pip install -r requirements.txtを再実行する。 - モデルがドロップダウンに表示されない:
models/checkpoints/内のファイルパスを確認し、ブラウザをリフレッシュするかComfyUIを再起動する。 - ワークフローでmissing nodesエラー: ComfyUI Managerを開き → Install Missing Custom Nodesを実行。
systemdで自動再起動する(Linux)
VPSやLinuxマシンでComfyUIを24時間稼働させるなら、クラッシュ時に自動再起動するsystemdサービスを作成しよう:
# /etc/systemd/system/comfyui.service
[Unit]
Description=ComfyUI Stable Diffusion
After=network.target
[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/ComfyUI
ExecStart=/home/ubuntu/ComfyUI/venv/bin/python main.py --listen 0.0.0.0
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable comfyui
sudo systemctl start comfyui
sudo systemctl status comfyui
8ヶ月の実運用で得たいくつかのTips
- 大きな変更を加える前にワークフローをJSONとして保存しておこう(メニューのSave)— ロールバックが非常に簡単になる。
- ポーズやコンポジションを正確にコントロールしたい場合は、Manager経由でControlNetをインストールする。
- SDXL TurboとFLUX.1 schnellは大幅に高速な画像生成が可能(25ステップ以上ではなく4〜8ステップ)— スペックが低いマシンで高速に試行錯誤したい場合に最適。
output/ディレクトリには画像がすぐに溜まる — 1ヶ月使ったら3GB以上になっていた。定期的にクリーンアップするcronジョブを設定しておくとよい。- APIエンドポイント
http://localhost:8188/promptはPOSTでジョブを受け付ける — Pythonスクリプトから呼び出してブラウザを開かずにバッチ生成を自動化できる。
