/ Directory / Playground / Comfy Pilot
● Community ConstantineB6 🔑 Needs your key

Comfy Pilot

by ConstantineB6 · ConstantineB6/comfy-pilot

Claude Code, embedded in ComfyUI — describe the workflow you want, Pilot edits the graph, grabs models from HuggingFace/CivitAI, and installs missing nodes.

comfy-pilot is a ComfyUI custom node that runs Claude Code inside ComfyUI itself — an embedded xterm.js terminal, an MCP server that gives Claude direct read/write access to the current node graph, image analysis of Preview/Save Image nodes, and installers that fetch models from HuggingFace / CivitAI / direct URLs or install custom nodes from the registry. Ask 'Build me an SDXL workflow with ControlNet' and the graph assembles itself instead of you hunting menus.

Why use it

Key features

Live Demo

What it looks like in practice

comfy-pilot.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "comfy-pilot": {
      "command": "comfy",
      "args": [
        "node",
        "install",
        "comfy-pilot"
      ],
      "_inferred": false
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "comfy-pilot": {
      "command": "comfy",
      "args": [
        "node",
        "install",
        "comfy-pilot"
      ],
      "_inferred": false
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "comfy-pilot": {
      "command": "comfy",
      "args": [
        "node",
        "install",
        "comfy-pilot"
      ],
      "_inferred": false
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "comfy-pilot": {
      "command": "comfy",
      "args": [
        "node",
        "install",
        "comfy-pilot"
      ],
      "_inferred": false
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "comfy-pilot",
      "command": "comfy",
      "args": [
        "node",
        "install",
        "comfy-pilot"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "comfy-pilot": {
      "command": {
        "path": "comfy",
        "args": [
          "node",
          "install",
          "comfy-pilot"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add comfy-pilot -- comfy node install comfy-pilot

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use Comfy Pilot

Scaffold an SDXL workflow from a one-line description

👤 ComfyUI users who'd rather describe than drag ⏱ ~20 min intermediate

When to use: You know what you want the workflow to do; you don't want to spend 20 minutes wiring it.

Prerequisites
  • ComfyUI + comfy-pilot installed — comfy node install comfy-pilot
  • Claude Code CLI — Pilot installs it automatically if missing
Flow
  1. Open Pilot in ComfyUI
    Open the Pilot terminal and say: 'Build me an SDXL text-to-image workflow with ControlNet depth conditioning.'✓ Copied
    → Node graph assembles; models install if missing
  2. Run it
    Run the workflow with prompt='cathedral interior, soft light' and my depth map.✓ Copied
    → Image produced; workflow saved

Outcome: A working workflow without manually placing 20 nodes.

Pitfalls
  • Asking for an exotic model Pilot can't find — Provide a HuggingFace repo URL or CivitAI ID; Pilot downloads whichever is specified
Combine with: comfyui-mcp-server

Refactor an existing messy workflow

👤 Users with workflows that grew organically ⏱ ~25 min intermediate

When to use: Your graph has 60 nodes, half unused, and you want it clean.

Flow
  1. Ask for a cleanup plan
    Analyze my current graph; list dead nodes and redundant branches.✓ Copied
    → Claude reads the graph via MCP and produces a plan
  2. Apply
    Apply — but keep the Preview Image node at the end.✓ Copied
    → Nodes removed; edges rewired; preview intact

Outcome: Cleaner, easier-to-edit workflow.

Pitfalls
  • Removing a node that downstream custom code relied on — Have Pilot list touched nodes before destructive ops

Auto-install custom nodes a workflow needs

👤 People opening third-party workflows ⏱ ~10 min beginner

When to use: You imported a workflow and ComfyUI reports missing custom nodes.

Flow
  1. Ask Pilot to resolve
    Find and install any custom nodes this workflow needs.✓ Copied
    → Pilot lists missing nodes, then installs from registry
  2. Verify
    Reload and confirm the graph no longer has red borders.✓ Copied
    → Graph validates cleanly

Outcome: Unknown workflows usable without spelunking for dependencies.

Pitfalls
  • Installing unknown custom nodes at scale — Spot-check the package source before letting Pilot install dozens

Combinations

Pair with other MCPs for X10 leverage

comfy-pilot + comfyui-mcp-server

Pilot authors workflows; the MCP server runs them from other clients

Have Pilot build the workflow; then run it from Claude Desktop via comfyui-mcp-server.✓ Copied
comfy-pilot + filesystem

Organize the assets and workflows Pilot creates

After Pilot saves a workflow, move it into ./workflows/<project>/ with a dated name.✓ Copied
comfy-pilot + mcp-image

Compare local ComfyUI results against Gemini generations on the same prompt

Run the same prompt through Pilot's workflow and mcp-image; diff the outputs.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
graph.list_nodes / graph.get_node optional filter Read the current workflow 0
graph.create_node / graph.connect type, parent, edges Author nodes and wire edges 0
image.analyze node_id (Preview/Save) Inspect a generated image to decide the next step 0
model.download source (HF repo, CivitAI id, or URL), target Missing checkpoints / LoRAs bandwidth
nodes.install custom node package(s) Missing or auto-required custom nodes bandwidth

Cost & Limits

What this costs to run

API quota
Local compute only
Tokens per call
Small (graph ops); image/model bytes dominate disk and bandwidth
Monetary
Free; your GPU + bandwidth
Tip
Have Pilot confirm before downloading large model bundles; many workflows share checkpoints.

Security

Permissions, secrets, blast radius

Credential storage: Use env vars if you add HF or CivitAI tokens for higher download rates.
Data egress: Downloads from HuggingFace / CivitAI / direct URLs you authorize; otherwise local.

Troubleshooting

Common errors and fixes

Pilot terminal doesn't open

Reinstall via comfy node install comfy-pilot; ensure ComfyUI restart.

Verify: ComfyUI → Manager → Installed, confirm comfy-pilot listed
Custom node install fails behind a corporate proxy

Set HTTPS_PROXY in the ComfyUI process env before launching.

Verify: env | grep -i proxy in the ComfyUI terminal
Model download halts partway

Resume by re-running the download; Pilot resumes where it left off for compatible sources.

Verify: Re-run model.download with the same target path

Alternatives

Comfy Pilot vs others

AlternativeWhen to use it insteadTradeoff
comfyui-mcp-serverYou want to run workflows from external MCP clients, not author inside ComfyUINo embedded terminal; different surface
mcp-imageYou prefer cloud Gemini over local ComfyUILess control; pay per image
everartYou need pre-trained style modelsDifferent provider

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills