Open WebUIからComfyUIを呼び出す方法|チャットに画像生成Toolを追加する
Open WebUIのチャットからComfyUIで画像を作るには、現行のToolsで固定workflowを呼ぶ関数を1つ作り、引数をprompt・size・seedに絞ります。Pipelinesとの違い、最小Toolのコード、引数検証、画像の返し方、第三者Toolの安全性を解説します。
AIとつくる、実践プログラミング・コーディングメディア
ARCHIVE
Open WebUIのチャットからComfyUIで画像を作るには、現行のToolsで固定workflowを呼ぶ関数を1つ作り、引数をprompt・size・seedに絞ります。Pipelinesとの違い、最小Toolのコード、引数検証、画像の返し方、第三者Toolの安全性を解説します。
ComfyUIのQueueは1件ずつ処理する列です。自アプリのJob IDとprompt_idの対応付け、状態遷移、/queueと/interruptで分けるキャンセル、原因別の再試行、ユーザー上限と429によるbackpressureの設計を解説します。
ComfyUI APIで入力画像を渡すには、POST /upload/imageにmultipartで送り、返ってきたnameをAPI形式JSONのLoad Imageノードのimageに書き込んでから/promptへ投入します。アップロードの仕様、Node書き換え、img2imgとInpaintingのマスク連携、ファイル名の検証を解説します。
ComfyUIの生成進捗は、HTTPでjobを投入し、WebSocket(/ws?clientId=)でstatus・executing・progress・executedなどのイベントを受け取る二経路で取得します。接続とclientIdの対応、各イベントの読み方、UI stateへの変換、切断時の再確認、進捗率の見せ方を解説します。
ComfyUIをPythonから動かすには、公式SDK「comfy-sdk」(Comfy API v2用、Beta 0.1.x)を使い、ローカルはcomfy-api-proxy経由で接続します。venvでの導入と接続確認、PromptとSeedの引数化、完了待ちと保存、複数実行のエラー処理、client層とmain処理の分離を解説します。
ComfyUIをTypeScriptから動かすには、公式SDK「@comfyorg/sdk」(Comfy API v2用、Beta 0.1.x)を使い、ローカルはcomfy-api-proxy経由で接続します。最小プロジェクト、Workflowと入力値の分離、型付きの結果取得、失敗とTimeoutの区別、SDK更新に強いラッパー層の作り方を解説します。
ComfyUIのworkflow JSONはGUI用とAPI用で構造が違い、GUI用をそのまま/promptへ送っても動きません。同一workflowの並置で差を示し、File → Export Workflow (API)での正式な出力、Node IDの逆引き、parse後の最小差分書き換えを解説します。
ComfyUIを画面以外から動かす経路は、ローカルのServer API、SDK付きのComfy API v2、Cloud APIの三つ。役割・認証・URLの違いを表で比べ、API形式JSONを/promptへ送ってPromptだけ差し替えて1枚生成する最小サンプルを示します。