comfyui-mcp 0.52.118 → 0.52.119

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 (151) hide show
  1. package/README.md +110 -110
  2. package/dist/comfyui/client.js +4 -3
  3. package/dist/comfyui/client.js.map +1 -1
  4. package/dist/comfyui/cloud-client.js.map +1 -1
  5. package/dist/orchestrator/agent-backend.js.map +1 -1
  6. package/dist/orchestrator/ai-proposer.js.map +1 -1
  7. package/dist/orchestrator/antigravity-backend.js +0 -1
  8. package/dist/orchestrator/antigravity-backend.js.map +1 -1
  9. package/dist/orchestrator/claude-backend.js +10 -9
  10. package/dist/orchestrator/claude-backend.js.map +1 -1
  11. package/dist/orchestrator/index.js +46 -17
  12. package/dist/orchestrator/index.js.map +1 -1
  13. package/dist/orchestrator/ollama-backend.js +3 -0
  14. package/dist/orchestrator/ollama-backend.js.map +1 -1
  15. package/dist/orchestrator/panel-agent.js.map +1 -1
  16. package/dist/orchestrator/panel-tools.js +51 -30
  17. package/dist/orchestrator/panel-tools.js.map +1 -1
  18. package/dist/orchestrator/pi-backend.js +0 -1
  19. package/dist/orchestrator/pi-backend.js.map +1 -1
  20. package/dist/services/api-nodes.js +1 -1
  21. package/dist/services/api-nodes.js.map +1 -1
  22. package/dist/services/generate-audio.js +1 -2
  23. package/dist/services/generate-audio.js.map +1 -1
  24. package/dist/services/generate-conditioned.js.map +1 -1
  25. package/dist/services/generate-image.js +1 -2
  26. package/dist/services/generate-image.js.map +1 -1
  27. package/dist/services/generate-video.js +1 -2
  28. package/dist/services/generate-video.js.map +1 -1
  29. package/dist/services/health-check.js +1 -1
  30. package/dist/services/health-check.js.map +1 -1
  31. package/dist/services/local-vram.js +29 -0
  32. package/dist/services/local-vram.js.map +1 -1
  33. package/dist/services/lora-catalog.js +2 -2
  34. package/dist/services/lora-catalog.js.map +1 -1
  35. package/dist/services/node-management.js +4 -2
  36. package/dist/services/node-management.js.map +1 -1
  37. package/dist/services/panel-secrets.js +0 -1
  38. package/dist/services/panel-secrets.js.map +1 -1
  39. package/dist/services/process-control.js.map +1 -1
  40. package/dist/services/remove-background.js +1 -2
  41. package/dist/services/remove-background.js.map +1 -1
  42. package/dist/services/storage/http.js +1 -1
  43. package/dist/services/storage/http.js.map +1 -1
  44. package/dist/services/test-isolation-guard.js.map +1 -1
  45. package/dist/services/workflow-converter.js +2 -0
  46. package/dist/services/workflow-converter.js.map +1 -1
  47. package/dist/services/workflow-lock.js +2 -3
  48. package/dist/services/workflow-lock.js.map +1 -1
  49. package/dist/services/workflow-slicer.js +1 -1
  50. package/dist/services/workflow-slicer.js.map +1 -1
  51. package/dist/tools/catalog.js +6 -4
  52. package/dist/tools/catalog.js.map +1 -1
  53. package/dist/tools/compact.js +3 -0
  54. package/dist/tools/compact.js.map +1 -1
  55. package/dist/tools/index.js +1 -0
  56. package/dist/tools/index.js.map +1 -1
  57. package/dist/tools/missing-models.js +1 -1
  58. package/dist/tools/missing-models.js.map +1 -1
  59. package/dist/tools/retired-redirect.js +5 -1
  60. package/dist/tools/retired-redirect.js.map +1 -1
  61. package/dist/tools/tool-surface-filter.js +1 -22
  62. package/dist/tools/tool-surface-filter.js.map +1 -1
  63. package/dist/tools/workflow-library.js.map +1 -1
  64. package/locales/ar/main.json +1 -0
  65. package/locales/en/main.json +1 -0
  66. package/locales/es/main.json +1 -0
  67. package/locales/fa/main.json +1 -0
  68. package/locales/fr/main.json +1 -0
  69. package/locales/ja/main.json +1 -0
  70. package/locales/ko/main.json +1 -0
  71. package/locales/pt-BR/main.json +1 -0
  72. package/locales/ru/main.json +1 -0
  73. package/locales/tr/main.json +1 -0
  74. package/locales/zh/main.json +1 -0
  75. package/locales/zh-TW/main.json +1 -0
  76. package/package.json +1 -1
  77. package/plugin/agents/debugger.md +5 -5
  78. package/plugin/agents/explorer.md +9 -9
  79. package/plugin/agents/optimizer.md +11 -11
  80. package/plugin/agents/researcher.md +4 -4
  81. package/plugin/commands/batch.md +16 -16
  82. package/plugin/commands/compare.md +8 -8
  83. package/plugin/commands/convert.md +9 -9
  84. package/plugin/commands/debug.md +8 -8
  85. package/plugin/commands/director.md +15 -15
  86. package/plugin/commands/gallery.md +3 -3
  87. package/plugin/commands/gen.md +6 -6
  88. package/plugin/commands/install.md +5 -5
  89. package/plugin/commands/node-skill.md +1 -1
  90. package/plugin/commands/recipe.md +27 -27
  91. package/plugin/commands/viz.md +3 -3
  92. package/plugin/skills/ai-toolkit-trainer/SKILL.md +42 -42
  93. package/plugin/skills/anima-base/SKILL.md +33 -33
  94. package/plugin/skills/anima-lora-trainer/SKILL.md +25 -25
  95. package/plugin/skills/civitai/SKILL.md +26 -26
  96. package/plugin/skills/color-correction/SKILL.md +51 -51
  97. package/plugin/skills/comfyui-core/SKILL.md +62 -62
  98. package/plugin/skills/comfyui-core/references/common-nodes.md +7 -7
  99. package/plugin/skills/comfyui-frontend-extensions/SKILL.md +34 -34
  100. package/plugin/skills/comfyui-frontend-extensions/references/migrate-v1-to-v2.md +10 -10
  101. package/plugin/skills/comfyui-launch-flags/SKILL.md +39 -39
  102. package/plugin/skills/comfyui-node-registry/SKILL.md +26 -26
  103. package/plugin/skills/debug-render/SKILL.md +44 -44
  104. package/plugin/skills/director/SKILL.md +45 -45
  105. package/plugin/skills/ernie-image/SKILL.md +49 -50
  106. package/plugin/skills/flux-txt2img/SKILL.md +23 -23
  107. package/plugin/skills/report-bug/SKILL.md +137 -130
  108. package/plugin/skills/train-character-lora/SKILL.md +39 -38
  109. package/plugin/skills/triton-sageattention/SKILL.md +110 -109
  110. package/plugin/skills/troubleshooting/SKILL.md +84 -84
  111. package/plugin/skills/video-extend/SKILL.md +141 -140
  112. package/plugin/skills/video-extend/references/chaining.md +19 -19
  113. package/plugin/skills/video-upscale/SKILL.md +109 -108
  114. package/plugin/skills/wan-flf-video/SKILL.md +54 -54
  115. package/plugin/skills/wan-flf-video/references/workflows.md +1 -1
  116. package/plugin/skills/wan-multitalk/SKILL.md +22 -22
  117. package/plugin/skills/wan-scail-replacement/SKILL.md +24 -24
  118. package/plugin/skills/wan-t2v-video/SKILL.md +24 -24
  119. package/plugin/skills/workflow-layout/SKILL.md +55 -55
  120. package/plugin/skills/z-image-txt2img/SKILL.md +25 -25
  121. package/scripts/gen-tool-docs.ts +2 -2
  122. package/dist/i18n/catalogs.test.js +0 -208
  123. package/dist/i18n/catalogs.test.js.map +0 -1
  124. package/dist/i18n/i18n.test.js +0 -117
  125. package/dist/i18n/i18n.test.js.map +0 -1
  126. package/dist/orchestrator/codex-error.test.js +0 -71
  127. package/dist/orchestrator/codex-error.test.js.map +0 -1
  128. package/dist/orchestrator/error-text.test.js +0 -221
  129. package/dist/orchestrator/error-text.test.js.map +0 -1
  130. package/dist/orchestrator/oauth-bridge.test.js +0 -129
  131. package/dist/orchestrator/oauth-bridge.test.js.map +0 -1
  132. package/dist/orchestrator/queue-note.test.js +0 -74
  133. package/dist/orchestrator/queue-note.test.js.map +0 -1
  134. package/dist/services/a2ui-spec.test.js +0 -174
  135. package/dist/services/a2ui-spec.test.js.map +0 -1
  136. package/dist/services/code-provider-auth-redact.test.js +0 -83
  137. package/dist/services/code-provider-auth-redact.test.js.map +0 -1
  138. package/dist/services/oauth-flow.test.js +0 -179
  139. package/dist/services/oauth-flow.test.js.map +0 -1
  140. package/dist/services/oauth-landing.test.js +0 -45
  141. package/dist/services/oauth-landing.test.js.map +0 -1
  142. package/dist/services/queue-monitor.poll.test.js +0 -267
  143. package/dist/services/queue-monitor.poll.test.js.map +0 -1
  144. package/dist/services/queue-monitor.self-attribution.test.js +0 -132
  145. package/dist/services/queue-monitor.self-attribution.test.js.map +0 -1
  146. package/dist/services/queue-monitor.stall.test.js +0 -163
  147. package/dist/services/queue-monitor.stall.test.js.map +0 -1
  148. package/dist/services/queue-status-broadcast.test.js +0 -226
  149. package/dist/services/queue-status-broadcast.test.js.map +0 -1
  150. package/dist/tools/report-issue.test.js +0 -592
  151. package/dist/tools/report-issue.test.js.map +0 -1
