ComfyUIで発生するAPIモードでのワークフロー実行エラー
ComfyUIの使用中にAPIモードでのワークフロー実行エラーが発生することがあります。本記事では原因と解決方法を解説します。
エラーの症状
ComfyUIのAPI(/prompt エンドポイント)を使ってプログラムからワークフローを実行する際に、「prompt is not valid」「node type not found」「input validation failed」などのエラーが発生します。
原因
1. ワークフローJSONの形式エラー
UIからエクスポートしたワークフローとAPI形式のワークフローは構造が異なります。
2. ノードID参照の不整合
API JSONでは各ノードをID(文字列)で参照しますが、番号の不一致でエラーになります。
3. 入力値の型エラー
数値を文字列で送信するなど、パラメータの型が期待と異なる場合にバリデーションエラーが発生します。
解決方法
手順1: API形式のJSONを取得する
ComfyUIの「Settings」→「Enable Dev mode Options」を有効にし、ワークフローを「Save (API Format)」でエクスポートしてください。通常のSaveとは異なるAPI専用形式が出力されます。
手順2: Pythonでの正しいAPI呼び出し
import json
import requests
# API形式のワークフローを読み込み
with open("workflow_api.json", "r") as f:
prompt = json.load(f)
# パラメータの動的変更(例: シード値)
prompt["3"]["inputs"]["seed"] = 12345
# ワークフローを実行
response = requests.post("http://localhost:8188/prompt", json={
"prompt": prompt
})
print(response.json())
手順3: WebSocketで生成進捗を監視
import websocket
import json
ws = websocket.WebSocket()
ws.connect("ws://localhost:8188/ws?clientId=my-client")
while True:
msg = json.loads(ws.recv())
if msg["type"] == "executing":
if msg["data"]["node"] is None:
print("生成完了!")
break
まとめ
ComfyUIのAPIモードでのワークフロー実行エラーの主な原因と解決策を紹介しました。環境やバージョンの確認を最初に行うことで、多くの問題は迅速に解決できます。
☁️ ローカル環境のトラブルを回避するなら
環境構築やGPUの問題に悩まされない、クラウドGPUという選択肢:
※ 上記はアフィリエイトリンクです。サイト運営のサポートになります。
💡 この問題を根本的に解決するには
ローカル環境のGPUトラブルが頻発する場合、ハードウェアの見直しも検討してみてください:
- VRAM不足なら → RTX 4070 Ti Super(16GB VRAM)
- メモリ不足なら → DDR5 64GBメモリ
- AI開発を体系的に学ぶなら → AI・機械学習の実践書籍