comfyui-mcp 0.16.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +1 -0
  2. package/package.json +9 -1
  3. package/.beads/README.md +0 -81
  4. package/.beads/config.yaml +0 -54
  5. package/.beads/hooks/post-checkout +0 -24
  6. package/.beads/hooks/post-merge +0 -24
  7. package/.beads/hooks/pre-commit +0 -24
  8. package/.beads/hooks/pre-push +0 -24
  9. package/.beads/hooks/prepare-commit-msg +0 -24
  10. package/.beads/metadata.json +0 -7
  11. package/.codex/hooks.json +0 -15
  12. package/.dockerignore +0 -24
  13. package/.gitattributes +0 -4
  14. package/AGENTS.md +0 -84
  15. package/CHANGELOG.md +0 -755
  16. package/CLAUDE.md +0 -76
  17. package/CONTRIBUTING.md +0 -137
  18. package/Dockerfile +0 -61
  19. package/PACK-SPLIT-STATUS.md +0 -87
  20. package/ROADMAP.md +0 -135
  21. package/TODO.md +0 -75
  22. package/assets/controlnet_demo.png +0 -0
  23. package/assets/ideogram_demo.png +0 -0
  24. package/assets/ltx_sharp_demo.png +0 -0
  25. package/assets/ltx_t2v_demo.png +0 -0
  26. package/assets/qwen_edit_demo.png +0 -0
  27. package/assets/sample_woman.png +0 -0
  28. package/assets/sample_woman_video.mp4 +0 -0
  29. package/assets/wan_demo.png +0 -0
  30. package/assets/wan_sharp_demo.png +0 -0
  31. package/assets/wan_transparent_demo.png +0 -0
  32. package/assets/wan_v2v_demo.png +0 -0
  33. package/blog/comfyui-mcp-tdqs-case-study.md +0 -102
  34. package/design/embedded-agent-panel.md +0 -172
  35. package/design/remote-and-cloud-modes.md +0 -113
  36. package/glama.json +0 -6
  37. package/infra/cloudflare/README.md +0 -75
  38. package/infra/cloudflare/docs-proxy.js +0 -45
  39. package/infra/cloudflare/wrangler.jsonc +0 -19
  40. package/llms-install.md +0 -139
  41. package/model-settings.user.jsonc +0 -97
  42. package/scripts/check-model-urls.mjs +0 -160
  43. package/scripts/check-pack-models.mjs +0 -155
  44. package/scripts/gen-pack-installers.mjs +0 -151
  45. package/scripts/gen-tool-docs.ts +0 -363
  46. package/scripts/generation-stats.mjs +0 -136
  47. package/scripts/mock-panel.mjs +0 -156
  48. package/scripts/panel-sim.mjs +0 -56
  49. package/scripts/postinstall.mjs +0 -29
  50. package/scripts/probe-bridge.mjs +0 -39
  51. package/scripts/probe-models.mjs +0 -18
  52. package/scripts/slice-pipeline.mjs +0 -79
  53. package/scripts/test-agent.mjs +0 -313
  54. package/scripts/test-packs.sh +0 -87
  55. package/scripts/validate-manifests.mjs +0 -29
  56. package/scripts/verify-render.mjs +0 -103
  57. package/server.json +0 -21
  58. package/web/extensions/comfyui-mcp-agent-panel/README.md +0 -105
  59. package/web/extensions/comfyui-mcp-agent-panel/comfyui-mcp-agent-panel.js +0 -604
