AI画像生成、楽しいですよね。
Midjourney、DALL-E、いろいろ触りました。でも毎月の請求書を見て現実に戻されました。月3000円、5000円、気づいたら年間5万超え。しかも生成枚数に上限があったり、NSFWフィルターで弾かれたり、サーバーが混んでいて待たされたり。お金を払っているのに自由ではない。
電気代以外は無料。何枚でも生成し放題。フィルターなし。モデルも好きに入れ替えられます。しかもComfyUIならノードベースでワークフローを組めるので、一度セットアップすれば完全自動化できます。
私はここ半年くらいComfyUIをローカルで動かしています。最初はつまずきましたが、今は完全に安定稼働しています。Flux2モデルの導入からAPI経由の自動化まで、全部書いていきます。
必要なスペック
まず現実的な話をします。
最低ライン
- GPU: NVIDIA RTX 3060(VRAM 12GB)
- RAM: 16GB
- ストレージ: SSD 100GB以上の空き
快適ライン
- GPU: RTX 4070 Ti以上(VRAM 12GB〜)
- RAM: 32GB
- ストレージ: NVMe SSD 500GB以上の空き
VRAMが最重要です。ここは妥協しない方がいいです。8GBだとFlux2はまともに動きません。12GBが現実的なスタートライン。16GB以上あれば余裕です。
AMDのGPU?動きますがかなり大変です。CUDAが使えないのでROCmで頑張ることになります。正直おすすめしません。素直にNVIDIAをおすすめします。
ComfyUIのインストール
前提条件:
- Python 3.10〜3.12
- Git
- NVIDIA Driver + CUDA Toolkit
WindowsならCUDA Toolkitを先にインストールしましょう。ここを飛ばすと後で苦労します。
# リポジトリをクローン git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI # venv作成(グローバルには入れない方がいいです) python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate # PyTorch(CUDA 12.x向け) pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 # 依存関係 pip install -r requirements.txt
これで python main.py を実行すれば http://127.0.0.1:8188 で起動します。
ハマりポイント:PyTorchのバージョンとCUDAのバージョンが合っていないとGPUが使えません。python -c "import torch; print(torch.cuda.is_available())" で True が出なかったらそこからやり直しです。
Flux2モデルの導入
Flux2はBlack Forest Labsが出しているモデルです。プロンプトの理解力が段違いに高いです。SDXLから乗り換えたら戻れなくなりました。
ダウンロード
HuggingFaceからダウンロードして、以下のように配置します:
models/unet/にflux1-dev.safetensorsmodels/clip/にclip_l.safetensorsとt5xxl_fp16.safetensors(約9.5GB)models/vae/にae.safetensors
t5xxlがかなり大きいです(約9.5GB)。fp8版もありますが品質は落ちます。VRAM 12GBならfp16でギリギリです。メモリ不足で落ちたらfp8に変えましょう。
API経由で外部から叩く
ここが本題です。ComfyUIにはREST APIがあります。
python main.py で起動すると、自動的にAPIも立ち上がります。ポートは8188です。
基本的な流れ
- ワークフローのJSONを用意
/promptエンドポイントにPOST- WebSocketで進捗を受け取る
- 完了したら
/viewで画像を取得
import json
import urllib.request
COMFYUI_URL = "http://127.0.0.1:8188"
# ワークフローJSONを読み込み
with open("workflow_api.json", "r") as f:
workflow = json.load(f)
# プロンプトを差し替え
workflow["6"]["inputs"]["text"] = "a cat sitting on a cloud"
# 送信
data = json.dumps({"prompt": workflow}).encode("utf-8")
req = urllib.request.Request(f"{COMFYUI_URL}/prompt", data=data)
req.add_header("Content-Type", "application/json")
response = urllib.request.urlopen(req)
ここで重要なのが「workflow_api.json」の取得方法です。ComfyUIの画面で「Save (API Format)」を押せば出力されます。通常のSaveと違ってノードIDベースのフラットなJSONになります。これを使わないとAPI経由では動きません。
Telegramボットとの連携
私は実際にTelegramボットを作って運用しています。仕組みはシンプルです。
- Telegramでメッセージ送信(プロンプト)
- ボットがComfyUI APIにワークフローをPOST
- WebSocketで完了を検知
- 生成された画像をTelegramに返す
python-telegram-botライブラリとComfyUI APIの橋渡しを書くだけです。100行くらいで収まります。
外出先からスマホでプロンプトを送って、自宅PCで生成して、結果がスマホに返ってくる。これがローカル最大の旨味です。クラウド不要になります。
実際の運用例
私の環境:
- GPU: RTX 5090(VRAM 32GB)
- OS: Windows 11(ComfyUI) + WSL2(Pythonスクリプト)
- 連携: WSL2からWindows側のComfyUI APIを叩く(
http://<Windows側IP>:8188)
WSL2とWindows間の通信は、Windowsの仮想NICのIPを使えば普通に繋がります。Tailscaleでネットワークを繋げば、外からでもアクセスできます。ポート開放は絶対に避けましょう。セキュリティリスクが高すぎます。
生成速度:Flux2 Dev 1024x1024、20steps で約5秒。1日100枚生成してもクラウドなら数千円かかるところ、電気代だけで済みます。
まとめ
ComfyUIローカル環境の利点:
- 電気代以外は無料。生成し放題
- フィルターなし。好きなモデル使い放題
- API自動化で外出先からも生成可能
- 一度セットアップすれば、ずっと使える
初期投資はかかります(GPU代)。でも半年使えば余裕でペイします。年間5万のサブスクを払うなら、RTX 4070 Tiを買った方が長期的にコスパがいいです。
クラウド課金から卒業して、生成の自由を手に入れましょう。
💭 ローカルで動かしてみたい画像生成モデルはありますか?
感想・質問はこちら → @daisuki_koshian