mcpField
C
comfyui-gateway

comfyui-gateway

github.com/sickn33クリエイティブ・メディア48.7k61 回インストール今日更新
リポジトリ

comfyui-gateway について

ComfyUI Gatewayは、既存のComfyUIサーバー向けRESTゲートウェイの設計を支援するドキュメント専用スキルです。ジョブ投入、認証付き結果配信、キュー、Webhook連携を検討できますが、実行可能なゲートウェイやComfyUI標準の追加ルートは含みません。

主な機能

  1. 01ジョブ投入と状態エンドポイントの設計
  2. 02認証とアクセス制御の設計
  3. 03キューとWebhook連携の検討
  4. 04ComfyUI標準 API ルートの説明
  5. 05セキュリティと運用境界の提示

活用シーン

  1. 01既存 ComfyUI 向けジョブ API の計画
  2. 02認可された結果配信の設計
  3. 03Webhook 検証とリプレイ対策の評価
  4. 04ゲートウェイ導入前のセキュリティテスト策定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill comfyui-gateway

インストール後、Claude Code で/comfyui-gatewayを入力して読み込まれたか確認します。

同梱ファイルreferences/integration.mdreferences/troubleshooting.md

詳細

ComfyUI ゲートウェイ

概要

既存の ComfyUI サーバーを取り巻く REST ゲートウェイを設計またはレビューします。このスキルにはドキュメントのみが含まれています。ゲートウェイアプリケーション、パッケージマニフェスト、Dockerfile、CLI、データベースマイグレーション、実行可能なワークフローテンプレートは同梱されていません。インストールや起動コマンドを提案する前に、実際の実装とそのバージョンを確認してください。以下に示すゲートウェイのルートは、ComfyUI のネイティブエンドポイントではありません。

使用する場面

ComfyUI のジョブ送信、認証済みの結果配信、ワーカーキュー、Webhook 統合を設計する場合に使用します。ComfyUI を直接呼び出す場合は、ネイティブ API を参照してください。

アーキテクチャと契約

ゲートウェイでは、リクエストを検証し、レビュー済みのワークフローテンプレートにマッピングし、ComfyUI に作業を送信し、ジョブ状態を永続化して、認可された出力を配信できます。Fastify、BullMQ、Redis、SQLite/Postgres、S3 は利用可能なコンポーネントの例であり、インストール済みの機能ではありません。

提案するゲートウェイ操作必須の動作
POST /jobs呼び出し元を認証し、入力の範囲を検証し、ワークフローを認可して、ジョブ ID を返す
GET /jobs/:idこのプリンシパルがアクセスできるジョブのみを返す
POST /jobs/:id/cancelキャンセルを認可し、キャンセル要求とキャンセル確認を区別する
GET /outputs/:id/:file所有権とパスの包含関係を確認し、呼び出し元のファイルパスを決して信頼しない
Workflow CRUD管理者権限を必須とし、変更を監査する
Health/capabilities秘密情報を含めず、最小限の運用情報を公開する

たとえば queued、running、succeeded、failed、canceled のように、状態を表す用語を統一して定義してください。状態遷移はアトミックに永続化してください。クライアントのタイムアウトによってサーバー側の処理がキャンセルされることはありません。再起動後の復旧、冪等性キーの適用範囲と有効期限、リトライの動作を定義してください。Redis だけでは耐久性や厳密に 1 回の実行は保証されません。

ComfyUI のネイティブルートには、POST /prompt、GET /history/{prompt_id}、GET /view、GET /object_info、WS /ws があります。固定したサーバーバージョンのリクエスト/レスポンス形式を検証してください。ComfyUI から API 形式のワークフローを完全な形でエクスポートしてください。存在しないノードを参照する 2 ノードの断片は実行できません。テンプレートをレンダリングする際は数値入力の型を保持し、不明なノードやパラメーターを拒否してください。

セキュリティと運用上の境界

  • 開発用リスナーはループバックにバインドしてください。リモート環境へのデプロイには、TLS、認証、プリンシパルごとの認可、ネットワーク制御が必要です。CORS はアクセス制御ではありません。必須の認証情報が不足している場合は、起動を失敗させてください。
  • API/JWT/ストレージのシークレットはシークレットストアに保管してください。環境ファイルの内容を表示したり、管理者キーをブラウザクライアントに埋め込んだり、アクセスを修正するために場当たり的な管理者 JWT を発行したりしないでください。
  • コールバックのオリジンと解決された IP を制限し、適切にプライベートネットワーク/メタデータネットワークをブロックして、リダイレクトのたびに再検証するか、リダイレクトを無効にしてください。ホスト名の許可リストだけでは、SSRF や DNS リバインディングを防げません。
  • Webhook の正確なバイト列に署名し、副作用を起こす前に検証してください。リプレイ対策と永続的な重複排除を追加し、永続的な受け入れが完了してからのみ応答してください。
  • 出力はデフォルトで非公開にしてください。ファイルシステムのパス、テナント別キャッシュキー、署名付き URL の有効期間を制限してください。キャッシュの識別情報にはワークフロー/モデル/バージョン/シードを含めてください。ランダムシードのジョブで、別の生成結果やテナントデータを誤って再利用しないでください。
  • ジョブ数、寸法、バッチ、実行時間、ポーリング、ダウンロード量、コストに上限を設定してください。通常、ステップ数が増えると所要時間も長くなります。ステップ数を減らせば OOM が解決すると約束する前に、実際にメモリ不足を引き起こしているノードを特定してください。モデル、ハードウェア、カスタムノードも影響します。
  • モデル/カスタムノードのライセンスとコードを有効化前に確認してください。計画されているインストール、デプロイ、データ送信、破壊的な操作を提示し、承認を得てください。

例

ユーザー:「ローカルの ComfyUI をジョブ API の背後に配置してください。」

応答:「まず、レビュー済みのサーバー/ゲートウェイのコミット、ワークフロー全体、許可された呼び出し元、出力の保持期間を確認します。ジョブ状態と認証の契約を提案し、その後、隔離されたデプロイ環境で、無効な入力、ユーザーをまたいだジョブへのアクセス、コールバックの SSRF、リプレイ、再起動後の復旧、キャンセルをテストしてから公開します。」

Webhook の検証については統合ガイダンスを、範囲を限定した診断についてはトラブルシューティングを参照してください。

制限事項

これは設計リファレンスであり、デプロイ可能なゲートウェイでも、本番環境のセキュリティ認証でもありません。このツリーでは、ランタイム/API 互換性、スループット、自動フォールバック、プライバシーモード、同梱モデル、デプロイに関する保証は確立されていません。これらの機能を主張する前に、実際の実装に対するテストを必須としてください。

ソース

コメント