package/README.md CHANGED
@@ -3,17 +3,17 @@
3
3
  <p align="center">
4
4
  <a href="https://comfyui-mcp.artokun.io/docs">
5
5
  <img src="docs/images/demo-poster.jpg" width="760"
6
- alt="The Agent panel driving ComfyUI end to end click to watch the demo">
6
+ alt="The Agent panel driving ComfyUI end to end. Click to watch the demo">
7
7
  </a>
8
8
  </p>
9
9
 
10
10
  <p align="center">
11
- <em>The Agent panel driving ComfyUI end to end reading what is installed locally,
12
- wiring the graph, freeing VRAM, and running the render.<br>
11
+ <em>The Agent panel driving ComfyUI end to end. It reads what is installed locally,
12
+ wires the graph, frees VRAM, and runs the render.<br>
13
13
  <a href="https://comfyui-mcp.artokun.io/docs">Watch the 76s demo &rarr;</a></em>
14
14
  </p>
15
15
 
16
- **The local-first, agent-native control plane for [ComfyUI](https://github.com/comfyanonymous/ComfyUI)** an MCP server + live sidebar agent that generates images, video and audio, authors and runs workflows, manages models and custom nodes, and **edits your live ComfyUI graph in natural language**. Bring whatever model you have: **Claude or ChatGPT on your subscription, Gemini on your Google login, a free local model via Ollama (fully offline), or any hosted model over one API key** (DeepSeek, GLM, MiMo, Kimi, GPT, Claude via OpenRouter). Same tools, same panel, every tier and the built-in [LLM Arena](https://comfyui-mcp.artokun.io/docs/arena) scores them all on real ComfyUI tasks so you know exactly what your model can do. One config targets local installs, LAN, VPS, or Comfy Cloud.
16
+ **The local-first, agent-native control plane for [ComfyUI](https://github.com/comfyanonymous/ComfyUI).** An MCP server plus a live sidebar agent that generates images, video and audio, authors and runs workflows, manages models and custom nodes, and **edits your live ComfyUI graph in natural language**. Bring whatever model you have: **Claude or ChatGPT on your subscription, Gemini on your Google login, a free local model via Ollama (fully offline), or any hosted model over one API key** (DeepSeek, GLM, MiMo, Kimi, GPT, Claude via OpenRouter). The tools and the panel are the same on every tier, and the built-in [LLM Arena](https://comfyui-mcp.artokun.io/docs/arena) scores each model on real ComfyUI tasks so you know what yours can do. One config targets local installs, LAN, VPS, or Comfy Cloud.
17
17
 
18
18
  [![npm version](https://img.shields.io/npm/v/comfyui-mcp)](https://www.npmjs.com/package/comfyui-mcp)
19
19
  [![Node.js](https://img.shields.io/badge/node-%3E%3D22.0.0-brightgreen)](https://nodejs.org)
@@ -23,21 +23,21 @@
23
23
  [![comfyui-mcp MCP server](https://glama.ai/mcp/servers/artokun/comfyui-mcp/badges/card.svg)](https://glama.ai/mcp/servers/artokun/comfyui-mcp)
24
24
  [![comfyui-mcp MCP server](https://glama.ai/mcp/servers/artokun/comfyui-mcp/badges/score.svg)](https://glama.ai/mcp/servers/artokun/comfyui-mcp)
25
25
 
26
- [![Deploy on RunPod](https://img.shields.io/badge/Deploy_on-RunPod-673AB7?style=for-the-badge)](https://console.runpod.io/deploy?template=bnqtkvcer3&ref=dkx71w9b) [![Join the Discord](https://img.shields.io/badge/Discord-Join_%26_get_help-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/cW9arBhzCu) &nbsp;**One-click GPU pod** a ready-to-run ComfyUI with this project + [Agent Panel](https://github.com/artokun/comfyui-mcp-panel) + ComfyUI-Manager v2 preinstalled, on your own GPU. No setup.
26
+ [![Deploy on RunPod](https://img.shields.io/badge/Deploy_on-RunPod-673AB7?style=for-the-badge)](https://console.runpod.io/deploy?template=bnqtkvcer3&ref=dkx71w9b) [![Join the Discord](https://img.shields.io/badge/Discord-Join_%26_get_help-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/cW9arBhzCu) &nbsp;**One-click GPU pod.** A ready-to-run ComfyUI with this project + [Agent Panel](https://github.com/artokun/comfyui-mcp-panel) + ComfyUI-Manager v2 preinstalled, on your own GPU. No setup.
27
27
 
28
- Works on **macOS**, **Linux**, and **Windows**. Auto-detects your ComfyUI installation and port.
28
+ Works on macOS, Linux, and Windows. Auto-detects your ComfyUI installation and port.
29
29
 
30
- **Stuck or have a question? [Join the Discord](https://discord.gg/cW9arBhzCu)** help, model tips, and release announcements.
30
+ **Stuck or have a question? [Join the Discord](https://discord.gg/cW9arBhzCu)** for help, model tips, and release announcements.
31
31
 
32
32
  **38 MCP tools** | **41 AI skills** (Flux · WAN · LTX 2.3 video · MiniMax H3 · Qwen · Z-Image · Ideogram 4 · ERNIE · ANIMA · model registry · Civitai · node authoring · launch/perf flags) | **56 installer packs** | **11 slash commands** | **4 autonomous agents** | **3 hooks**
33
33
 
34
- The plugin ships **expert skills that grow with every release** model-specific generation guides with curated download URLs, workflow recipes, troubleshooting, and custom-node authoring so Claude knows the right sampler, CFG, resolution, and model files for each architecture without trial and error.
34
+ The plugin ships skills that grow with every release: model-specific generation guides with curated download URLs, workflow recipes, troubleshooting, and custom-node authoring. With them, Claude knows the right sampler, CFG, resolution, and model files for each architecture without trial and error.
35
35
 
36
- > ### Now available: the [ComfyUI Agent Panel](https://registry.comfy.org/nodes/comfyui-agent-panel) on ComfyUI-Manager & the Comfy Registry
37
- > An autonomous AI agent in your ComfyUI sidebar **on Claude, ChatGPT, Gemini, or ANY local/hosted LLM** (Ollama and every OpenAI-compatible endpoint). Subscriptions work with no API key; local models work with no account at all. Pick a provider and it drives your live graph: edits, spatial layout, one-shot workflow/pack loads, rewind/rollback, a pending-message tray, activity cards, multi-tab and it asks before spending paid API credits.
38
- > Search **`comfyui-agent-panel`** in ComfyUI-Manager to install. [Read more →](https://comfyui-mcp.artokun.io/docs/panel)
36
+ > ### Now available: the [ComfyUI Agent Panel](https://registry.comfy.org/nodes/comfyui-agent-panel) on ComfyUI-Manager & the Comfy Registry
37
+ > An autonomous AI agent in your ComfyUI sidebar, running **on Claude, ChatGPT, Gemini, or ANY local/hosted LLM** (Ollama and every OpenAI-compatible endpoint). Subscriptions work with no API key; local models work with no account at all. Pick a provider and it drives your live graph: edits, spatial layout, one-shot workflow/pack loads, rewind/rollback, a pending-message tray, activity cards, multi-tab. It asks before spending paid API credits.
38
+ > Search `comfyui-agent-panel` in ComfyUI-Manager to install. [Read more →](https://comfyui-mcp.artokun.io/docs/panel)
39
39
 
40
- 📖 **Full documentation: [comfyui-mcp.artokun.io/docs](https://comfyui-mcp.artokun.io/docs)**
40
+ **Full documentation: [comfyui-mcp.artokun.io/docs](https://comfyui-mcp.artokun.io/docs)**
41
41
 
42
42
  ---
43
43
 
@@ -69,25 +69,25 @@ The plugin ships **expert skills that grow with every release** — model-specif
69
69
 
70
70
  Claude will find (or download) a checkpoint, build a workflow, execute it, and return the image.
71
71
 
72
- > **Note**: This runs as a standalone MCP server no need to clone this repo. `npx` will download and run it automatically.
72
+ > **Note**: This runs as a standalone MCP server, so there is no need to clone this repo. `npx` downloads and runs it.
73
73
 
74
74
  ### Scope: local, remote, or Comfy Cloud
75
75
 
76
- `comfyui-mcp` is **local-first**: a self-hosted ComfyUI on Mac/Linux/Windows is the primary target, with the same agent reaching remote installs (RunPod, VPS, LAN, reverse-proxied) from one config. Local-first, not local-only.
76
+ `comfyui-mcp` is **local-first**. A self-hosted ComfyUI on Mac/Linux/Windows is the primary target, and the same agent reaches remote installs (RunPod, VPS, LAN, reverse-proxied) from one config. Local-first, not local-only.
77
77
 
78
- **More than a bridge.** Most ComfyUI MCP servers are thin connectors they forward a prompt and hand back an image. `comfyui-mcp` is a full control plane: it authors and edits the graph node-by-node, runs and iterates on workflows, manages models and custom nodes, and ships model-specific expertise (samplers, CFG, resolutions, curated model URLs) so the agent gets it right without trial and error. If you want a minimal local relay, a lightweight server is fine; if you want an agent that actually *operates* ComfyUI, that's this project.
78
+ **More than a bridge.** Most ComfyUI MCP servers are thin connectors. They forward a prompt and hand back an image. `comfyui-mcp` is a full control plane. It authors and edits the graph node by node, runs and iterates on workflows, manages models and custom nodes, and ships model-specific expertise (samplers, CFG, resolutions, curated model URLs) so the agent gets it right without trial and error. If you want a minimal local relay, a lightweight server is fine. If you want an agent that *operates* ComfyUI, that's this project.
79
79
 
80
- For **Comfy Cloud** users, Comfy-Org ships its own [agent tooling](https://docs.comfy.org/agent-tools): **Comfy Cloud MCP** (public beta, hosted on Comfy Cloud GPUs), the **Comfy In-App Agent** (private alpha, inside Comfy Cloud), and a first-party **Comfy Local MCP** (private test, not publicly available yet) all maintained by the Comfy team. If you don't have a GPU or you want zero setup, that's the better path; go use it.
80
+ For Comfy Cloud users, Comfy-Org ships its own [agent tooling](https://docs.comfy.org/agent-tools): Comfy Cloud MCP (public beta, hosted on Comfy Cloud GPUs), the Comfy In-App Agent (private alpha, inside Comfy Cloud), and a first-party Comfy Local MCP (private test, not publicly available yet), all maintained by the Comfy team. If you don't have a GPU or you want zero setup, that's the better path; go use it.
81
81
 
82
- Where this project differs is that it runs on **your** install and **your** choice of model including a free local one via Ollama with no account and no network at all. `comfyui-mcp` *also* includes a community cloud-mode (set `COMFYUI_API_KEY` see [Deployment modes](#deployment-modes)) so a single MCP can target all three deployment shapes from one config.
82
+ Where this project differs is that it runs on **your** install and **your** choice of model, including a free local one via Ollama with no account and no network at all. `comfyui-mcp` *also* includes a community cloud mode (set `COMFYUI_API_KEY`, see [Deployment modes](#deployment-modes)) so a single MCP can target all three deployment shapes from one config.
83
83
 
84
- 📊 **[Local vs. Comfy Cloud agent](https://comfyui-mcp.artokun.io/docs/local-vs-comfy-cloud)** an honest side-by-side, including when Comfy Cloud is the right answer. *(Statuses above are as of July 2026; Comfy-Org ships fast check their docs for the current state.)*
84
+ **[Local vs. Comfy Cloud agent](https://comfyui-mcp.artokun.io/docs/local-vs-comfy-cloud)** is a side-by-side comparison, including when Comfy Cloud is the right answer. *(Statuses above are as of July 2026. Comfy-Org ships fast, so check their docs for the current state.)*
85
85
 
86
86
  ### Remote / hosted connector (one command)
87
87
 
88
- Want to use `comfyui-mcp` from **Claude Desktop's Custom Connectors** or any remote
89
- client like Comfy's own `cloud.comfy.org/mcp` connector? Run it as an
90
- authenticated, publicly-reachable Streamable-HTTP server with one flag:
88
+ To use `comfyui-mcp` from Claude Desktop's Custom Connectors or any remote
89
+ client, like Comfy's own `cloud.comfy.org/mcp` connector, run it as an
90
+ authenticated, publicly reachable Streamable-HTTP server with one flag:
91
91
 
92
92
  ```bash
93
93
  npx -y comfyui-mcp@latest --tunnel
@@ -96,20 +96,20 @@ npx -y comfyui-mcp@latest --tunnel
96
96
  This forces the HTTP transport, generates an auth token, opens a
97
97
  [cloudflared](https://github.com/cloudflare/cloudflared) quick tunnel, and prints
98
98
  a ready-to-paste `https://…/mcp` URL + token + Claude Desktop connector snippet.
99
- Auth accepts `Authorization: Bearer <token>` **or** `X-API-Key: <token>` (matching
99
+ Auth accepts `Authorization: Bearer <token>` or `X-API-Key: <token>` (matching
100
100
  Comfy Cloud's convention). See the
101
101
  [Remote / hosted connector guide](https://comfyui-mcp.artokun.io/docs/remote-connector)
102
102
  for the full walkthrough and headless usage.
103
103
 
104
- > Auth is opt-in: with no `COMFYUI_MCP_HTTP_TOKEN` set and no `--tunnel`, the
105
- > default stdio (and plain `--http` on loopback) behavior is unchanged open and
104
+ > Auth is opt-in. With no `COMFYUI_MCP_HTTP_TOKEN` set and no `--tunnel`, the
105
+ > default stdio (and plain `--http` on loopback) behavior is unchanged. It stays open and
106
106
  > local. OAuth (Comfy's browser sign-in flow) is a planned follow-up.
107
107
 
108
108
  ---
109
109
 
110
110
  ## Claude Code Plugin
111
111
 
112
- This package also ships as a **Claude Code plugin**, providing slash commands, skills, agents, and hooks on top of the MCP tools.
112
+ This package also ships as a Claude Code plugin that adds slash commands, skills, agents, and hooks on top of the MCP tools.
113
113
 
114
114
  ### Install as a plugin
115
115
 
@@ -136,9 +136,9 @@ This package also ships as a **Claude Code plugin**, providing slash commands, s
136
136
 
137
137
  ### Built-in skills
138
138
 
139
- 41 skills total model-family guides (Flux, WAN, LTX 2.3, MiniMax H3, Qwen, Z-Image, Ideogram 4, ERNIE, ANIMA + anime / WAN / Z-Image LoRA training), the **model-registry** (curated download URLs), the **civitai** pairing skill, node authoring, the **launch/performance-flags** matrix, and the core four below. Full list on the [plugin docs page](https://comfyui-mcp.artokun.io/docs/plugin).
139
+ 41 skills total: model-family guides (Flux, WAN, LTX 2.3, MiniMax H3, Qwen, Z-Image, Ideogram 4, ERNIE, ANIMA + anime / WAN / Z-Image LoRA training), the **model-registry** (curated download URLs), the **civitai** pairing skill, node authoring, the **launch/performance-flags** matrix, and the core four below. Full list on the [plugin docs page](https://comfyui-mcp.artokun.io/docs/plugin).
140
140
 
141
- > **Installer packs.** [`packs/`](packs/) bundles 13 one-command ComfyUI setups ANIMA, Ideogram 4, LTX-2.3, ERNIE, WAN (animate / longer-videos / transparent), Qwen (image / image-edit), Z-Image (turbo / base / xy-plot) and artokun-flow (WAN Animate replace / animate). Each is a manifest of custom nodes + model URLs + workflow that drives both `apply_manifest` and generated `install-windows.bat` / `install-runpod.sh`, with CI that validates every model link + payload size. See [`packs/README.md`](packs/README.md).
141
+ > **Installer packs.** [`packs/`](packs/) bundles 13 one-command ComfyUI setups: ANIMA, Ideogram 4, LTX-2.3, ERNIE, WAN (animate / longer-videos / transparent), Qwen (image / image-edit), Z-Image (turbo / base / xy-plot) and artokun-flow (WAN Animate: replace / animate). Each is a manifest of custom nodes + model URLs + workflow that drives both `apply_manifest` and generated `install-windows.bat` / `install-runpod.sh`, with CI that validates every model link + payload size. See [`packs/README.md`](packs/README.md).
142
142
 
143
143
  | Skill | Description |
144
144
  |-------|-------------|
@@ -151,7 +151,7 @@ This package also ships as a **Claude Code plugin**, providing slash commands, s
151
151
 
152
152
  | Agent | Model | Description |
153
153
  |-------|-------|-------------|
154
- | **comfy-explorer** | Sonnet | Researches custom node packs — reads docs, queries `/object_info`, generates comprehensive skill files |
154
+ | **comfy-explorer** | Sonnet | Researches custom node packs — reads docs, queries `/object_info`, generates skill files |
155
155
  | **comfy-debugger** | Sonnet | Autonomously diagnoses workflow failures — gathers logs + history, identifies failing node, checks models + custom nodes, proposes and optionally applies fixes |
156
156
  | **comfy-optimizer** | Sonnet | Analyzes workflows for performance — detects redundant nodes, VRAM waste, wrong CFG/steps for model family, precision issues, suggests optimizations |
157
157
  | **comfy-researcher** | Sonnet | Discovers and ranks ComfyUI custom node packs for a stated image-generation problem |
@@ -174,10 +174,10 @@ This package also ships as a **Claude Code plugin**, providing slash commands, s
174
174
 
175
175
  ## Panel agent (Claude · ChatGPT · Gemini · any local/hosted LLM)
176
176
 
177
- Beyond the headless MCP server, this package ships the **panel orchestrator** that
178
- powers the **[ComfyUI Agent Panel](https://github.com/artokun/comfyui-mcp-panel)** —
177
+ Beyond the headless MCP server, this package ships the panel orchestrator that
178
+ powers the [ComfyUI Agent Panel](https://github.com/artokun/comfyui-mcp-panel),
179
179
  an autonomous agent embedded in ComfyUI's sidebar that drives the live canvas. It
180
- runs in the background on **your own subscription** (Claude *or* ChatGPT), started
180
+ runs in the background on your own subscription (Claude *or* ChatGPT), started
181
181
  on demand by the panel's **Connect** button:
182
182
 
183
183
  ```bash
@@ -186,61 +186,61 @@ npx -y comfyui-mcp@latest connect
186
186
 
187
187
  ### Drive a REMOTE ComfyUI from your own machine (`connect`)
188
188
 
189
- When ComfyUI runs somewhere with **no Node/agent** (a RunPod pod, a cloud box) you
190
- can still run the agent on **your** machine and drive that remote ComfyUI no
191
- agent login on the box, nothing to install or configure remotely:
189
+ When ComfyUI runs somewhere with no Node or agent (a RunPod pod, a cloud box) you
190
+ can still run the agent on your machine and drive that remote ComfyUI. There is no
191
+ agent login on the box and nothing to install or configure remotely:
192
192
 
193
193
  ```bash
194
194
  npx -y comfyui-mcp@latest connect https://abcd1234-3000.proxy.runpod.net
195
195
  ```
196
196
 
197
- This is sugar for `--panel-orchestrator` with `COMFYUI_URL` set from the URL: the
197
+ This is sugar for `--panel-orchestrator` with `COMFYUI_URL` set from the URL. The
198
198
  orchestrator runs locally on your Claude/ChatGPT login and reaches the remote
199
- ComfyUI over its public proxy URL. For a **remote HTTPS pod**, `connect`
200
- automatically opens a secure, token-gated **`wss://` tunnel** (via Cloudflare) to
201
- the local agent bridge and hands the pod's panel that URL so the pod's HTTPS page
202
- reaches your machine with **no browser prompt, in any browser** (a secure page
203
- can't open a plain `ws://` socket to your box mixed content / Private Network
204
- Access). A **local** ComfyUI uses the plain `ws://127.0.0.1:9199` loopback bridge;
205
- add **`--insecure-bridge`** to force that loopback for a remote pod (then arrange
206
- your own path to it, e.g. an SSH port-forward). Either way the panel JS runs in
207
- **your local browser** and the agent and your login run only on **your**
199
+ ComfyUI over its public proxy URL. For a remote HTTPS pod, `connect`
200
+ opens a token-gated `wss://` tunnel (via Cloudflare) to
201
+ the local agent bridge and hands the pod's panel that URL, so the pod's HTTPS page
202
+ reaches your machine with no browser prompt, in any browser. A secure page
203
+ can't open a plain `ws://` socket to your box because of mixed-content and Private Network
204
+ Access rules. A local ComfyUI uses the plain `ws://127.0.0.1:9199` loopback bridge.
205
+ Add `--insecure-bridge` to force that loopback for a remote pod, then arrange
206
+ your own path to it, e.g. an SSH port-forward. Either way the panel JS runs in
207
+ your local browser, and the agent and your login run only on your
208
208
  machine, so nothing is installed remotely.
209
209
 
210
- To finish: with `connect` still running on your machine, open the remote ComfyUI in
211
- your browser and click **Connect** in the Agent panel. (The panel is a pure-frontend
212
- extension it links to the bridge your `connect` process is already serving, rather
213
- than asking the ComfyUI host to spawn an orchestrator it cannot run.)
210
+ To finish, with `connect` still running on your machine, open the remote ComfyUI in
211
+ your browser and click **Connect** in the Agent panel. The panel is a pure-frontend
212
+ extension. It links to the bridge your `connect` process is already serving, rather
213
+ than asking the ComfyUI host to spawn an orchestrator it cannot run.
214
214
 
215
215
  **Multi-provider, full parity.** The orchestrator depends on a provider-neutral
216
- **`AgentBackend`** port (dependency injection), with two adapters:
216
+ `AgentBackend` port (dependency injection), with two adapters:
217
217
 
218
- - **`ClaudeBackend`** the [Claude Agent SDK](https://www.npmjs.com/package/@anthropic-ai/claude-agent-sdk)
218
+ - `ClaudeBackend` wraps the [Claude Agent SDK](https://www.npmjs.com/package/@anthropic-ai/claude-agent-sdk)
219
219
  (`@anthropic-ai/claude-agent-sdk`), a persistent streaming session over the
220
220
  claude.ai subscription (OAuth, no key).
221
- - **`CodexBackend`** OpenAI Codex over the **`codex app-server`** JSON-RPC
221
+ - `CodexBackend` wraps OpenAI Codex over the `codex app-server` JSON-RPC
222
222
  protocol (`@openai/codex`), on the ChatGPT subscription (`codex login`, no key).
223
223
 
224
- Further adapters follow the same port Gemini CLI (ACP), **Antigravity
225
- (`agy`, the Google AI Pro/Ultra subscription path install from
224
+ Further adapters follow the same port: Gemini CLI (ACP), Antigravity
225
+ (`agy`, the Google AI Pro/Ultra subscription path; install from
226
226
  [antigravity.google](https://antigravity.google) and run `agy` once to sign
227
- in)**, Grok, Kimi, GLM, Ollama/LM Studio/llama.cpp (local), OpenRouter, and
227
+ in), Grok, Kimi, GLM, Ollama/LM Studio/llama.cpp (local), OpenRouter, and
228
228
  any OpenAI-compatible endpoint. See
229
229
  [docs/backends](https://comfyui-mcp.artokun.io/docs/backends) for the full
230
230
  matrix.
231
231
 
232
- Both are optional dependencies, and the panel picks a **provider, not a port** —
233
- each backend runs its own orchestrator on its own loopback bridge port. A
234
- capability matrix lets the panel degrade gracefully (e.g. conversation-rollback is
232
+ Both are optional dependencies, and the panel picks a provider, not a port.
233
+ Each backend runs its own orchestrator on its own loopback bridge port. A
234
+ capability matrix tells the panel which features each backend supports (e.g. conversation-rollback is
235
235
  Claude-only today, since the Codex app-server resumes whole threads only).
236
236
 
237
237
  **The live-canvas tools and model knowledge are identical across providers.** The
238
- `panel_*` tool definitions live in **one shared list**, registered onto both the
238
+ `panel_*` tool definitions live in one shared list, registered onto both the
239
239
  in-process Claude SDK MCP server *and* a `@modelcontextprotocol/sdk` server over a
240
- loopback **streamable-HTTP MCP** that the orchestrator hosts for Codex (which can
240
+ loopback streamable-HTTP MCP that the orchestrator hosts for Codex (which can
241
241
  only host config-declared MCP servers). The headless `comfyui` MCP is likewise
242
- injected into both in-process for Claude, declared via `codex app-server -c
243
- mcp_servers` for ChatGPT so generation, models, and workflow tools are the same
242
+ injected into both, in-process for Claude and declared via `codex app-server -c
243
+ mcp_servers` for ChatGPT, so generation, models, and workflow tools are the same
244
244
  everywhere.
245
245
 
246
246
  New tools that give every backend the same expertise and a cost guardrail:
@@ -255,9 +255,9 @@ New tools that give every backend the same expertise and a cost guardrail:
255
255
  | `panel_load_workflow` | (panel tool) Load a full workflow onto the live canvas in one shot — by bundled `pack` name (read server-side, never shuttled through chat) or by graph JSON |
256
256
  | `panel_strip_workflow` / `panel_slice_workflow` | (panel tools) De-virtualize a tangled graph (Get/Set buses, Reroutes, subgraphs, bypass → real connections) or carve one rgthree-toggled pipeline out of a monolith — by `pack`, server-side `path`, or inline graph; for understanding/rebuilding expert workflows without hand-tracing |
257
257
 
258
- See the design doc — **[design/agent-backend-injection.md](design/agent-backend-injection.md)** —
258
+ See the design doc, [design/agent-backend-injection.md](design/agent-backend-injection.md),
259
259
  for the port, the capability matrix, and the per-provider "clink" points, and the
260
- **[panel docs](https://comfyui-mcp.artokun.io/docs/panel)** for the full sidebar UX.
260
+ [panel docs](https://comfyui-mcp.artokun.io/docs/panel) for the full sidebar UX.
261
261
 
262
262
  ---
263
263
 
@@ -359,7 +359,7 @@ for the port, the capability matrix, and the per-provider "clink" points, and th
359
359
 
360
360
  ### Official comfy-cli
361
361
 
362
- Install [comfy-cli](https://docs.comfy.org/comfy-cli/getting-started#install-cli) 1.11.1 or newer to enable the official JSON-backed tools. The MCP resolves `comfy` from `COMFY_CLI_PATH`, `PATH`, or the selected workspace's `.venv`/`venv`. Local custom-node operations prefer `comfy node` when a supported CLI is available and otherwise fall back to Manager HTTP; remote targets retain Manager HTTP.
362
+ Install [comfy-cli](https://docs.comfy.org/comfy-cli/getting-started#install-cli) 1.11.1 or newer to enable the official JSON-backed tools. The MCP resolves `comfy` from `COMFY_CLI_PATH`, `PATH`, or the selected workspace's `.venv`/`venv`. Local custom-node operations prefer `comfy node` when a supported CLI is available and otherwise fall back to Manager HTTP; remote targets keep using Manager HTTP.
363
363
 
364
364
  | Tool | Description |
365
365
  |------|-------------|
@@ -389,7 +389,7 @@ Install [comfy-cli](https://docs.comfy.org/comfy-cli/getting-started#install-cli
389
389
  | `get_history` `action: "suggest"` | Suggest proven sampler/scheduler/steps/CFG settings from local generation history — query by model family, LoRA hash, or text search |
390
390
  | `get_history` `action: "stats"` | Show local generation tracking statistics — total runs, unique combos, breakdown by model family |
391
391
 
392
- Every `enqueue_workflow` call automatically logs settings to a local SQLite database (`generations.db`). Same settings combos get a `reuse_count` bump instead of duplicates, creating a natural popularity signal. Models and LoRAs are identified by content hash (AutoV2 / SHA256), not filenames so renamed files still group together.
392
+ Every `enqueue_workflow` call logs settings to a local SQLite database (`generations.db`). Repeated settings combos get a `reuse_count` bump instead of a duplicate row, so the count works as a popularity signal. The tracker identifies models and LoRAs by content hash (AutoV2 / SHA256), not filename, so renamed files still group together.
393
393
 
394
394
  ```bash
395
395
  # View local stats from the CLI
@@ -443,7 +443,7 @@ flowchart LR
443
443
  > /comfy:debug
444
444
  ```
445
445
 
446
- Automatically reads the last execution history and logs, identifies the failing node, checks for missing models or node packs, and suggests a fix.
446
+ Reads the last execution history and logs, identifies the failing node, checks for missing models or node packs, and suggests a fix.
447
447
 
448
448
  ```
449
449
  > /comfy:debug abc123-def456
@@ -467,7 +467,7 @@ Supported sweep parameters: `cfg`, `steps`, `sampler`, `scheduler`, `seed`, `den
467
467
  > /comfy:recipe hires-fix a dramatic fantasy landscape with castles
468
468
  ```
469
469
 
470
- Runs a two-pass pipeline: txt2img at 512x768, then img2img upscale to 1024x1536 with detail enhancement.
470
+ Runs two passes: txt2img at 512x768, then an img2img upscale to 1024x1536 that adds detail.
471
471
 
472
472
  Available recipes:
473
473
 
@@ -501,7 +501,7 @@ Searches the registry, shows details, clones the repo to `custom_nodes/`, instal
501
501
  > /comfy:gallery today
502
502
  ```
503
503
 
504
- Lists recent outputs with embedded metadata — shows checkpoint, prompt, seed, steps, CFG, sampler for each image.
504
+ Lists recent outputs with their embedded metadata: checkpoint, prompt, seed, steps, CFG, and sampler for each image.
505
505
 
506
506
  ### Compare workflows
507
507
 
@@ -517,7 +517,7 @@ Shows added/removed nodes, changed parameters (old → new values), and optional
517
517
  > Validate this workflow before I run it
518
518
  ```
519
519
 
520
- Checks for missing node types, broken connections, invalid output indices, and missing model files without executing.
520
+ Checks for missing node types, broken connections, invalid output indices, and missing model files without executing the workflow.
521
521
 
522
522
  ### Manage models
523
523
 
@@ -548,7 +548,7 @@ Reads the PNG metadata chunks to recover the exact workflow and prompt used to g
548
548
  > /comfy:node-skill comfyui-impact-pack
549
549
  ```
550
550
 
551
- Generates a comprehensive skill file documenting every node, its inputs/outputs, and usage patterns.
551
+ Generates a skill file documenting every node, its inputs/outputs, and usage patterns.
552
552
 
553
553
  ### Process control
554
554
 
@@ -566,9 +566,9 @@ The server auto-detects your ComfyUI installation and port. Override with enviro
566
566
 
567
567
  Where to put keys and overrides:
568
568
 
569
- - **Panel users**: the **API Keys** card (▾ menu next to "connected") stored in `~/.comfyui-mcp/panel-secrets.json`, applied immediately, no restart.
570
- - **MCP-only setups** (Claude Desktop, Claude Code, etc.): the `env` block of your MCP client config, as shown in the setup examples above.
571
- - Real environment variables always take precedence over stored keys. (For development, `~/.comfyui-mcp/.env` is also loaded as an override file regular installs shouldn't need it.)
569
+ - **Panel users.** Use the **API Keys** card (▾ menu next to "connected"). Keys are stored in `~/.comfyui-mcp/panel-secrets.json` and take effect without a restart.
570
+ - **MCP-only setups** (Claude Desktop, Claude Code, etc.). Use the `env` block of your MCP client config, as shown in the setup examples above.
571
+ - Real environment variables always take precedence over stored keys. For development, the server also loads `~/.comfyui-mcp/.env` as an override file; regular installs shouldn't need it.
572
572
 
573
573
  ### Deployment modes
574
574
 
@@ -581,8 +581,8 @@ Where to put keys and overrides:
581
581
  | **Cloud** | `COMFYUI_API_KEY` is set (targets [Comfy Cloud](https://cloud.comfy.org)) | no — HTTP primitives route via `cloud.comfy.org` over `X-API-Key`; WebSocket and local-only tools throw `CLOUD_UNSUPPORTED` |
582
582
 
583
583
  Some setups (e.g. [dstack](https://dstack.ai) driving ComfyUI on RunPod) port-forward
584
- a remote ComfyUI back to `localhost:8188`, so the loopback check above gets it
585
- wrong the install isn't actually local. Pass `--force-remote` (or set
584
+ a remote ComfyUI back to `localhost:8188`, so the loopback check above reports a
585
+ local install that isn't one. Pass `--force-remote` (or set
586
586
  `COMFYUI_MCP_FORCE_REMOTE=1`) alongside `--comfyui-url`/`COMFYUI_URL` to force
587
587
  remote mode regardless of hostname:
588
588
 
@@ -623,7 +623,7 @@ npx -y comfyui-mcp@latest --comfyui-url http://localhost:8188 --force-remote
623
623
 
624
624
  ### Transports
625
625
 
626
- The server speaks **stdio by default** (what Claude Code, Claude Desktop, and the MCP Inspector expect no flags needed). For MCP gateways, remote/hosted setups, or `fetch`-based clients, opt into **streamable-HTTP**:
626
+ The server speaks stdio by default, which is what Claude Code, Claude Desktop, and the MCP Inspector expect, so no flags are needed. For MCP gateways, remote/hosted setups, or `fetch`-based clients, opt into streamable-HTTP:
627
627
 
628
628
  ```bash
629
629
  # stdio (default)
@@ -644,9 +644,9 @@ npx -y comfyui-mcp@latest --http --host 0.0.0.0 --port 9100 # bind/port overri
644
644
 
645
645
  ### Other agents & local LLMs (Hermes, OpenClaw, Copilot CLI, Ollama)
646
646
 
647
- comfyui-mcp has **first-class support for non-Claude harnesses**. One command
648
- writes the server entry into the harness's own config (merging, not
649
- clobbering):
647
+ comfyui-mcp supports non-Claude harnesses. One command
648
+ writes the server entry into the harness's own config (it merges into an existing
649
+ file rather than overwriting it):
650
650
 
651
651
  ```bash
652
652
  npx -y comfyui-mcp setup hermes # → ~/.hermes/config.yaml (compact by default)
@@ -655,41 +655,41 @@ npx -y comfyui-mcp setup copilot # → ~/.copilot/mcp-config.json (full by de
655
655
  # flags: --compact | --full, --comfyui-url <url>, --dry-run
656
656
  ```
657
657
 
658
- **Model requirements**: tool calling is a hard requirement (no tool calling =
659
- doesn't work). Thinking and vision are strongly recommended — without
658
+ **Model requirements.** Tool calling is a hard requirement; a model without tool calling
659
+ doesn't work. Thinking and vision are recommended. Without
660
660
  thinking, multi-step tool chains degrade; without vision the agent can
661
661
  generate but can't see its own outputs.
662
662
 
663
- **Compact tool mode is one flag away**: `--compact` /
663
+ **Compact tool mode.** `--compact` /
664
664
  `COMFYUI_MCP_TOOL_MODE=compact` registers 3 meta-tools (`list_tools` →
665
- `describe_tool` → `call_tool`) instead of the direct surface, pulling schemas
666
- into context one tool at a time the right trade for small local models. The
667
- direct surface is the default and is what frontier-model harnesses want.
665
+ `describe_tool` → `call_tool`) instead of the direct tool set, pulling schemas
666
+ into context one tool at a time. That is the right trade for small local models. The
667
+ direct tool set is the default and is what frontier-model harnesses want.
668
668
  **Run it locally
669
- for free with our fine-tuned models**: `ollama pull artokun/gemma4-comfyui-mcp:e4b`
670
- (also `:e2b` for ~2 GB VRAM, `:12b` for ~8 GB) Gemma 4 QLoRA-trained on 1,055
671
- server-verified trajectories over the full comfyui-mcp tool surface, and the
672
- panel's Ollama default. Stock `gemma4:*`/`qwen3:4b` also validated end-to-end
669
+ for free with our fine-tuned models.** `ollama pull artokun/gemma4-comfyui-mcp:e4b`
670
+ (also `:e2b` for ~2 GB VRAM, `:12b` for ~8 GB) is Gemma 4, QLoRA-trained on 1,055
671
+ server-verified trajectories over the full comfyui-mcp tool set, and is the
672
+ panel's Ollama default. Stock `gemma4:*`/`qwen3:4b` are also validated end-to-end
673
673
  (`npm run test:local-llm`); gemma3 has no native tool calling and is
674
- unsupported. Full guide hosted-model guidance (DeepSeek/MiMo/GLM class),
675
- per-harness setup, troubleshooting:
674
+ unsupported. The full guide, covering hosted-model guidance (DeepSeek/MiMo/GLM class),
675
+ per-harness setup, and troubleshooting, is
676
676
  **[Local LLMs & other agents](https://comfyui-mcp.artokun.io/docs/local-llms)**.
677
677
 
678
678
  | Flag | Env | Default | Description |
679
679
  |------|-----|---------|-------------|
680
680
  | `setup <agent>` | | | Write the comfyui entry into hermes / openclaw / copilot config, then exit |
681
- | `--compact` / `--tool-mode compact` | `COMFYUI_MCP_TOOL_MODE=compact` | `full` | Opt into the 3 meta-tools (`list_tools` / `describe_tool` / `call_tool`) instead of the direct surface — recommended for small local models. `--full` is still accepted and is now a no-op |
681
+ | `--compact` / `--tool-mode compact` | `COMFYUI_MCP_TOOL_MODE=compact` | `full` | Opt into the 3 meta-tools (`list_tools` / `describe_tool` / `call_tool`) instead of the direct tool set — recommended for small local models. `--full` is still accepted and is now a no-op |
682
682
 
683
683
  ### Remote ComfyUI
684
684
 
685
- Point the server at a ComfyUI running anywhere no local install required:
685
+ Point the server at a ComfyUI running anywhere; no local install is required:
686
686
 
687
687
  ```bash
688
688
  npx -y comfyui-mcp@latest --comfyui-url http://192.168.1.50:8188
689
689
  npx -y comfyui-mcp@latest --http --comfyui-url https://comfy.example.com:8443
690
690
  ```
691
691
 
692
- **Behind a reverse proxy / API gateway** (path prefix + auth header) for a
692
+ **Behind a reverse proxy / API gateway** (path prefix + auth header). For a
693
693
  self-hosted ComfyUI exposed under a prefixed route with its own auth layer (this
694
694
  is *not* Comfy Cloud, which is `COMFYUI_API_KEY`):
695
695
 
@@ -726,12 +726,12 @@ Set `COMFYUI_PATH` to skip detection and use an explicit path.
726
726
 
727
727
  The server communicates with ComfyUI through its REST API and WebSocket interface:
728
728
 
729
- - **WebSocket** enqueue workflows, receive real-time progress updates (step-by-step via background monitor script), get execution results
730
- - **REST API** system stats, node definitions (`/object_info`), logs, history, queue management, workflow library, VRAM control (`/free`), embeddings
731
- - **File system** — read/write models directory, detect installation paths, upload images, extract PNG metadata, browse outputs
732
- - **External APIs** HuggingFace (model search), ComfyUI Registry (custom node discovery), GitHub (skill generation), CivitAI (model downloads)
729
+ - **WebSocket.** Enqueue workflows, receive real-time progress updates (step by step via the background monitor script), get execution results
730
+ - **REST API.** System stats, node definitions (`/object_info`), logs, history, queue management, workflow library, VRAM control (`/free`), embeddings
731
+ - **File system.** Read/write the models directory, detect installation paths, upload images, extract PNG metadata, browse outputs
732
+ - **External APIs.** HuggingFace (model search), ComfyUI Registry (custom node discovery), GitHub (skill generation), CivitAI (model downloads)
733
733
 
734
- All communication with the MCP client (Claude Code) happens over **stdio** using the [Model Context Protocol](https://modelcontextprotocol.io). Logs go to stderr to avoid polluting the protocol stream.
734
+ All communication with the MCP client (Claude Code) happens over stdio using the [Model Context Protocol](https://modelcontextprotocol.io). Logs go to stderr so they never mix into the protocol stream.
735
735
 
736
736
  ---
737
737
 
@@ -876,46 +876,46 @@ Make sure ComfyUI is running. The Desktop app uses port 8000 by default; the CLI
876
876
  The auto-detection couldn't find your ComfyUI data directory. Set `COMFYUI_PATH` to the directory containing your `models/` folder (e.g., `~/Documents/ComfyUI`).
877
877
 
878
878
  **"Multiple ComfyUI installations detected"**
879
- This is informational the server uses the first one found. Set `COMFYUI_PATH` to pick a specific installation.
879
+ This is informational. The server uses the first one found. Set `COMFYUI_PATH` to pick a specific installation.
880
880
 
881
881
  **Model downloads fail**
882
882
  For HuggingFace gated models, set `HUGGINGFACE_TOKEN`. For CivitAI, set `CIVITAI_API_TOKEN`.
883
883
 
884
884
  **Workflow execution errors**
885
- Use `/comfy:debug` to automatically diagnose failures. Or use `get_history` (`action: "diagnose"`) / `get_system_stats (action:"logs")` directly to see detailed error messages including Python tracebacks from ComfyUI.
885
+ Use `/comfy:debug` to diagnose failures. Or call `get_history` (`action: "diagnose"`) / `get_system_stats (action:"logs")` directly to see the full error messages, including Python tracebacks from ComfyUI.
886
886
 
887
887
  **Out of memory (OOM)**
888
- Use `clear_vram` to free GPU memory before running large workflows. The VRAM watchdog hook will warn you automatically if memory is critically low. See the **troubleshooting** skill for model-specific VRAM estimates.
888
+ Use `clear_vram` to free GPU memory before running large workflows. The VRAM watchdog hook warns you when less than 1GB is free before a workflow runs. See the **troubleshooting** skill for model-specific VRAM estimates.
889
889
 
890
890
  **Missing custom nodes**
891
- Use `/comfy:install <pack>` to install missing node packs from the registry. The debug command will detect and suggest missing packs automatically.
891
+ Use `/comfy:install <pack>` to install missing node packs from the registry. The debug command detects missing packs and suggests them.
892
892
 
893
893
  ---
894
894
 
895
895
  ## Contributing
896
896
 
897
- Contributions are welcome! See **[CONTRIBUTING.md](./CONTRIBUTING.md)** for the dev setup, project
897
+ Contributions are welcome. See [CONTRIBUTING.md](./CONTRIBUTING.md) for the dev setup, project
898
898
  conventions, how to add an MCP tool, and the release process.
899
899
 
900
- Quick version: fork → branch (`feat/my-feature`) → make changes (ensure `npm run build` and
900
+ Quick version: fork → branch (`feat/my-feature`) → make changes (make sure `npm run build` and
901
901
  `npm test` pass; run `npm run docs:gen` if you touched tools) → open a PR.
902
902
 
903
903
  ---
904
904
 
905
905
  ## Maintainer
906
906
 
907
- Built and maintained by [**@artokun**](https://github.com/artokun) a regular contributor across the Comfy-Org ecosystem:
907
+ Built and maintained by [**@artokun**](https://github.com/artokun), a regular contributor across the Comfy-Org ecosystem:
908
908
 
909
- - **[Comfy-Org/ComfyUI_frontend](https://github.com/Comfy-Org/ComfyUI_frontend/pulls?q=is%3Apr+author%3Aartokun)** 10 merged PRs, mostly on the **v2 graph renderer**: subgraph rendering, promoted-widget plumbing, viewport persistence, with backports across `cloud/1.41`, `cloud/1.42`, `core/1.41`, and `core/1.42`.
910
- - **[Comfy-Org/ComfyUI](https://github.com/Comfy-Org/ComfyUI/pulls?q=is%3Apr+author%3Aartokun)** (core) crash fixes in the Python backend's video/audio save path ([#12683](https://github.com/Comfy-Org/ComfyUI/pull/12683), [#12550](https://github.com/Comfy-Org/ComfyUI/pull/12550)).
909
+ - **[Comfy-Org/ComfyUI_frontend](https://github.com/Comfy-Org/ComfyUI_frontend/pulls?q=is%3Apr+author%3Aartokun).** 10 merged PRs, mostly on the v2 graph renderer: subgraph rendering, promoted-widget plumbing, viewport persistence, with backports across `cloud/1.41`, `cloud/1.42`, `core/1.41`, and `core/1.42`.
910
+ - **[Comfy-Org/ComfyUI](https://github.com/Comfy-Org/ComfyUI/pulls?q=is%3Apr+author%3Aartokun)** (core). Crash fixes in the Python backend's video/audio save path ([#12683](https://github.com/Comfy-Org/ComfyUI/pull/12683), [#12550](https://github.com/Comfy-Org/ComfyUI/pull/12550)).
911
911
 
912
- **Comfy-Org folks** (or anyone hiring around the ComfyUI ecosystem): I'd genuinely love to chat **[art.longbottom.jr@gmail.com](mailto:art.longbottom.jr@gmail.com)**.
912
+ If you're at Comfy-Org (or hiring around the ComfyUI ecosystem), I'd love to chat. Email me at **[art.longbottom.jr@gmail.com](mailto:art.longbottom.jr@gmail.com)**.
913
913
 
914
914
  ---
915
915
 
916
916
  ## License
917
917
 
918
- MIT see [LICENSE](./LICENSE) for details.
918
+ MIT. See [LICENSE](./LICENSE) for details.
919
919
 
920
920
  ---
921
921
 
@@ -397,17 +397,18 @@ export function resetObjectInfoCache() {
397
397
  export async function backfillObjectInfo(objectInfo, nodeTypes) {
398
398
  if (isCloudMode())
399
399
  return objectInfo;
400
- const oi = objectInfo;
401
- const missing = [...new Set(nodeTypes)].filter((t) => t && !(t in oi));
400
+ const missing = [...new Set(nodeTypes)].filter((t) => t && !(t in objectInfo));
402
401
  if (missing.length === 0)
403
402
  return objectInfo;
404
403
  const base = `${getComfyUIBaseUrl()}/object_info`;
405
- const merged = { ...oi };
404
+ const merged = { ...objectInfo };
406
405
  await Promise.all(missing.map(async (t) => {
407
406
  try {
408
407
  const res = await comfyuiFetch(`${base}/${encodeURIComponent(t)}`);
409
408
  if (!res.ok)
410
409
  return;
410
+ // `/object_info/<Type>` answers with the same shape as the bulk endpoint,
411
+ // keyed by the node's live registration name.
411
412
  const def = (await res.json());
412
413
  if (!def || typeof def !== "object")
413
414
  return;