ComfyUIカスタムノードにJavaScript UIを追加する|Widgetとイベント処理
ComfyUIカスタムノードにJavaScriptでボタンや表示を足す方法を解説。WEB_DIRECTORYの公開、app.registerExtensionのhook、Widget値がworkflow JSONに残る仕組み、Nodes 2.0での互換確認、UI例外からBackend処理を守る設計まで扱います。
AIとつくる、実践プログラミング・コーディングメディア
ARCHIVE
ComfyUIカスタムノードにJavaScriptでボタンや表示を足す方法を解説。WEB_DIRECTORYの公開、app.registerExtensionのhook、Widget値がworkflow JSONに残る仕組み、Nodes 2.0での互換確認、UI例外からBackend処理を守る設計まで扱います。
n8nをオーケストレーター、Ollamaを解釈、ComfyUIを生成に分け、文章の依頼から画像生成までを自動化する構成を解説。Schema検証・Job IDの保存・Waitノードによる人の承認ゲート・途中からの再開まで、1件を却下から承認まで通す手順付き。
ブランドやキャラクターのスタイルガイドをRAGで検索し、取得した規則をComfyUIのプロンプト設定フィールドに変換する手順を解説。Chunkの切り方、参照元IDを生成ログに残す方法、RAGでは解決しない画風再現の線引きまで扱います。
ComfyUIの生成画像をOllamaのVisionモデルで分析し、固定Schemaの評価JSONから限定的な再生成指示に変換する手順を解説。最大回数・改善閾値・人の承認で無限ループを防ぎ、VLMと人の判定のずれを測る記録表も用意します。
ローカルLLMで日本語の依頼を画像プロンプトにする方法を解説。翻訳ではなくSubject・Style・Lightingなどの項目化、JSON Schemaでの依頼、複数モデルを固定項目で比較する手順、長文の限界、生成前の検査まで分かります。
Comfy Cloud MCPの接続方法とローカル版との違いを解説。実行場所・認証・課金・保存場所の比較、APIキーを設定ファイルに直書きしない登録、最小jobでの確認、Secret管理、機密性とコストによる使い分けが分かります。
ComfyUIをLAN外から使うときの防御設計を解説。--listenだけで公開しない理由、脅威モデル、リバースプロキシで入口を一つにする構成、Basic/OIDC/VPNの使い分け、入力制限、ログと更新の運用まで分かります。
ReactでComfyUIの生成状況を表示する設計を解説。idle/queued/running/success/error/cancelledの6状態とuseReducerの遷移、WebSocketをHookに閉じ込める形、進捗率を捏造しない表示、Cancel・Retry、リロード後の復元まで分かります。
Next.jsのRoute Handlerを間に置き、ComfyUIの接続先とworkflowをサーバー側に閉じ込める3層構成を解説。zodによる入力検証、client層の分離、画像の中継、外部公開前の認証・レート制限・タイムアウトまで分かります。
Comfy CLIは公式のコマンドラインツールで、comfy run --workflow file.json --waitが自動化の基本形です。API・MCPとの使い分け、導入、1回実行、jqとループで組むBatch、CIでのSecret・Exit Code・Logの扱い、仕様変更への備えを解説します。
OllamaのStructured Outputsはformatにスキーマを渡し応答の形を保証しますが、値域や意味は保証しません。ComfyUI向けの最小Schema設計、受信後の再検証、ノードIDを隠すMapping層、Preset方式、自然文20件の検証手順を解説します。
OllamaのTool Callingでは、モデルはgenerate_imageを呼びたいと宣言するだけで、実行と検証はアプリが担います。最小のTool定義、tool_callsの受け取り、型・値域・列挙の検証、結果の戻し方、連続生成の防止をJavaScriptで解説します。
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で複数の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のモデル保存先は、extra_model_paths.yamlにbase_pathと種類ごとのpathを書くだけで外部フォルダや他のUI(Forge・A1111)と共有できます。YAMLの書き方、Checkpoint・LoRA・VAEの分け方、外付けSSD・NASの注意、表示されないときの確認順を解説します。
更新で壊れたComfyUIは、更新前に保存したSnapshotをRestoreして再起動すれば戻せます。本体・Frontend・Manager・Custom Nodeの4層の記録、Snapshotの作成と復元、最小Workflowでの確認、差分を1つずつ戻す手順を解説します。
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で登録すれば動きます。文字列を加工する最小ノードを例に、作るべきかの判断、実装、登録、型、壊れにくくする整備まで解説します。