ComfyUIをTypeScriptから実行する|公式SDKでWorkflowを呼び出す方法
ComfyUIをTypeScriptから動かすには、公式SDK「@comfyorg/sdk」(Comfy API v2用、Beta 0.1.x)を使い、ローカルはcomfy-api-proxy経由で接続します。最小プロジェクト、Workflowと入力値の分離、型付きの結果取得、失敗とTimeoutの区別、SDK更新に強いラッパー層の作り方を解説します。
AIとつくる、実践プログラミング・コーディングメディア
ARCHIVE
ComfyUIをTypeScriptから動かすには、公式SDK「@comfyorg/sdk」(Comfy API v2用、Beta 0.1.x)を使い、ローカルはcomfy-api-proxy経由で接続します。最小プロジェクト、Workflowと入力値の分離、型付きの結果取得、失敗とTimeoutの区別、SDK更新に強いラッパー層の作り方を解説します。
ComfyUIで複数のControlNetを重ねるには、Apply ControlNetを直列につなぎ、単独で成功した条件から順に足します。強度と適用範囲の配分、条件が競合して破綻する典型例、IP-Adapter・LoRAとの併用順、追加ごとのVRAMと時間の記録方法を解説します。
ComfyUIのLatentは、画像になる前の「生成モデルが扱う内部表現」で、KSamplerが書き換えるのはこのLatentです。IMAGE型と分かれている理由、Empty Latent Imageの幅・高さ・batch、VAEでの往復、KSamplerとの関係を配線で示し、型エラーを自力で診断する読み方につなげます。
ComfyUIのVAEは、画像とLatentを相互に変換する橋渡し役で、色味・明暗・細部の破綻に直接影響します。VAE EncodeとDecodeの位置、内蔵VAEと外部VAEの違い、同じLatentを2つのVAEでDecodeして比較する手順、不一致の症状の切り分けを解説します。
ComfyUIの知らないノードは、Node Docsで「入力・処理・出力」と「何のデータ型が流れるか」を読めば自力で理解できます。MODEL・CLIP・LATENT・IMAGEの意味、required/optional、Widgetと接続の違い、配布Workflowの読み方、Docsが無いCustom Nodeの調べ方を解説します。
ComfyUIのMask Editorは、Load Imageノードの画像に対して塗り・消し・保存でマスクを作る編集画面です。開き方、Mask Penと Eraserの最小手順、Hardnessによる境界の違い、白黒マスクの意味の確認法、Inpainting前のチェック、外部ソフトを使うべき場面を解説します。
ComfyUIのPartial Executionは、選んだ出力ノードに必要な依存ノードだけを実行する機能です。選択ツールボックスの青い三角形からの使い方、途中Previewを置く検証設計、2分岐で片方だけ実行する例、キャッシュと再計算の観察、LoRA強度やDenoiseの一変数比較への応用、GPU高速化ではない点を解説します。
ComfyUIのSubgraphは、複数ノードを入力と出力を持つ1つの処理単位にまとめ、再利用できる仕組みです。Groupとの違い、VAE Decodeなど最小単位での作成手順、入出力の境界の決め方、役割単位の設計、命名と依存の記録、細分化しすぎる失敗を解説します。
ComfyUI Nodes 2.0は生成モデルではなく、ノード描画をLiteGraphのCanvasからVueに置き換えたUI基盤の変更です。旧UIとの違い、ロゴメニューからの切り替えと戻し方、Custom Node互換性の確認、大型ワークフローでの比較手順、3タイプ別の導入判断をまとめます。
ComfyUIのApp Modeは、ノードグラフを消さずに、利用者が触る入力と出力だけを絞って表示する仕組みです。App Builderの4ステップ、入出力の選び方、既定表示、保存と共有リンクの制約、向くワークフローと向かないワークフローを解説します。
ComfyUIのカスタムノードは、INPUT_TYPES・RETURN_TYPES・FUNCTIONを持つPythonクラスをcustom_nodes配下に置き、NODE_CLASS_MAPPINGSで登録すれば動きます。文字列を加工する最小ノードを例に、作るべきかの判断、実装、登録、型、壊れにくくする整備まで解説します。
Comfy MCPのローカル版はpip install comfy-mcpで入り、Claude CodeやCodexにstdioサーバーとして登録すると、Agentが手元のComfyUIのworkflowをToolとして実行できます。前提version、登録方法、固定workflowだけ許可する使い方、権限境界、beta追従の注意をまとめます。
OllamaとComfyUIの連携は、Ollamaに日本語の依頼をJSON Schema付きで構造化させ、検証済みの値だけを固定workflowに差し込んでPOST /promptへ送る形が最小構成です。役割分担、データフロー、Schema設計、安全な受け渡し、検証記録の取り方まで解説します。
ComfyUIのworkflow JSONはGUI用とAPI用で構造が違い、GUI用をそのまま/promptへ送っても動きません。同一workflowの並置で差を示し、File → Export Workflow (API)での正式な出力、Node IDの逆引き、parse後の最小差分書き換えを解説します。
ComfyUIのImport Failedは本体の故障ではなく、特定のcustom nodeのPython importが失敗した状態です。起動logの「Import times for custom nodes」から対象を特定し、ModuleNotFoundErrorの読み方、Python実体の確認、nodeの一時無効化、再発防止までを順に示します。
IP-Adapterは参照画像をCLIP特徴量に変えてmodelに渡す「画像で書いたprompt」です。ComfyUI_IPAdapter_plusの最小接続、同じseedでweightを4段階比較する手順、ControlNet・LoRAとの役割分担、参照画像の権利確認まで整理します。
ComfyUIのインペイントはLoad ImageのMASK出力をVAE Encode (for Inpainting)かSet Latent Noise Maskに渡すだけで組めます。マスク範囲とDenoiseを別々に調整する手順、境界が目立つ原因の切り分け、修正履歴の残し方を解説します。
ComfyUIのimg2imgはLoad Image→VAE Encode→KSampler→VAE Decodeの4ノードで組め、元画像をどれだけ残すかはKSamplerのDenoiseだけで決まります。同一Seedで0.2〜0.8を比較する手順と判断基準を解説します。
ComfyUIのEmbedding(Textual Inversion)はmodels/embeddingsに置き、promptにembedding:ファイル名と書くだけで使えます。LoRAとの違い、Negative Embeddingの副作用、効かないときの確認順を解説します。
ComfyUIのKSamplerが何をするノードかを解説。Steps・CFG・Sampler・Scheduler・Seed・Denoiseの役割の違いと、Seed固定でStepsとCFGを一変数ずつ比較して時間も記録し、自分の基準値を条件表として残す方法が分かります。
ComfyUIでSeedを固定するにはKSamplerのcontrol_after_generateをfixedにします。Seedが固定するのはノイズの出発点だけで、model・sampler・解像度・ノード差で同じSeedでも画像が変わる条件と、再現のための記録方法を解説します。
ComfyUIで複数のLoRAを重ねる方法を解説。Load LoRAの直列配線、強度を一つずつ動かす比較手順、顔・服・画風が干渉する症状、順序A→B/B→Aを同一Seedで比べる記録表まで分かります。
AI生成画像をWeb・SNS・印刷向けに高解像度化する方法を、pixel・latent・tiled方式の比較、ComfyUI構成、品質チェック付きで解説します。
ComfyUIで参照画像をOpenPose・Canny・Depthの条件へ変換し、ControlNetのstrengthと適用範囲を調整する基本手順を解説します。
ComfyUIでLoRAを配置してLoad LoRAノードへ接続し、同じseedで強度0・0.5・0.8・1.0を比較する方法と、効かない場合の確認点を解説します。