mcpField
C
comfyui-workflow-builder

comfyui-workflow-builder

github.com/mckruzクリエイティブ・メディア922.1k 回インストール32 週間前に更新
リポジトリ

comfyui-workflow-builder について

comfyui-workflow-builderは、自然言語の依頼を実行可能なComfyUIワークフローJSONに変換するスキルです。利用可能なモデル、ノード、VRAMを確認して構成を選び検証するため、画像・動画・音声のワークフロー作成に向いています。

主な機能

  1. 01自然言語からのワークフロー生成
  2. 02インベントリに基づくモデルとノードの確認
  3. 03画像・動画・音声向けパイプラインの選択
  4. 04接続とVRAM要件の検証
  5. 05オンライン実行またはオフラインJSON出力

活用シーン

  1. 01テキストから画像を生成するワークフローの作成
  2. 02アイデンティティ保持やインペイントの構成
  3. 03WanまたはAnimateDiffによる動画生成構成
  4. 04導入済みモデルと利用可能なVRAMに応じた設定調整

インストール

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

$npx skills add https://github.com/mckruz/comfyui-expert --skill comfyui-workflow-builder

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

eval/
benchmark.yaml
EVAL.md
run-eval.sh
test-cases.yaml
trigger-tests.yaml
eval/results/
.gitignore
.gitkeep

詳細

ComfyUI ワークフロービルダー

自然言語によるリクエストを、実行可能な ComfyUI ワークフロー JSON に変換します。生成前に必ずインベントリと照合します。

ワークフロー生成プロセス

Step 1: リクエストを理解する

ユーザーの意図を以下の項目に分けて解析します。

  • 出力タイプ:画像、動画、音声
  • ソース素材:テキストのみ、参照画像、既存の動画
  • アイデンティティの方式:なし、ゼロショット(InstantID/PuLID)、LoRA、Kontext
  • 品質レベル:ドラフト(高速な試行)または本番(最高品質)
  • 特別な要件:ControlNet、インペインティング、アップスケーリング、リップシンク
Step 2: インベントリを確認する

state/inventory.json を読み込み、以下を確認します。

  • 利用可能なチェックポイント → タスクに最適なものを選択
  • 利用可能なアイデンティティモデル → 使用可能な方式を判断
  • 利用可能な ControlNet モデル → 利用可能な場合はポーズ/深度制御を有効化
  • インストール済みのカスタムノード → 必要なノードがすべて存在することを確認
  • 利用可能な VRAM → それに応じて設定を最適化
Step 3: パイプラインパターンを選択する

リクエストとインベントリに基づいて、以下から選択します。

パターン使用する場合主なノード
テキストから画像シンプルな生成Checkpoint → CLIP → KSampler → VAE
アイデンティティを保持した画像キャラクターの一貫性+ InstantID/PuLID/IP-Adapter
LoRA キャラクター学習済みキャラクター+ LoRA Loader
画像から動画(Wan)高品質な動画Diffusion Model → Wan I2V → Video Combine
画像から動画(AnimateDiff)高速な動画、モーション制御+ AnimateDiff Loader + Motion LoRAs
トーキングヘッドキャラクターが話すImage → Video → Voice → Lip-Sync
アップスケール解像度の向上Image → UltimateSDUpscale → Save
インペインティング領域の編集Image + Mask → Inpaint Model → KSampler
Step 4: ワークフロー JSON を生成する

ComfyUI ワークフロー形式:

{
  "{node_id}": {
    "class_type": "{NodeClassName}",
    "inputs": {
      "{param_name}": "{value}",
      "{connected_param}": ["{source_node_id}", {output_index}]
    }
  }
}

ルール:

  • ノード ID は文字列です(通常は「1」、「2」、「3」…)
  • 接続された入力には配列形式を使用します:["source_node_id", output_index]
  • 出力インデックスは 0 始まりの整数です
  • ファイル名はインベントリに記載されたものと完全に一致させる必要があります
  • シード値には、大きなランダム整数、または再現性を確保するための固定値を使用します