package/CHANGELOG.md DELETED
@@ -1,755 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to this project are documented here. This project adheres to
4
- [Semantic Versioning](https://semver.org/) and the format follows
5
- [Keep a Changelog](https://keepachangelog.com/).
6
-
7
- ## Unreleased
8
-
9
- ## [0.16.0] - 2026-06-19
10
-
11
- ### Added
12
-
13
- - **Conversation rewind (`forkSession`).** The orchestrator can fork the panel
14
- agent's session at a chosen turn anchor, dropping everything after it from the
15
- agent's memory — the backend for the panel's per-message rollback (code /
16
- conversation / both) and double-Esc rewind.
17
- - **Reorder queued messages.** A new `reorder` bridge frame lets the panel set the
18
- flush order of still-queued messages; the orchestrator stable-sorts its queue to
19
- match (a turn already in flight is untouched).
20
- - **Destructive-op confirmation (#46).** `panel_clear` and `panel_restart_comfyui`
21
- now pop a yes/no card in the panel and only act on an explicit "yes" (gated
22
- in-tool, since `canUseTool` is bypassed under `bypassPermissions`).
23
- - **Workflow layout tools + skill.** Graph reads now include node `pos`/`size` and
24
- subgraph I/O rail positions; new `panel_move_rail`, group create/edit,
25
- `panel_set_node_collapsed`, `panel_set_node_color`, and `panel_screenshot` (a
26
- visual verify loop) give the agent spatial control. Ships a `workflow-layout`
27
- skill (incl. the "expose inputs/outputs" rule).
28
- - **ComfyUI extra search-path config tools.** Added `list_extra_paths`,
29
- `add_extra_path`, and `remove_extra_path` to inspect and edit standalone
30
- `<ComfyUI>/extra_model_paths.yaml` or ComfyUI Desktop's app-data
31
- `extra_models_config.yaml`. Categories are generic ComfyUI search-path keys,
32
- so model folders (`checkpoints`, `loras`, `vae`, etc.) and `custom_nodes`
33
- entries can both be managed when supported by the running ComfyUI build.
34
- - **Queue payload inspection and pending-job edits.** `get_queue` can now include
35
- queued workflow payloads, `get_queued_workflow` returns one pending job's
36
- payload, and `move_queued_job` / `edit_queued_job` requeue pending jobs at the
37
- front/back with patched node inputs or a replacement workflow. Requeued jobs
38
- receive a new `prompt_id`; running jobs are still interrupt-only.
39
- - **Wan Blackwell (fp16) pack tiers.** Added `-96gb` siblings for i2v / v2v /
40
- transparent and `wan-longer-videos-t2v-96gb` for RTX PRO 6000 Blackwell.
41
-
42
- ### Fixed
43
-
44
- - **The panel agent never lingers as a zombie.** A wedged orchestrator used to stay
45
- alive but stop serving the bridge, so reloads — and even a full ComfyUI restart —
46
- reattached to a dead process ("the panel agent will no longer reconnect"). The
47
- bridge now exits on a post-startup server error, an `uncaughtException` exits
48
- instead of being swallowed, and Connect reclaims a lockfile-less orchestrator
49
- zombie that still holds the port.
50
- - **Rewind correctness** (post-review): reset the last-assistant anchor on each
51
- session (re)start so a fork can't report a stale pre-fork anchor; dropped a dead
52
- `text` parameter from the rewind path.
53
- - **Workflow converter robustness:** translate rgthree Power Lora Loader loras to
54
- `lora_N` inputs, detect `control_after_generate` on seed-named INT widgets,
55
- default invalid combo values, and drop type-mismatched links.
56
- - **Wan packs:** use the official lightx2v 4-step lightning loras (2+2 split),
57
- switch A14B unets Q8_0 → Q4_K_S for speed, ModelSamplingSD3 shift 8 → 5 to match
58
- the official Wan2.2 template, and VRAM-fit settings for 24GB cards.
59
-
60
- ## [0.15.0] - 2026-06-19
61
-
62
- ### Added
63
-
64
- - **Live-streaming panel chat.** The orchestrator streams extended-thinking and
65
- reply deltas to the sidebar (collapsible "see thinking" + typewriter reveal),
66
- with a live thinking-token counter.
67
- - **SDK slash commands in the composer.** The orchestrator probes
68
- `query.supportedCommands()` and surfaces the useful built-ins — `/compact`,
69
- `/context`, `/usage`, `/loop`, `/goal`, `/clear` — in the panel's `/` menu
70
- (the user's unrelated skills/plugins are filtered out).
71
- - **Subgraph authoring + canvas tools** — `panel_promote_widget` (expose/retract
72
- an inner subgraph widget on the parent node), plus the live-graph tool surface
73
- (subgraph enter/exit/create, node-title rename, workflow tabs, built-in Manager
74
- install→restart→resume).
75
- - **Live model-download progress** streamed to the panel's status tray; **loop
76
- mode** drives a `panel_set_todo` checklist to completion.
77
- - **Workflow-converter robustness** — a de-virtualization pre-pass (strips
78
- Get/Set + Reroute), subgraph→subgraph edge relink, top-level virtual
79
- `PrimitiveNode` resolution, V3 dynamic-combo recognition, default-fill of
80
- required inputs, and VHS object-form widgets. Packs render-verified: ideogram,
81
- z-image (turbo/base) ControlNets, qwen-image-edit, ltx-2.3.
82
-
83
- ### Changed
84
-
85
- - **Removed the legacy `--channels` mode entirely.** The panel runs only on the
86
- autonomous orchestrator (`--panel-orchestrator`, dedicated bridge **9180**).
87
- The `--channels` flag/env, the in-session `panel_*` tools (`panel_say`,
88
- `panel_inbox`, `panel_status`), and their docs are gone; the shared UI bridge
89
- stays. A stray session can no longer steal the panel's bridge port.
90
- - **Panel display name → "ComfyUI Agent Panel"** (registry slug
91
- `comfyui-agent-panel`); docs and the full `panel_*` tool reference updated.
92
-
93
- ### Fixed
94
-
95
- - **Pid-reuse-safe orchestrator kill.** The pack re-verifies a pid's identity
96
- (cmdline + recorded creation time) immediately before every terminate/kill, and
97
- records `pidStartedAt` in the lockfile — so a recycled pid can never be mistaken
98
- for the orchestrator and a user's unrelated process is never signalled.
99
- - **Race-free turn gate.** Replaced the resolver gate (which could deadlock and
100
- strand queued messages) with monotonic counters; serialized the input queue
101
- (one turn per batch, no SDK read-ahead) with true read-receipts.
102
- - **Installers** target the ComfyUI venv and resolve each custom node's
103
- `requirements.txt` after clone (was using system Python / skipping deps).
104
-
105
- ## [0.14.0] - 2026-06-17
106
-
107
- ### Added
108
-
109
- - **Autonomous panel orchestrator — drive the ComfyUI sidebar with a background
110
- agent on your Claude subscription (no API key).** `comfyui-mcp --panel-orchestrator`
111
- owns the loopback bridge and spawns one persistent Claude Agent SDK session per
112
- panel tab, so the sidebar works on its own and your interactive Claude session
113
- stays free. Agents authenticate via the on-disk Claude login (`apiKeySource=none`)
114
- and load the bundled plugin's skills, so they're ComfyUI experts out of the box.
115
- Replaces the unshippable `--sdk-url`/CCR-v2 path (guarded on current Claude
116
- Code). The panel pack auto-starts the orchestrator on ComfyUI load, and a
117
- parent-PID beacon shuts it down when ComfyUI exits. See
118
- `docs/blog/panel-agent-subscription`.
119
-
120
- - **`installer-packs` skill.** Teaches agents how to use, build, and derive
121
- packs (manifest → generated install scripts) and to **proactively invite users
122
- to contribute new packs upstream** — an issue/PR with `manifest.yaml` +
123
- `pack.yaml` + `workflow.json`, reviewed for safety and CI-validated on merge.
124
-
125
- - **`ai-toolkit-trainer` skill (renamed from `wan-lora-trainer`).** Generalized
126
- the ostris AI-Toolkit trainer skill to cover **Z-Image** (Turbo & Base, low-VRAM
127
- image LoRAs) alongside WAN 2.2 — Z-Image is single-stream (no hi/lo multi-stage),
128
- plus the V2 embedded-Python installer and the `No module named 'torchaudio'` fix.
129
-
130
- - **Eight more installer packs + a WAN LoRA-trainer skill.** New `packs/`: WAN
131
- (`wan-animate`, `wan-longer-videos`, `wan-transparent`), Qwen (`qwen-image`,
132
- `qwen-image-edit`) and Z-Image (`z-image-turbo`, `z-image-base`,
133
- `z-image-xy-plot`), plus `cozy-flow` (AI-influencer image+video, derived from
134
- its workflow with no upstream installer) — bringing the catalog to **13 packs**, each manifest-driven
135
- with generated `install-windows.bat` / `install-runpod.sh` and CI URL+size
136
- validation. New `wan-lora-trainer` skill (ostris AI-Toolkit) for training WAN
137
- 2.2 LoRAs. The LTX pack ships its kornia import fix as both `.bat` and `.sh`.
138
-
139
- - **Blog — "Installer packs that can't rot."** Why the packs are a single
140
- manifest driving both the double-click scripts and an MCP-native install, with
141
- CI that fails the build the moment a model link dies
142
- (`docs/blog/installer-packs-that-cant-rot`).
143
-
144
- - **Five new model-family skills.** `ideogram-ultra` (Ideogram 4 — open-weight
145
- text-to-image with area prompting, logos, posters, readable text),
146
- `ernie-image` (ERNIE-Image — fast text-to-image with precise multilingual text
147
- rendering, runs on <8GB VRAM), `anima-base` (ANIMA 1.0 — ~2B anime/illustration
148
- model, Danbooru tags + natural language, anime inpainting, <6GB VRAM), and
149
- `anima-lora-trainer` (kohya `sd-scripts` Gradio trainer for custom anime
150
- LoRAs). Each frontmatter `description` is tuned as an agent routing signal so
151
- Claude picks the right model per task (anime → ANIMA, typography/control →
152
- Ideogram, fast text-render → ERNIE, editing → Qwen-Edit, video → LTX).
153
-
154
- - **Installer packs (`packs/`) — manifest-driven, one-command ComfyUI setups.**
155
- Each pack (`anima`, `ideogram`, `ltx-2.3`, `ernie`) is a `manifest.yaml` (a
156
- pure `ComfyManifest` consumable by `apply_manifest`) plus `pack.yaml` metadata
157
- and the workflow, with cross-platform `install-windows.bat` /
158
- `install-runpod.sh` generated from the manifest by
159
- `scripts/gen-pack-installers.mjs` (`npm run packs:gen`). Validation tooling:
160
- `npm run packs:validate` (schema), `packs:test` (offline idempotency dry-run
161
- with `git`/`curl` stubbed), and `packs:check-urls` (HEAD/range check that every
162
- model URL resolves and its payload size is sane for the model type — no full
163
- downloads). A `.github/workflows/packs.yml` CI job runs all of these on
164
- `ubuntu-latest`.
165
-
166
- ### Changed
167
-
168
- - **Migrated to zod 4.** Lets the Claude Agent SDK be a clean optional
169
- dependency (its zod 4 peer is now satisfied); `gen-tool-docs` uses zod's native
170
- `toJSONSchema`, and tool schemas use the two-arg `z.record(key, value)` form.
171
-
172
- - **The plugin now ships in the npm package.** A stale `.npmignore` rule was
173
- excluding `plugin/` (skills, agents, commands, hooks); anchored those patterns
174
- to repo root so the bundled plugin is published — which is what lets the
175
- orchestrator's agents load skills and be experts out of the box.
176
-
177
- - **`ltxv2-video` skill upgraded to LTX-2.3.** GGUF UNet via `UnetLoaderGGUF`,
178
- separate video/audio VAEs + text-projection, the spatial upscaler and new
179
- LoRAs, the kornia 0.8.3+ import fix (`fix-ltxvideo-kornia.{bat,sh}`), and
180
- guidance for swapping in alternate / GGUF base models (incl. the community
181
- "sulphur" LTX-2.3 finetune).
182
-
183
- ### Fixed
184
-
185
- - **Windows dev: the full test suite is green.** Fixed 27 tests that assumed
186
- POSIX paths/commands (`/fake` separators, `which` vs `where`) — test-only
187
- changes; the product itself was already cross-platform.
188
-
189
- - **UI bridge survives fast `/mcp` reconnects.** The `--channels` WebSocket
190
- bridge now retries binding `127.0.0.1:9101` with exponential backoff
191
- (5 attempts, ~6s) when a previous session hasn't released the port yet,
192
- instead of failing with `-32000`. It logs "listening" only once truly bound,
193
- uses a cross-platform port-in-use hint, and clears the retry timer on `stop()`.
194
-
195
- ## [0.13.0] - 2026-06-15
196
-
197
- ### Added
198
-
199
- - **`generate_audio` tool — audio generation from text prompts.** Supports ACE Step 1.5 (music with lyrics/structure/ key/language) and Stable Audio 3 (music, instruments, SFX). Builds the appropriate workflow graph, auto-selects local models (`diffusion_models`, `vae`, `text_encoders`, `checkpoints`), and enqueues via the existing pipeline. Two new `create_workflow` templates: `ace_step_15` and `stable_audio_3`. Requires a ComfyUI build with built-in audio nodes (`EmptyLatentAudio`, `VAEDecodeAudio`, `SaveAudioMP3`, etc.) — included in ComfyUI ≥0.11.1. Now covered by a `generate-audio` smoke-test suite (graph construction + model auto-resolution + validation for both families) and the generated tool docs (89/89 tools documented).
200
-
201
- - **Plugin bundles the Civitai MCP — headless pairing.** `plugin/.mcp.json`
202
- now declares the official [Civitai MCP](https://mcp.civitai.com/mcp) remote
203
- server (streamable HTTP) alongside comfyui, so `/plugin install comfy`
204
- auto-wires `mcp__civitai__*` with no `claude mcp add` and no API key for
205
- browsing — the `Authorization` header defaults to an empty Bearer
206
- (`Bearer ${CIVITAI_API_TOKEN:-}`), which Civitai accepts for its read tools
207
- (verified: `tools/list` + `search_models` both work unauthenticated). Set
208
- `CIVITAI_API_TOKEN` to unlock gated downloads and account context — the same
209
- variable comfyui-mcp already uses for `download_civitai_model`.
210
-
211
- - **`requireLocalComfyUI()` guard in client.** New assertion that blocks tools
212
- needing local ComfyUI filesystem access when using `--comfyui-url` with a
213
- non-loopback host and when `COMFYUI_PATH` is unset.
214
-
215
- - **`RemoteModeError` error class.** Dedicated error type for operations that
216
- are incompatible with remote ComfyUI targets.
217
-
218
- - **Remote mode guard for install/start/stop/restart tools.** `install_comfyui`,
219
- `start_comfyui`, `stop_comfyui`, and `restart_comfyui` now throw a clear error
220
- when `--comfyui-url` points at a remote (non-loopback) host.
221
-
222
- _The `generate_audio` tool and the remote-mode guards / Windows test fixes in
223
- this release were contributed by [@x-yahya997](https://github.com/x-yahya997)
224
- (`x-yahya997/comfyui-mcp@c2ff7a9`, `@27e7f02`) — thank you._
225
-
226
- ### Fixed
227
-
228
- - **Warn when COMFYUI_URL and COMFYUI_PATH conflict.** Config now prints a
229
- warning to stderr when both variables are set simultaneously.
230
-
231
- - **process-control tests pass on Windows.** Port-detection mocks now handle
232
- both `netstat` (Windows) and `lsof` (Unix) commands, and the config mock
233
- exports `isRemoteMode`.
234
-
235
- ## [0.12.0] - 2026-06-13
236
-
237
- ### Fixed
238
-
239
- - **Panel messages now push into Claude Code for real.** The server now
240
- declares the experimental `claude/channel` capability and sends
241
- `notifications/claude/channel` with the host's expected
242
- `{ content, meta }` shape — previously the capability was missing and
243
- the params were a flat custom object, so Claude Code silently dropped
244
- every panel message and only `panel_inbox` polling worked.
245
-
246
- ### Added
247
-
248
- - **`civitai` plugin skill (16 skills total).** Pairs the official
249
- [Civitai MCP](https://mcp.civitai.com/mcp) with comfyui-mcp instead of
250
- proxying it: Claude discovers models on Civitai, hands the returned
251
- model-version id to `download_civitai_model`, and installs/wires/generates
252
- locally — falling back to HuggingFace search when the Civitai MCP isn't
253
- connected. The `comfy-researcher` agent now prefers Civitai discovery for
254
- model (not node-pack) requests when those tools are present. Docs gained a
255
- "Pairs with the official Civitai MCP" section.
256
- - **Multi-tab panel bridge.** Each ComfyUI browser tab now holds its own
257
- identified bridge connection — the panel sends a `hello` frame with a
258
- per-tab session id and the open workflow's title, `panel_status` lists
259
- every connected tab, and all graph tools accept an optional `tab_id`
260
- (full id or 8-char prefix). Routing default when omitted: the only
261
- connected tab → the tab the user most recently typed in → an error
262
- listing the tabs. `panel_say` broadcasts unless targeted; inbox entries
263
- and channel notifications carry which tab/workflow spoke. Previously a
264
- second tab silently stole the single connection.
265
- - **`panel_clear` tool** — remove every node from the open graph in one
266
- step; the whole wipe is a single Ctrl+Z undo (panel pack executes it
267
- inside one `beforeChange`/`afterChange` pair).
268
- - **Six more panel tools — full control of the open ComfyUI tab:**
269
- `panel_move_node`, `panel_canvas` (fit / center-on-node / pan / zoom),
270
- `panel_run` (queue the open workflow with live widget values),
271
- `panel_get_errors` (last execution error + node validation errors),
272
- `panel_save_workflow` (Ctrl+S or save-as/duplicate), and
273
- `panel_get_subgraph` (drill into a subgraph node). `panel_get_graph` now
274
- reports which graph the user is viewing and summarizes subgraph nodes
275
- shallowly (boundary slots + inner count). Panel user messages carry the
276
- opened subgraph in channel-event meta and inbox entries.
277
- - **Panel v0.3 (in progress, [comfyui-mcp-panel](https://github.com/artokun/comfyui-mcp-panel)):**
278
- native ComfyUI design-system restyle (PrimeVue semantic tokens, theme-
279
- tracking), activity cards for every agent graph edit, empty-state
280
- onboarding, "Claude is working…" typing indicator. Polished registry
281
- release **coming soon**.
282
-
283
- [0.13.0]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.13.0
284
- [0.12.0]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.12.0
285
-
286
- ## [0.11.1] - 2026-06-12
287
-
288
- ### Added
289
-
290
- - **`model-registry` plugin skill** — one curated table of download URLs +
291
- target `models/` subdirs for every model the skills reference (Flux, WAN,
292
- LTX, Qwen, Z-Image, shared VAEs/text-encoders), consolidating rows that
293
- were scattered across `model-settings.json` and individual skills. Grows
294
- each release. Plugin is now **15 skills**.
295
- - **Plugin ships channels mode by default** — `plugin/.mcp.json` now passes
296
- `--channels`, so plugin users get the panel bridge + `panel_*` tools
297
- automatically (pair with the
298
- [comfyui-mcp-panel](https://github.com/artokun/comfyui-mcp-panel) pack).
299
-
300
- ### Changed
301
-
302
- - **Discoverability:** README leads with "the Claude Code plugin for
303
- ComfyUI" and the real asset counts (88 tools / 15 skills / 11 commands /
304
- 4 agents / 4 hooks — previously undersold as 6 skills / 10 commands);
305
- corrected the plugin install command (`/plugin marketplace add` +
306
- `/plugin install comfy`); npm description + keywords expanded; GitHub
307
- repo topics added (both repos had zero); new docs page
308
- [`/plugin`](https://comfyui-mcp.artokun.io/docs/plugin) documenting the
309
- full skill/command/agent/hook surface.
310
-
311
- ## [0.11.0] - 2026-06-12
312
-
313
- ### Added
314
-
315
- - **Channels mode (`--channels`) — your own agent session drives the ComfyUI
316
- sidebar panel. No LLM API keys.** The server hosts a loopback WebSocket
317
- bridge (`COMFYUI_MCP_BRIDGE_PORT`, default 9101) that the
318
- [comfyui-mcp-panel](https://github.com/artokun/comfyui-mcp-panel) pack
319
- connects to, and registers nine `panel_*` MCP tools (`status`, `get_graph`,
320
- `add_node`, `remove_node`, `connect`, `disconnect`, `set_widget`, `say`,
321
- `inbox`). The agent — your existing Claude Code (or any MCP client) session,
322
- subscription-billed — edits the user's live graph through its MCP
323
- connection; every mutation is Ctrl+Z-undoable. Messages typed into the panel
324
- queue for `panel_inbox` and are pushed as `notifications/claude/channel`
325
- events on hosts that surface them. Bridge design (rid-correlated
326
- request/reply, loopback-only, last-writer-wins) ported from the author's
327
- node-lab project. New dependency: `ws`.
328
- - **Live graph edits for the agent panel** (superseded same-day by channels
329
- mode above, retained as the legacy API-key path). The experimental
330
- `/api/chat` backend declares six client-side `graph_*` tools that the
331
- sidebar panel executes against the user's open LiteGraph graph. The panel
332
- ships as the **comfyui-mcp-panel** pack (the manual drop-in under
333
- `web/extensions/` is deprecated and will be removed next minor). Epic B
334
- step 4, built on v1 LiteGraph shims instead of waiting for
335
- `@comfyorg/extension-api` v2.
336
-
337
- ## [0.10.1] - 2026-06-12
338
-
339
- ### Fixed
340
-
341
- - **Long jobs no longer killed at 10 minutes.** The job watcher's completion
342
- timeout was hardcoded to 10 minutes — a 15-minute LTX/WAN video render lost
343
- its completion notification mid-run. The timeout is now `COMFYUI_JOB_TIMEOUT_S`
344
- (default 1800 s = 30 min) and the poll cadence is
345
- `COMFYUI_JOB_POLL_INTERVAL_S` (default 2 s). Gap flagged by
346
- [josephoibrahim/comfy-cozy](https://github.com/josephoibrahim/comfy-cozy).
347
-
348
- ### Changed
349
-
350
- - **`/object_info` is now memoized for the life of the server process.**
351
- `validate_workflow`, dependency extraction, and `lock_workflow` each
352
- triggered a fresh 300–800 ms `/object_info` fetch; repeat validations now
353
- serve from cache (comfy-cozy reports the same change took their re-validate
354
- from ~7 s to ~0.5 s). The cache resets automatically on
355
- `stop_comfyui` / `restart_comfyui` (the only paths that change the node
356
- set), with in-flight coalescing on the first fetch. Cloud mode is
357
- unaffected. Idea from
358
- [josephoibrahim/comfy-cozy](https://github.com/josephoibrahim/comfy-cozy).
359
-
360
- ## [0.10.0] - 2026-06-11
361
-
362
- ### Added
363
-
364
- - **`lock_workflow` + `verify_workflow_lock`** — provenance sidecars for
365
- saved workflows. `lock_workflow` walks a workflow's model loaders
366
- (`CheckpointLoaderSimple`, `UNETLoader`, `VAELoader`, `LoraLoader`,
367
- `ControlNetLoader`, `CLIPLoader`/`DualCLIPLoader`, `UpscaleModelLoader`,
368
- …), SHA-256s every referenced model, records the git commit currently
369
- checked out for every custom node pack the workflow's `class_type`s
370
- resolve to, captures ComfyUI's reported version, and writes
371
- `<filename>.lock.json` next to the workflow in ComfyUI's user library.
372
- `verify_workflow_lock` re-computes the lock and surfaces structured drift
373
- (changed model SHA-256s, packs on different commits, ComfyUI version
374
- bumps). Local install required for v1 (SHA-256 needs file bytes;
375
- commits come from `custom_nodes/*/.git/HEAD`). Idea from
376
- [josephoibrahim/comfy-cozy](https://github.com/josephoibrahim/comfy-cozy).
377
- - **Resumable model downloads.** Big-model fetches (10–40 GB checkpoints over
378
- flaky connections to HuggingFace / CivitAI / S3) used to start from byte 0
379
- every retry. The download cache now writes to a deterministic
380
- `~/.comfyui-mcp/cache/.<hash>.<ext>.partial` file, sends `Range: bytes=N-`
381
- on the next attempt, appends on `206 Partial Content`, and falls back
382
- cleanly to a full overwrite when the server replies `200` (Range
383
- unsupported). Idea from
384
- [josephoibrahim/comfy-cozy](https://github.com/josephoibrahim/comfy-cozy).
385
-
386
- ### Fixed
387
-
388
- - **`list_local_models` now sees `extra_model_paths.yaml` redirects + works
389
- remotely.** The tool previously did only a filesystem scan of
390
- `${COMFYUI_PATH}/models/`, so models the user had pointed at via
391
- `extra_model_paths.yaml` (symlinked to a shared drive, mounted from a NAS,
392
- etc.) were invisible — a common setup for serious rigs. It also threw
393
- `ModelError: COMFYUI_PATH is not configured` against remote/cloud
394
- ComfyUI. We now query ComfyUI's `/models/<dir>` REST endpoint first
395
- (which reports what's actually available to workflows), fall back to the
396
- filesystem scan only when the HTTP path yields nothing, and return an
397
- empty list rather than throwing when neither is available. Size and
398
- modified time are only populated when the filesystem path is taken.
399
- Originally contributed by [@joaolvivas](https://github.com/joaolvivas) in
400
- [`joaolvivas/comfyui-mcp-byjlucas@e2ae39c8`](https://github.com/joaolvivas/comfyui-mcp-byjlucas/commit/e2ae39c8).
401
-
402
- ## [0.9.5] - 2026-06-11
403
-
404
- Interoperability + paperwork.
405
-
406
- ### Added
407
-
408
- - **MIT `LICENSE` file** at the repo root — `package.json` and the npm registry
409
- have always declared MIT, but the file itself was absent and downstream
410
- paperwork checks flagged it. Reported by
411
- [@ductiletoaster](https://github.com/ductiletoaster) in
412
- [#27](https://github.com/artokun/comfyui-mcp/issues/27).
413
-
414
- ### Fixed
415
-
416
- - **Federation timeouts on `resources/list` / `prompts/list`** — federating
417
- clients (LiteLLM, etc.) probe every standard list endpoint on `initialize`
418
- fan-out regardless of advertised capabilities. We don't expose resources or
419
- prompts today, so those calls hit the SDK's default "Method not found" path
420
- and each downstream paid a per-server timeout (~30 s default). We now
421
- declare both capabilities and answer with empty lists from
422
- `resources/list`, `resources/templates/list`, and `prompts/list`. No
423
- behavioral change for clients that only use `tools/*`. Reported by
424
- [@ductiletoaster](https://github.com/ductiletoaster) in
425
- [#29](https://github.com/artokun/comfyui-mcp/issues/29).
426
-
427
- ## [0.9.4] - 2026-06-03
428
-
429
- ### Fixed
430
-
431
- - **TS2742 portability error on pnpm builds (e.g. Glama)** — `tsc` previously
432
- failed to emit `dist/experimental/provider-registry.d.ts` under pnpm because
433
- the inferred return type of `getRegistry()` referenced a transitive type from
434
- `@ai-sdk/provider`, whose pnpm store path (`.pnpm/@ai-sdk+provider@…`) TS
435
- considers non-portable. We're a CLI/executable, not a library, so declaration
436
- emission was useless overhead — disabled `declaration` + `declarationMap` in
437
- `tsconfig.json`. `dist/` now contains only `.js` + `.js.map`; builds pass
438
- under both `npm` and `pnpm`.
439
-
440
- ## [0.9.3] - 2026-06-01
441
-
442
- ### Added
443
-
444
- - **`llms-install.md`** — agent-focused install guide at the repo root, what
445
- Cline and similar agents read preferentially over `README.md` when setting up
446
- the MCP server. Covers the Node ≥ 22 prerequisite, the three deployment modes
447
- (local/remote/Comfy Cloud), Claude Code / Cline / Cursor settings recipes,
448
- optional env vars, verification, and common issues.
449
- - **400×400 marketplace logo** at `docs/logo/mcpmarket-icon-400.png` for the
450
- Cline MCP Marketplace listing.
451
-
452
- ## [0.9.2] - 2026-06-01
453
-
454
- ### Fixed
455
-
456
- - **Docker build hang on rate-limited CI (e.g. Glama)** — `npm ci` in the
457
- Dockerfile no longer runs the `cloudflared` postinstall, which fetches a
458
- ~40 MB binary from GitHub releases over an `https.get()` call with no
459
- timeout. On networks where GitHub rate-limits (or otherwise stalls)
460
- unauthenticated requests, that fetch hung indefinitely and blocked image
461
- builds. Install scripts are now skipped with `--ignore-scripts` and the
462
- two native deps we actually need (`better-sqlite3`, `sharp`) are rebuilt
463
- explicitly. The runtime tunnel helper already downloads the cloudflared
464
- binary lazily on first use, so no functionality is lost.
465
-
466
- ## [0.9.1] - 2026-06-01
467
-
468
- ### Added
469
-
470
- - **`get_job_status` cloud-mode coverage** — when `COMFYUI_API_KEY` is set,
471
- `get_job_status` now dispatches to `cloud-client.getJobStatus` (which calls
472
- `/api/job/<id>/status`) and maps the cloud
473
- `{ pending | in_progress | completed | failed }` shape to the existing
474
- local `JobStatus`. Completed jobs are still enriched from history when
475
- available; failed jobs surface the cloud's error string via
476
- `error.exception_message`. Closes part of `comfyui-mcp-eik`.
477
-
478
- ### Changed
479
-
480
- - Refined the `CLOUD_UNSUPPORTED` error message surfaced by tools that need
481
- a direct ComfyUI session (workflow library, memory management, etc.). The
482
- message no longer leaks the internal `getClient` function name and clearly
483
- tells the user to unset `COMFYUI_API_KEY` to target a local or remote
484
- ComfyUI.
485
- - **Upgraded vitest to ^4.1.0** (dev-only). Clears
486
- [GHSA-5xrq-8626-4rwp](https://github.com/advisories/GHSA-5xrq-8626-4rwp)
487
- (Vitest UI server arbitrary file read/exec). Test infrastructure tweaks:
488
- S3 mock now uses a `function` declaration (vitest 4 invokes mocked
489
- constructors via `new`) and manager-config fallback tests call
490
- `vi.clearAllMocks()` explicitly (vitest 4's `restoreAllMocks` no longer
491
- resets `.mock.calls`). Closes `comfyui-mcp-g6e`.
492
-
493
- ## [0.9.0] - 2026-06-01
494
-
495
- Three deployment modes, slimmer install footprint, and first-class
496
- [Comfy Cloud](https://cloud.comfy.org) support — built from a survey of
497
- forks and a port of the cloud-dispatch architecture from
498
- [@picoSols](https://github.com/picoSols)'s `comfyui-cloud-mcp` fork.
499
-
500
- ### Added
501
-
502
- - **Comfy Cloud mode** — set `COMFYUI_API_KEY` to route HTTP-backed primitives
503
- (enqueue, history, system stats, queue, view, upload) to `cloud.comfy.org`
504
- with `X-API-Key` authentication. WebSocket-bound and local-FS/process
505
- tools throw a clear `CLOUD_UNSUPPORTED` error in this mode. New
506
- `src/comfyui/cloud-client.ts` mirrors the local client interface so the
507
- rest of the server is transparent to which backend it's talking to.
508
- Architecture and dispatcher pattern originally shipped by
509
- [@picoSols](https://github.com/picoSols) in
510
- [`picoSols/comfyui-cloud-mcp@7a812069`](https://github.com/picoSols/comfyui-cloud-mcp/commit/7a812069).
511
- - **Explicit remote mode + smart-detect** — when `--comfyui-url` points at a
512
- non-loopback host (anything other than `127.0.0.1` / `localhost` / `::1` /
513
- `0.0.0.0`), the server skips `COMFYUI_PATH` auto-detection. This closes
514
- the root cause behind the 0.8.1 `upload_*` fix — a stale local install can
515
- no longer silently absorb uploads/downloads the agent intended for the
516
- remote target. An explicit `COMFYUI_PATH` env var still wins.
517
- - **`isCloudMode()` / `isRemoteMode()` / `isLocalMode()`** config helpers and
518
- `COMFYUI_CLOUD_URL` (defaults to `https://cloud.comfy.org`).
519
-
520
- ### Changed
521
-
522
- - **Slim install** — moved seven heavy/feature-gated packages out of
523
- `dependencies` into `optionalDependencies` and dynamic-import them lazily
524
- via a new `requireOptionalDep` helper:
525
- `@aws-sdk/client-s3`, `@azure/storage-blob`, `cloudflared`,
526
- `ai`, `@ai-sdk/anthropic`, `@ai-sdk/google`, `@ai-sdk/openai`. A
527
- `npm install --no-optional comfyui-mcp` now yields a working core server;
528
- features that need a missing optional dep surface a clear
529
- `OPTIONAL_DEP_MISSING` error with the exact `npm install <pkg>` hint.
530
-
531
- ### Documentation
532
-
533
- - New "Deployment modes" section in `docs/configuration.mdx` covering the
534
- local / remote / cloud feature parity matrix and the `COMFYUI_API_KEY` /
535
- `COMFYUI_CLOUD_URL` env vars.
536
-
537
- ## [0.8.1] - 2026-06-01
538
-
539
- Bug-fix release picking up upstream contributions from
540
- [@joaolvivas](https://github.com/joaolvivas)'s fork of comfyui-mcp.
541
-
542
- ### Added
543
-
544
- - **`health_check`** — single-call pre-flight diagnostic that reports
545
- ComfyUI/Python/PyTorch versions, GPU + VRAM, queue depth, per-category
546
- `/models` populations (catches empty-dropdown surprises from a
547
- misconfigured `extra_model_paths.yaml`), and recent errors from
548
- `/internal/logs`. Read-only. Useful before a long batch or when triaging an
549
- unexplained failure. Originally contributed by
550
- [@joaolvivas](https://github.com/joaolvivas) in
551
- [`joaolvivas/comfyui-mcp-byjlucas@de82ecda`](https://github.com/joaolvivas/comfyui-mcp-byjlucas/commit/de82ecda).
552
-
553
- ### Fixed
554
-
555
- - **`search_custom_nodes`** — `api.comfy.org/nodes` accepts a `search` query
556
- parameter but ignores it server-side, returning the same paginated default
557
- list regardless of query. We now fetch a larger window (limit=100) and
558
- rank-filter client-side by id / name / author / description with a
559
- popularity boost, so query-relevant packs actually appear. Diagnosed and
560
- patched by [@joaolvivas](https://github.com/joaolvivas) in
561
- [`joaolvivas/comfyui-mcp-byjlucas@f066b597`](https://github.com/joaolvivas/comfyui-mcp-byjlucas/commit/f066b597);
562
- port adds a guard so popularity no longer inflates non-matching packs.
563
- - **`upload_image` / `upload_video` / `upload_audio`** — HTTP-only.
564
- Previously these tools fell back to a local filesystem copy if HTTP upload
565
- failed and `COMFYUI_PATH` was set. When `COMFYUI_PATH` was auto-detected to
566
- an unrelated install (common for users targeting a remote `--comfyui-url`),
567
- the fallback wrote the file to the wrong tree and reported success, while
568
- the remote ComfyUI never received it — the next `LoadImage` then failed
569
- mysteriously. Now HTTP-only against the connected ComfyUI's
570
- `/upload/image` endpoint, which works for both local and remote. Diagnosed
571
- and patched by [@joaolvivas](https://github.com/joaolvivas) in
572
- [`joaolvivas/comfyui-mcp-byjlucas@089180ad`](https://github.com/joaolvivas/comfyui-mcp-byjlucas/commit/089180ad).
573
-
574
- ## [0.8.0] - 2026-05-26
575
-
576
- Completes the custom-node authoring lifecycle, adds cloud storage I/O and
577
- declarative setup, and adds node discovery — all built and reviewed in a
578
- codex implement→review→fix loop.
579
-
580
- ### Added
581
-
582
- - **`apply_manifest`** — declarative environment setup from an inline object or
583
- a JSON/YAML manifest: `pip` packages, `custom_nodes` (registry ids or git URLs
584
- with `@ref`), and `models`. Idempotent, per-item structured report; `apt`
585
- entries are accepted but skipped (manual/root). Local-only.
586
- - **`verify_custom_node`** — the "test" step of the author loop: restarts ComfyUI
587
- (with a bounded readiness wait) and confirms a pack's `NODE_CLASS_MAPPINGS`
588
- class_types registered in `/object_info` (a failed import simply never appears).
589
- - **`scaffold_custom_node`** now also emits `.comfyignore`/`.gitignore` and, with
590
- `with_ci`, a `.github/workflows/publish_action.yml` (Comfy-Org/publish-node-action).
591
- - **`convert_image`** — re-encode a generated image (by `asset_id` or output-dir
592
- path) to PNG/JPEG/WebP via `sharp`; returns inline base64 + optional file write
593
- (output-dir confined), and reports bytes saved.
594
- - **Cloud storage** — model downloads may be `s3://` or Azure Blob URLs
595
- (`download_model` gains `s3` auth); new **`upload_output`** pushes a generated
596
- output to S3 / Azure / HTTP / Hugging Face and returns URL(s).
597
- - **`download_model` `auth`** — per-request `bearer`/`basic`/`header`/`query`
598
- authentication for gated/private hosts (carried over and extended).
599
- - **`comfy-researcher` agent** — turns a problem statement into ranked custom-node
600
- pack recommendations (searches the Registry, evaluates, delegates deep dives to
601
- `comfy-explorer`).
602
- - **Cached `generate_node_skill`** — read-through cache keyed by source@version
603
- (`COMFYUI_SKILL_CACHE_DIR`; `refresh` to bypass), so repeat analyses are instant.
604
-
605
- ### Security
606
-
607
- - `apply_manifest` rejects pip argv-option injection; realpath/symlink-safe path
608
- containment for manifest model paths, `convert_image`, and upload sources;
609
- `convert_image` caps source size + sharp pixels.
610
- - Cloud storage: Azure SAS / AWS presigned secrets redacted from logs/errors;
611
- Azure URL-vs-env account mismatch rejected; HF-CLI remote-path argv hardening;
612
- manual redirect handling (no cross-origin auth replay or upload-redirect SSRF).
613
-
614
- ### Fixed
615
-
616
- - `generate_node_skill` cache resolves the current pack version before lookup
617
- (no stale docs served after a pack updates) and writes atomically (temp +
618
- rename with a content-hash check).
619
-
620
- ### Dependencies
621
-
622
- - Added `yaml` (manifest parsing), `sharp` (image conversion), `@aws-sdk/client-s3`
623
- and `@azure/storage-blob` (cloud storage). `npm audit`: 0 high vulnerabilities.
624
-
625
- ## [0.7.0] - 2026-05-25
626
-
627
- Stability + authoring release: hardens model downloads and the ComfyUI process
628
- lifecycle, makes failures actionable, and adds a custom-node authoring/publishing
629
- lifecycle. Plus a hosted docs site and an experimental embedded-agent backend.
630
-
631
- ### Added
632
-
633
- - **Custom-node authoring** — `scaffold_custom_node` (generate a Python node pack
634
- from a template) and `publish_custom_node` (publish to the Comfy Registry via
635
- comfy-cli; key via `REGISTRY_ACCESS_TOKEN`, never logged) (#24).
636
- - **`install_custom_node` ref pinning** — pin a pack to a commit/branch/tag, parsed
637
- from GitHub/GitLab/Bitbucket URLs or `repo@ref`, or an explicit `ref` arg.
638
- - **`download_model` auth** — per-request `bearer` / `basic` / `header` / `query`
639
- authentication for gated/private model hosts.
640
- - **Model download cache** — content-addressed dedup, concurrent-download coalescing,
641
- and optional LRU eviction (`COMFYUI_DOWNLOAD_CACHE_DIR`, `COMFYUI_LRU_CACHE_SIZE_GB`).
642
- - **ComfyUI process supervision** — bounded startup readiness checks
643
- (`COMFYUI_STARTUP_CHECK_INTERVAL_S`/`_MAX_TRIES`) and opt-in bounded
644
- auto-restart-on-crash (`COMFYUI_ALWAYS_RESTART`, `COMFYUI_RESTART_MAX_ATTEMPTS`,
645
- `COMFYUI_RESTART_WINDOW_S`).
646
- - **Plugin skills** — `comfyui-frontend-extensions` (v2 `@comfyorg/extension-api`
647
- authoring + v1→v2 migration) and `comfyui-node-registry` (node authoring/publishing).
648
- - **Hosted docs** — Mintlify site with a schema-generated tool reference at
649
- [comfyui-mcp.artokun.io/docs](https://comfyui-mcp.artokun.io/docs).
650
-
651
- ### Changed
652
-
653
- - **`get_job_status` + completion notifications** now surface ComfyUI
654
- `execution_error` detail (node id/type, exception type/message, truncated traceback,
655
- `current_inputs`, OOM flag) and optional per-node + total execution timing.
656
- Additive and backward-compatible.
657
-
658
- ### Security
659
-
660
- - `download_model` auth inputs are validated (reject CR/LF/control chars; HTTP-token
661
- header names); query-auth secrets are redacted from logs and error details.
662
- - `install_custom_node` git refs are validated and run via `git checkout
663
- --end-of-options <ref>`, closing an argv-option-injection vector.
664
- - Spawned ComfyUI children now have `error` listeners so a missing/failed executable
665
- can't crash the MCP server.
666
-
667
- ### Experimental
668
-
669
- - **Embedded-agent backend POC** (flag-gated via `COMFYUI_MCP_AGENT_POC`): a cloudflared
670
- quick-tunnel helper + an AI SDK `/api/chat` endpoint with bearer auth, a request body
671
- cap, and a server-side model allowlist. Not part of default startup. See
672
- `design/embedded-agent-panel.md` and `ROADMAP.md`.
673
-
674
- ### Dependencies
675
-
676
- - Added `ai` + `@ai-sdk/anthropic`/`openai`/`google` + `cloudflared` (experimental POC)
677
- and declared `zod-to-json-schema` (docs generation). `npm audit`: 0 high vulnerabilities.
678
-
679
- ## [0.6.1] - 2026-05-25
680
-
681
- ### Added
682
-
683
- - **Media upload** — `upload_video` and `upload_audio` copy local video/audio
684
- files into ComfyUI's input directory so they can be referenced as workflow
685
- inputs, mirroring the existing `upload_image` (closes #12).
686
-
687
- ## [0.6.0] - 2026-05-25
688
-
689
- A large feature release that ports much of the [`comfy-cli`](https://github.com/Comfy-Org/comfy-cli)
690
- workflow into MCP tools. New tools operate on the connected ComfyUI (local or a
691
- remote `--comfyui-url` target), preferring the ComfyUI-Manager HTTP API with a
692
- subprocess fallback where the API can't do the job.
693
-
694
- ### Added — comfy-cli capability port
695
-
696
- - **Custom-node management** — `install_custom_node`, `update_custom_node`,
697
- `reinstall_custom_node`, `fix_custom_node`, `list_installed_nodes`,
698
- `sync_node_dependencies` (#15)
699
- - **Node snapshots** — `save_node_snapshot`, `restore_node_snapshot`,
700
- `list_node_snapshots`; honors comfy-cli's `.json`/`.yaml` snapshot contract (#13)
701
- - **Node bisect** — `bisect_start`, `bisect_good`, `bisect_bad`, `bisect_reset`,
702
- `bisect_status` to isolate a faulty custom node; never re-enables packs you had
703
- disabled before the session (#14)
704
- - **Workflow dependencies** — `extract_workflow_dependencies`,
705
- `install_workflow_dependencies` (handles API- and UI-format workflows) (#16)
706
- - **Install ComfyUI** — `install_comfyui`: clones ComfyUI (+ ComfyUI-Manager) and
707
- installs requirements into a dedicated workspace virtualenv (#17)
708
- - **Update** — `update_comfyui` (core) and `update_all` (all custom nodes) (#18)
709
- - **Models** — `remove_model` (path-safe) and `download_civitai_model` (#19)
710
- - **Workspace & environment** — `get_workspace`, `set_default_workspace`,
711
- `list_workspaces`, `get_environment` (#20)
712
- - **API / partner nodes** — `list_api_nodes`, `get_api_node_schema`,
713
- `generate_with_api_node` (#21)
714
- - **ComfyUI-Manager configuration** — `configure_manager` (#22)
715
-
716
- ### Changed
717
-
718
- - Rewrote tool descriptions and parameter docs across the core tool set for
719
- clearer purpose, usage guidance, and behavioral transparency — improving agent
720
- tool-selection quality (#23).
721
- - Added a `Dockerfile`, `.dockerignore`, `glama.json`, and Glama quality badges
722
- for the [glama.ai](https://glama.ai) listing.
723
-
724
- ### Security
725
-
726
- - CivitAI authentication is now sent as an `Authorization: Bearer` header instead
727
- of a `?token=` query parameter, so the API token no longer leaks into logs,
728
- errors, or redirect URLs. Model-download filenames are validated to stay within
729
- the models directory (closes a path-traversal hole shared with `download_model`) (#19).
730
- - `COMFY_API_KEY` is delivered to API nodes via the `/prompt` `extra_data` payload
731
- rather than being placed in the workflow (#21).
732
-
733
- ### Notes
734
-
735
- - Local-management tools (install/update ComfyUI, custom-node installs, model
736
- removal) require a local install (`COMFYUI_PATH`) and return a clear error when
737
- targeting a remote instance where the operation cannot apply.
738
-
739
- Earlier releases predate this changelog.
740
-
741
- [0.11.1]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.11.1
742
- [0.11.0]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.11.0
743
- [0.10.1]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.10.1
744
- [0.10.0]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.10.0
745
- [0.9.5]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.9.5
746
- [0.9.4]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.9.4
747
- [0.9.3]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.9.3
748
- [0.9.2]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.9.2
749
- [0.9.1]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.9.1
750
- [0.9.0]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.9.0
751
- [0.8.1]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.8.1
752
- [0.8.0]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.8.0
753
- [0.7.0]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.7.0
754
- [0.6.1]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.6.1
755
- [0.6.0]: https://github.com/artokun/comfyui-mcp/releases/tag/v0.6.0