【ComfyUI】APIモードでワークフロー実行時のエラー解決法

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という選択肢:

  • RunPod — RTX 4090が$0.44/h〜、環境構築済みテンプレートですぐ開始
  • Vast.ai — 最安値GPU マーケットプレイス、コスパ重視ならこちら

※ 上記はアフィリエイトリンクです。サイト運営のサポートになります。

💡 この問題を根本的に解決するには

ローカル環境のGPUトラブルが頻発する場合、ハードウェアの見直しも検討してみてください:

💡 この問題を根本的に解決するには

ローカル環境でGPUトラブルが頻発する場合、クラウドGPUサービスの利用も検討してみてください。環境構築の手間なく、すぐにAI開発を始められます。

  • RunPod — RTX 4090が$0.44/h〜、ワンクリックでJupyter環境が起動
  • Vast.ai — コミュニティGPUマーケットプレイス、最安値でGPUレンタル
この記事は役に立ちましたか?