自分の GPU サーバーで画像生成を行えば、第三者にプロンプトのログが残ることも、望まないコンテンツフィルターがかかることもなく、何枚作ってもコストは一定です。このガイドでは、Stable Diffusion などのモデル向けのノードベースのインターフェース ComfyUI を Ubuntu にセットアップします。
GPU を選ぶ
制約になるのはビデオメモリです。8 GB なら SD 1.5 が快適に動き、12 から 16 GB なら SDXL を問題なく扱え、24 GB あれば新しい大型モデルや高解像度にも余裕があります。迷う場合はコンシューマー向けとデータセンター向け GPU の比較をご覧ください。また、モデルファイルは大きいため、ディスクも約 50 GB 空けておいてください。
ステップ 1: ドライバーを確認する
nvidia-smi
GPU が表示されれば、ドライバーは動作しています。表示されない場合は、sudo ubuntu-drivers autoinstall で推奨ドライバーをインストールし、再起動してください。
ステップ 2: ComfyUI をインストールする
sudo apt update && sudo apt install -y git python3-venv
git clone https://github.com/comfyanonymous/ComfyUI
cd ComfyUI
python3 -m venv venv
. venv/bin/activate
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt
CUDA wheel のインデックスは、お使いのドライバーに対して PyTorch が推奨するバージョンに合わせてください。上記のコマンドが古くなっている場合は、PyTorch のインストールページを確認してください。
ステップ 3: モデルを追加する
使用許諾のあるチェックポイントを ComfyUI/models/checkpoints/ にダウンロードします。そのモデルを使って製品を作る前に、商用利用に関するライセンスを必ずお読みください。
cd models/checkpoints
wget -O model.safetensors "https://example.com/path/to/model.safetensors"
ステップ 4: 非公開で起動する
デフォルトでは ComfyUI は localhost でのみ待ち受けます。これが望ましい状態です。アクセスには SSH トンネルを使います。
python main.py --listen 127.0.0.1 --port 8188
ssh -L 8188:127.0.0.1:8188 user@your-server
自分のコンピューターで http://127.0.0.1:8188 を開きます。デフォルトではログインがないため、このポートをインターネットに公開しないでください。
ステップ 5: 動かし続ける
sudo tee /etc/systemd/system/comfyui.service > /dev/null <<'UNIT'
[Unit]
Description=ComfyUI
After=network-online.target
[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/ComfyUI
ExecStart=/home/ubuntu/ComfyUI/venv/bin/python main.py --listen 127.0.0.1
Restart=on-failure
[Install]
WantedBy=multi-user.target
UNIT
sudo systemctl daemon-reload && sudo systemctl enable --now comfyui
ユーザー名とパスは、お使いのサーバーに合わせて調整してください。
ホスト型ツールとのコストとプライバシーの比較
- コスト: 時間課金の GPU は、画像を10枚作っても1万枚作っても料金が同じです。大量に生成する場合は画像ごとの課金より安くなり、たまにしか生成しない場合は割高になるため、使わないときはサーバーを停止してください。
- プライバシー: プロンプトと出力結果は自分が管理するマシンに残り、Monero などの暗号資産で身分証明なしに支払うこともできます。
- コントロール: モデル、サンプラー、安全設定は自分で選び、その使い方の責任も自分で負います。
同じハードウェアでテキストモデルを動かすには、Ollama と Open WebUI をご覧ください。