Step 5: 検証する

ユーザーに提示する前に、以下を確認します。

  1. すべての class_type がインベントリのノード一覧に存在する
  2. すべてのモデルファイル名がインベントリのモデル一覧に存在する
  3. 必要な接続がすべて存在する(未接続の入力がない)
  4. VRAM の推定使用量が利用可能な VRAM を超えない
  5. 解像度が選択したモデルに適合している(SD1.5 は 512、SDXL/FLUX は 1024)
Step 6: 出力する

オンラインモードの場合:comfyui-api スキル経由でキューに追加 オフラインモードの場合:わかりやすい名前を付けて、JSON を projects/{project}/workflows/ に保存

ワークフローテンプレート

基本的なテキストから画像(FLUX)
{
  "1": {
    "class_type": "LoadCheckpoint",
    "inputs": {"ckpt_name": "flux1-dev.safetensors"}
  },
  "2": {
    "class_type": "CLIPTextEncode",
    "inputs": {"text": "{positive_prompt}", "clip": ["1", 1]}
  },
  "3": {
    "class_type": "CLIPTextEncode",
    "inputs": {"text": "{negative_prompt}", "clip": ["1", 1]}
  },
  "4": {
    "class_type": "EmptyLatentImage",
    "inputs": {"width": 1024, "height": 1024, "batch_size": 1}
  },
  "5": {
    "class_type": "KSampler",
    "inputs": {
      "seed": 42,
      "steps": 25,
      "cfg": 3.5,
      "sampler_name": "euler",
      "scheduler": "normal",
      "denoise": 1.0,
      "model": ["1", 0],
      "positive": ["2", 0],
      "negative": ["3", 0],
      "latent_image": ["4", 0]
    }
  },
  "6": {
    "class_type": "VAEDecode",
    "inputs": {"samples": ["5", 0], "vae": ["1", 2]}
  },
  "7": {
    "class_type": "SaveImage",
    "inputs": {"filename_prefix": "output", "images": ["6", 0]}
  }
}
アイデンティティ保持あり(InstantID + IP-Adapter)

以下を追加して基本テンプレートを拡張します。

  • 参照画像の読み込みノード
  • InstantID Model Loader + Apply InstantID
  • IPAdapter Unified Loader + Apply IPAdapter
  • FaceDetailer による後処理

ノード設定の詳細については、references/workflows.md を参照してください。

動画生成(Wan I2V)

異なるローダーチェーンを使用します。

  • LoadCheckpoint ではなく Load Diffusion Model
  • Wan I2V Conditioning
  • EmptySD3LatentImage(フレーム数を指定)
  • Video Combine (VHS)

設定の詳細については、references/workflows.md の Workflow 4 を参照してください。

VRAM の推定

コンポーネントおおよその VRAM
FLUX FP1616GB
FLUX FP88GB
SDXL6GB
SD1.54GB
InstantID+4GB
IP-Adapter+2GB
ControlNet(各)+1.5GB
Wan 14B20GB
Wan 1.3B5GB
AnimateDiff+3GB
FaceDetailer+2GB

よくある間違いと回避方法

  1. 出力インデックスの誤り:CheckpointLoader の出力は [model, clip, vae] で、インデックスは [0, 1, 2] です
  2. InstantID に対して CFG が高すぎる:デフォルトの 7~8 ではなく、4~5 を使用します
  3. モデルに合わない解像度:FLUX/SDXL は 1024、SD1.5 は 512 です
  4. VAE がない:FLUX には明示的な VAE(ae.safetensors)が必要です
  5. 誤ったローダーでモデルを読み込む:Diffusion モデルには LoadCheckpoint ではなく LoadDiffusionModel が必要です

参照ファイル

  • references/workflows.md - ノードごとの詳細なテンプレート
  • references/models.md - モデルファイルとパス
  • references/prompt-templates.md - モデル固有のプロンプト
  • state/inventory.json - 現在のインベントリキャッシュ

コメント