Skip to content

Releases: dreamrec/ComfyPilot

ComfyPilot v1.8.1 - .mcp.json connectivity fix

12 May 13:41

Choose a tag to compare

Patch: .mcp.json now works in both plugin and project contexts

One-line fix to make the bundled .mcp.json load cleanly when the repo is checked out as a project, not just when loaded by Claude Code's plugin loader.

The bug

.mcp.json previously launched ComfyPilot with:

"args": ["run", "--directory", "${CLAUDE_PLUGIN_ROOT}", "comfypilot"]

${CLAUDE_PLUGIN_ROOT} only substitutes inside Claude Code's plugin loader. When .mcp.json is picked up as a project-scope MCP config (which happens automatically when the repo dir is the cwd), the variable stays literal and uv fails because the directory doesn't exist.

Symptom: developers with the v1.8.0 plugin installed AND a local checkout saw

comfypilot: uv run --directory ${CLAUDE_PLUGIN_ROOT} comfypilot - ✗ Failed to connect

in claude mcp list when run from inside the repo. End-users on .mcpb / plugin marketplace never hit this.

The fix

-      "args": [\"run\", \"--directory\", \"\${CLAUDE_PLUGIN_ROOT}\", \"comfypilot\"],
+      "args": [\"run\", \"comfypilot\"],

uv run walks up from cwd looking for pyproject.toml. In plugin context cwd is the plugin install dir (which has pyproject.toml); in project context cwd is the repo root (also has pyproject.toml). Both succeed.

Also in this release

  • *.mcpb added to .gitignore so locally-built bundles don't dirty git status.
  • All 7 release manifests bumped 1.8.0 → 1.8.1.
  • CHANGELOG entry covering the fix and its symptom.

Stats unchanged from v1.8.0

Metric Value
Tools 88
Categories 19
Model families 11 + 5 intent-overrides
Bundled blueprints 13
MCP resources 6 + 4
Validator passes 6
Tests passing 770
ComfyUI compat v0.20+

Install

MCPB one-click (Claude Desktop): Download comfypilot-v1.8.1.mcpb below and drag into Settings → Extensions.

Claude Code plugin update:

claude plugin update comfypilot@dreamrec-ComfyPilot

(if you're already on v1.8.0 the update is a one-line config change; no code or skill regeneration needed)

See CHANGELOG.md for the per-release breakdown.

ComfyPilot v1.8.0 - ComfyUI v0.20 alignment + operational toolkit (88 tools)

12 May 12:15
e867673

Choose a tag to compare

What's new

v1.8.0 brings ComfyPilot's surface up to ComfyUI v0.20.1 (was claiming v0.17+) and adds a substantial operational toolkit on top of the v1.6.0 structural foundation. Family-aware builder, snapshot/restore, technique memory, and blueprint library are unchanged - the new additions are strictly additive.

Tool count: 73 → 88

New families (1) + intent-overrides (5):

  • Ernie Image — new image family (UNETLoader + Ernie CLIPLoader path)
  • 5 family-agnostic intents that dispatch by intent name regardless of detected checkpoint:
    • super_resolution (SUPIR pipeline)
    • interpolate_frames (RIFE / FILM frame interpolation)
    • segment (SAM 3.1 prompt-based segmentation)
    • train_lora (native LoRA trainer)
    • txt2audio (Stable Audio 2.5)

Lifecycle (5 new tools — comfy-cli wrappers):

  • comfy_launch_server, comfy_stop_server
  • comfy_install_node, comfy_list_installed_nodes
  • comfy_download_model (with optional CivitAI token)

Diagnostics (5 new tools):

  • comfy_extract_schema — workflow-level controllable params + dependency summary
  • comfy_fetch_logs — traceback retrieval from /history/{prompt_id}
  • comfy_inspect_workflow — trust check (custom-node enumeration)
  • comfy_recommend_runtime — hardware verdict (ok / marginal / cloud)
  • comfy_suggest_timeout — per-workflow HTTP timeout based on output classes

Convenience (3 new tools):

  • comfy_install_workflow_deps — auto-install missing nodes
  • comfy_run_with_inputs — upload + inject + queue in one call
  • comfy_randomize_seeds — replace seed=-1 sentinels

Other new tools:

  • comfy_sweep_grid — n-dim Cartesian-product sweep
  • comfy_list_partner_apis — curated catalog of vendor partner nodes

Validator: 5-pass → 6-pass

  • Editor-format pre-pass: catches workflows still in the ComfyUI web UI's nodes + links shape and asks for an API-format re-export
  • Anti-cycle pass: mirrors ComfyUI v0.20's execution-side cycle detection
  • Deprecated-model lint runs inside the environment pass

New MCP resources

  • comfy://api/openapi — ComfyUI OpenAPI 3.1 spec (v0.20.0+)
  • comfy://docs/{node_class} — embedded node documentation

Capability awareness

  • capabilities.tier — Comfy Cloud subscription tier (free / standard / creator / pro / paid / null) via user-info probing with HTTP_403-specific classification
  • capabilities.frontend_version — ComfyUI frontend package version
  • capabilities.cache_provider — distributed-cache backend, when present
  • capabilities.openapi_version — populated when OpenAPI spec is reachable

Hardening (two rounds of code review)

  • Pydantic forward-ref fix in comfy_get_run_result (output schema now resolves at decoration time)
  • Path-injection guard in get_node_docs class_type
  • Cloud tier probe distinguishes HTTP_403 from network errors and 404s (no more silent free-tier downgrades on transient blips)
  • comfy_fetch_logs deduplicates errors that appear in both status.exec_info.errors AND status.messages
  • comfy_run_with_inputs no longer overloads auto_snapshot — dedicated upload_map field on QueueAck
  • comfy_launch_server warns when extra_args overrides --port / --listen
  • comfy_randomize_seeds excludes 0 (treated as sentinel by some custom nodes)
  • auto_fix_deps closes the raw fd if os.fdopen raises
  • Path-traversal regression tests (24 cases) pin output-routing safety

Install surface refresh

  • manifest.json (MCPB) and mcp/manifest.json both expose COMFY_STRICT_CONFIRM (was missing on the MCP-registry path)
  • .claude-plugin/plugin.json enriched with homepage, repository, license, and a 30-keyword list covering every new family / intent / capability
  • .mcp.local.json.example updated to list every supported env var
  • .mcpbignore cleaned of dead paths

Stats

Metric v1.6.0 v1.8.0
Tools 73 88
Categories 15 19
Model families 10 11 (+5 intent overrides)
Bundled blueprints 9 13
MCP resources 5 + 3 6 + 4
Validator passes 5 6
Tests passing 541 770
ComfyUI compat v0.17+ v0.20+

See CHANGELOG.md for the per-feature breakdown.

Install

MCPB one-click (Claude Desktop):
Download comfypilot-v1.8.0.mcpb (attached below) and drag into Claude Desktop's Settings → Extensions.

Claude Code plugin:

claude plugin add /path/to/ComfyPilot

Local dev runtime:

git clone https://github.com/dreamrec/ComfyPilot.git
cd ComfyPilot
uv sync
uv run comfypilot

For the lifecycle tools (comfy_install_node, comfy_install_workflow_deps, etc.) install comfy-cli on PATH:

pipx install comfy-cli   # or: uvx --from comfy-cli comfy

ComfyPilot v1.6.0 - unified model discovery

20 Apr 08:37

Choose a tag to compare

[1.6.0] - 2026-04-20

Unified model discovery across the full ComfyUI folder taxonomy

This rewires every model-discovery tool to treat /models as the source of
truth for which folders exist, not a hardcoded 5-folder guess. Modern
UNETLoader-based families (Flux 2, Qwen-Image, Wan 2.2, LTX-2, HunyuanVideo,
Hunyuan3D) store their primary weights under diffusion_models/, not
checkpoints/. Pre-1.6 those installs were invisible to comfy_search_models
and comfy_refresh_models, which defaulted to checkpoint-centric folder sets.

  • feat (comfy_client.py): new ComfyClient.get_model_folders() hits
    GET /models (profile-aware, with /api/models fallback). Accepts both
    list and {folders: [...]} / {models: [...]} dict shapes that different
    ComfyUI wrappers return. Returns [] on error so callers can fall back.

  • feat (tools/models.py): comfy_list_model_folders now calls the live
    endpoint. Response includes source: "live" when the live list succeeded
    or source: "fallback" when the 16-folder static list was used. Fallback
    list covers: checkpoints, diffusion_models, unet, loras, vae, vae_approx,
    clip, text_encoders, clip_vision, controlnet, upscale_models, style_models,
    embeddings, hypernetworks, gligen, diffusers.

  • feat (tools/models.py): comfy_search_models searches EVERY discovered
    folder by default (not just 5). Empty query returns a full inventory.
    Response reports folders_source (live | fallback | caller) and
    folders_scanned so callers can see exactly where the search ran.

  • feat (tools/models.py): comfy_refresh_models refreshes per-folder and
    returns counts_by_folder plus total_models. Individual folder errors
    are captured in a dedicated errors list rather than aborting the whole
    refresh.

  • chore: tool count unchanged (73). Tests 533 -> 541 (+8 regression tests
    covering live-folder discovery, fallback paths, caller-supplied folders,
    per-folder refresh, and the client-level endpoint contract).

ComfyPilot v1.5.3 - code-review fixes + strict-confirm

20 Apr 08:25

Choose a tag to compare

[1.5.3] - 2026-04-20

Code-review fixes: builder / VRAM / capability / blueprint / batch + fail-closed option

  • P1 fix (builder.py): auto-detect now probes both diffusion_models/ and checkpoints/ folders. Modern families (Flux 2, Qwen, Wan 2.2, LTX-2, HunyuanVideo, Hunyuan3D) store weights under diffusion_models/ via UNETLoader; the old code only looked in checkpoints/ so installs with only diffusion_models/wan2.2-... fell back to SD 1.5 and then rejected txt2video. Resolution strategy: collect candidates from both folders, pick the first whose family supports the requested intent; fall back to any recognised family, then any available file.

  • P2 fix (vram_guard.py): check_vram used to copy vram_used_pct from devices[0] while aggregating status across all devices. On multi-GPU rigs that produced contradictory snapshots like status=critical with vram_used_pct=10.0. Now reports the max used_pct across devices so the top-level number matches the worst device (and the overall status).

  • P2 fix (comfy_client.py): probe_capabilities preserves /features dict payloads (ComfyUI v0.17+ returns {"progress_text": "binary", ...}), not just lists. Also resolves auth_method from "auto" to the actual choice ("bearer" / "x-api-key" / "none") so comfy://server/capabilities no longer underreports.

  • P2 fix (blueprints/store.py): blueprint name validation rejects \ (Windows path separator), null bytes, leading dots, and control characters in addition to / and ... Matters because the MCPB manifest advertises win32 support.

  • P3 fix (images.py): comfy_download_batch no longer downloads every full image body just to compute size. Now returns pure metadata (filename, subfolder, type, URL) by default. Pass include_size=True to opt into per-file size_bytes (still requires fetching). Individual size-fetch failures now surface as size_error rather than aborting the whole batch.

  • feat (safety/confirm.py): new COMFY_STRICT_CONFIRM=1 env var flips destructive-op confirmation to fail-closed. Default stays fail-open (backward compat with elicitation-unaware hosts). Strict mode blocks when no context, no ctx.elicit, or ctx.elicit raises - ensuring agents can't silently bypass confirmation on broken hosts.

  • chore: tool count unchanged (73). Tests 516 -> 533 (17 new regression tests covering every fix above).

ComfyPilot v1.5.2 - MCPB one-click install

20 Apr 08:07

Choose a tag to compare

[1.5.2] - 2026-04-20

MCPB one-click install for Claude Desktop + GitHub releases for every tag

  • feat: ships a ready-to-install .mcpb bundle (Anthropic's MCP Bundle format) - download comfypilot-v1.5.2.mcpb from the latest release and drag into Claude Desktop. Uses type: "uv" (manifest v0.4) so compiled deps like pydantic just work. User config (COMFY_URL, API key, dirs, etc.) renders as a GUI form.
  • feat: manifest.json at repo root (MCPB spec) + .mcpbignore to strip tests/docs/build artefacts from the bundle.
  • feat: README adds MCPB + GitHub-release badges; Quick Setup gains an "Option 1: MCPB (one-click)" section ahead of the dev-runtime and plugin paths.
  • chore: create retroactive GitHub releases for every tag back to v1.1.0 so the Claude Code plugin update surface actually fires. Previously only v1.0.0 had a release published; v1.1.0 through v1.5.1 existed as tags but never as releases.
  • chore: attach the .mcpb artefact to the v1.5.2 release as a downloadable asset.

ComfyPilot v1.5.1

20 Apr 08:07

Choose a tag to compare

[1.5.1] - 2026-04-20

Docs refresh: full audit, drift repair, badge row

  • audit: caught stale tool count (72 in 4 metadata files; actual is 73) - all fixed.
  • chore: mcp/manifest.json categories list now includes hub_search (14 -> 15 categories).
  • feat: README badge row beyond CI - Version, License (MIT), Python (3.10/3.11/3.12), MCP tools (73), MCP resources (5+3), Blueprints (9), Tests (516), MCP spec (2026-03-26), ComfyUI (v0.17+), Families (10), Transports (stdio / streamable-http).
  • feat: README gains Model Families table (distinctive nodes per family) and Transports section documenting --transport streamable-http launch.
  • docs: README Tool Map entry 11 now lists every intent including txt2video / img2video / image2_3d / txt2music.
  • docs: README MCP Resources section expanded to 5 fixed + 3 resource templates with URI patterns.
  • docs: README "What It Is Good At" mentions video, 3D, music, bundled blueprints, parameter sweeps, PNG round-trip, Mermaid, hub search.
  • docs: README Environment Variables is now a table and includes COMFY_SNAPSHOT_DIR + COMFY_BLUEPRINT_DIR.
  • docs: MANUAL.md rewritten. Accurate 73-tool reference (new sections: Blueprints, Viz+Ingest+Sweep, Hub Search, Structured Output, Elicitation, Transports, Model families). File structure diagram updated to current package layout. Architecture diagram reflects 13 subsystems. Snapshot persistence, atomic writes + manifests, Comfy Cloud example all documented.
  • docs: skills/comfypilot-core/SKILL.md refreshed - 73 tools, 15 categories, 5+3 resources, structured output note, model families table, elicitation docs.
  • chore: mcp/profiles/generic.json includes all 10 env vars.
  • chore: server.json gains COMFY_SNAPSHOT_DIR env var and broader keywords (sdxl, sd3.5, qwen-image, wan2.2, ltx-2, hunyuan3d, image-to-3d, music-generation, subgraph-blueprints, mcp, mcp-server).

ComfyPilot v1.5.0

20 Apr 08:07

Choose a tag to compare

[1.5.0] - 2026-04-20

Cloud WS probe, hub search, bundled blueprints for every family

  • feat: ComfyClient.probe_capabilities now actively probes the WebSocket endpoint with a 3s timeout instead of hardcoding ws_available=(profile==local). Cloud ComfyUI exposes wss://cloud.comfy.org/ws; that surface was being wrongly disabled. Headers (bearer / X-API-Key) flow through to the probe.
  • feat: comfy_search_hub tool - searches HuggingFace (/api/models) or CivitAI (/api/v1/models) for public models. Normalized hit shape: {source, id, name, url, downloads, tags, + source-specific extras}. Tool count: 73.
  • feat: bundled blueprint library grows from 1 -> 9 (one per supported family): flux2-txt2img, sd35-txt2img, sdxl-hires-fix, qwen-txt2img, wan22-txt2video, ltx2-txt2video, hunyuan-video-txt2video, hunyuan3d-image2_3d, acestep-txt2music. comfy_list_blueprints returns all of them.

ComfyPilot v1.4.0

20 Apr 08:07

Choose a tag to compare

[1.4.0] - 2026-04-20

Phase 2 Task 2: Full structured-output migration

Ten high-signal tools now return typed Pydantic models directly (FastMCP
auto-serializes). Agents get schema-introspectable JSON instead of opaque
strings. Each migration preserved the previous wire payload - no field
was lost in the shape change.

  • comfy_check_vram -> VRAMStatus (with per-device VRAMDeviceInfo)
  • comfy_list_models -> ModelList (pagination-aware)
  • comfy_list_techniques -> TechniqueList (with TechniqueEntry items)
  • comfy_list_snapshots -> SnapshotList (with SnapshotEntry items)
  • comfy_describe_dynamics -> DynamicsReport (flattened queue + events + jobs)
  • comfy_get_system_stats -> SystemStats (nested SystemInfo + GPUInfo list)
  • comfy_get_run_result -> RunResult (new model for history entries)
  • comfy_queue_prompt -> QueueAck (preserves prompt_id / queue_position / error / node_errors / auto_snapshot)
  • comfy_validate_workflow -> ValidationReport (5-pass structured results)
  • comfy_watch_progress -> WatchProgressFrame (status literal, numeric progress, elapsed_s)

This completes Phase 2 of the 2026 modernization roadmap. The remaining
deferred Phase 2 item (sampling-backed prompt expansion) still requires
Context.sample which is not yet in the installed FastMCP SDK.

ComfyPilot v1.3.1

20 Apr 08:07

Choose a tag to compare

[1.3.1] - 2026-04-20

Hotfix

  • fix(ci): use tomli backport for Python 3.10 compatibility (tomllib is 3.11+ stdlib). pyproject.toml claims support for 3.10+; tests now honor it.

ComfyPilot v1.3.0

20 Apr 08:07

Choose a tag to compare

[1.3.0] - 2026-04-20

Phase 3: Polish and Differentiation

  • feat: persistent snapshots via COMFY_SNAPSHOT_DIR env var. SnapshotManager now optionally persists to JSON on disk and reloads on restart. LRU eviction trims both memory and disk together.
  • feat: output routing emits sidecar manifests (filename.json) alongside each saved image with schema_version, prompt_id, seeds, model_refs, dimensions, timestamp, size_bytes. Writes are atomic (temp file + os.replace).
  • feat: comfy_send_to_disk, comfy_send_to_td, comfy_send_to_blender accept an optional prompt_id param that pulls seeds / model refs / dimensions from /history/{prompt_id} into the manifest.
  • feat: comfy_visualize_workflow renders an API-format workflow as Mermaid flowchart TD source. Arrows trace input links with names.
  • feat: comfy_import_workflow_from_png extracts embedded workflow JSON from ComfyUI-saved PNGs. Parses tEXt / zTXt / iTXt chunks using stdlib only (no Pillow dep). Prefers 'prompt' (API format) over 'workflow' (UI format).
  • feat: comfy_sweep enqueues N variants of a workflow with a single parameter varying. Returns prompt_ids plus a square-ish grid layout hint. Each prompt auto-registers with the job tracker.
  • chore: bump tool count 69 -> 72. Test count 460 -> 492.