メインコンテンツへスキップ
このページでは、シンプルな HTTP 送信から WebSocket を使用したリアルタイム画像出力まで、ComfyUI Server API との3つの対話方法を紹介します。 すべての例はデフォルトの SD1.5 ワークフローを使用しています。API を使用する前に、ワークフローを API 形式 でエクスポートする必要があります。
これらの例は Python 標準ライブラリと websocket-client パッケージ(pip install websocket-client)を使用しています。API プロトコルは言語に依存しません — TypeScript と curl 版については Cloud API リファレンスを参照してください。

方法1:送信して忘れる(HTTP のみ)

ソース:basic_api_example.py 最もシンプルな方法:ワークフローを送信し、結果を待ちません。後で出力を確認するような「送りっぱなし」のジョブに適しています。
この方法は SaveImage ノードを使用するため、画像はサーバーのディスクに保存されます。画像を取得するには GET /view?filename=... を呼び出す必要があります。

方法2:WebSocket + History(完了を監視)

ソース:websockets_api_example.py WebSocket で実行完了を待ち、/history エンドポイントから結果を取得します。ほとんどのユースケースで推奨されるパターンです。
WebSocket のバイナリフレームには生成途中のプレビュー画像が含まれています。ライブプレビュー用にデコードできます(バイナリ形式の詳細はサーバーメッセージページを参照)。

方法3:WebSocket + SaveImageWebsocket(リアルタイム画像)

ソース:websockets_api_example_ws_images.py 画像をディスクに保存せずに受け取りたい場合は、SaveImageWebsocket ノードを使用します。画像は WebSocket のバイナリフレームで直接配信されます。
ワークフローは通常の SaveImage ノードの代わりに class_type: "SaveImageWebsocket"(組み込みノード)を使用する必要があります。

どの方法を選ぶべきか?

方法1: HTTP のみ

送って忘れる。 即時の出力が必要ない場合に。

方法2: WebSocket + History

推奨。 完了を待ち、結果をダウンロード。シンプルさと信頼性の最適なバランス。

方法3: SaveImageWebsocket

リアルタイム画像。 ディスク書き込みなしで画像を受け取りたいインタラクティブなアプリに。
完全な API リファレンス(エンドポイント、ペイロード形式、エラー処理)については、サーバールートおよびサーバーメッセージページを参照してください。