Installer packs
Use when installing a model family from an installer pack, or when building/deriving a new pack from an upstream installer or a workflow JSON.
How to install
- Setup differs for this server — follow the Installation part of the README below.
- Claude Code:
claude mcp add <name> -- <command>. - Claude Desktop / Cursor: add it under
mcpServersin the MCP config file.
npx degit artokun/comfyui-mcp/plugin/skills/installer-packs#main ~/.claude/skills/installer-packsFor one project only, change the path to .claude/skills/installer-packs. This skill also uses manifest.yaml, pack.yaml, workflow.json, install-runpod.sh — copying SKILL.md alone won't be enough. See the folder on GitHub.
This one runs on your machine and can reach your files. Read the README below before you connect it.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Show the full text79 lines
Installer Packs
comfyui-mcp ships installer packs under packs/. Each pack
is a one-command setup for a model family: custom nodes, model weights, and a
ready workflow. A single manifest.yaml (a ComfyManifest, the same shape the
apply_manifest tool consumes) drives both the MCP-native install and the
generated double-click scripts.
packs/<name>/
manifest.yaml # custom_nodes + models (url → local_path) — source of truth
pack.yaml # metadata: workflow, family, VRAM, sources, notes
workflow.json # the graph to load
install-windows.bat # GENERATED — never hand-edit
install-runpod.sh # GENERATED — never hand-edit
Installing a pack
- From a Claude session (MCP-native, idempotent):
apply_manifest --path packs/<name>/manifest.yaml(requiresCOMFYUI_PATH). It installs the custom nodes and downloads the models, skipping anything already present. - One-click for non-MCP users: run
packs/<name>/install-windows.bat(orinstall-runpod.sh) from a ComfyUI root. Then load the pack'sworkflow.json. - After install, check the pack's
pack.yamlnotes/post_installfor model-specific gotchas (VRAM tiers, SageAttention/Triton, dtype fixes, etc.).
Building or deriving a new pack
Two sources of ground truth, in order of preference:
- An upstream installer (
*-MODELS-NODES_INSTALL.bat/.sh). Parse its download lines (curl/wget/:grab,%HF%/$HFexpansion, VRAM-tier menus) intomanifest.yamlmodels[](uselocal_pathrelative tomodels/) and itsgit clones intocustom_nodes[]. Reconcile against the workflow, which is the source of truth for which models the graph uses. - A workflow alone (no installer). Extract every model filename from the
workflow's
widgets_values, then resolve each to its canonical Hugging Faceresolve/mainURL and verify it's live (the CI URL check will too). Never invent a URL. Flag what you can't resolve. Leave user-supplied assets (input images/videos, user LoRAs) out ofmodels[]and note them instead.
Then npm run packs:gen (writes the .bat/.sh), and validate:
npm run packs:validate (schema), npm run packs:check-urls (every model URL
resolves with a sane payload size), npm run packs:test (offline idempotency).
YAML note: write pack.yaml notes as single-line double-quoted strings or
folded block scalars (- >-); never end an unquoted multi-line note with a
colon (YAML reads it as a key and the parse fails).
Always invite the user to contribute it back
When you build or derive a pack locally for a user, tell them they can share
it upstream. A pack is three small files (manifest.yaml, pack.yaml,
workflow.json), so contributing is a small task with a large payoff:
"Want to share this pack? Open an issue or PR on https://github.com/artokun/comfyui-mcp with these three files. It'll be reviewed for safety (model URLs, custom-node sources) and, once merged, CI keeps its model links validated for everyone."
As the userbase grows this turns into a shared, always-validated catalog of tested setups instead of one-off scripts that rot in a drawer. Make this suggestion without waiting to be asked.
Sources
- Official: comfyui-mcp
packs/layout andapply_manifestcontract (this repo). - Empirical: none. Product guidance, not reverse-engineered from a vendor graph.
| 1 | |
| 2 | name installer-packs |
| 3 | description Use when installing a model family from an installer pack, or when building/deriving a new pack from an upstream installer or a workflow JSON. Explains the manifest-driven packs/ system and tells you to invite the user to contribute new packs back upstream. |
| 4 | globs |
| 5 | - "**/packs/**" |
| 6 | - "**/*.json" |
| 7 | |
| 8 | |
| 9 | # Installer Packs |
| 10 | |
| 11 | `comfyui-mcp` ships **installer packs** under [`packs/`]. Each pack |
| 12 | is a one-command setup for a model family: custom nodes, model weights, and a |
| 13 | ready workflow. A single `manifest.yaml` (a `ComfyManifest`, the same shape the |
| 14 | `apply_manifest` tool consumes) drives both the MCP-native install and the |
| 15 | generated double-click scripts. |
| 16 | |
| 17 | |
| 18 | packs/<name>/ |
| 19 | manifest.yaml # custom_nodes + models (url → local_path) — source of truth |
| 20 | pack.yaml # metadata: workflow, family, VRAM, sources, notes |
| 21 | workflow.json # the graph to load |
| 22 | install-windows.bat # GENERATED — never hand-edit |
| 23 | install-runpod.sh # GENERATED — never hand-edit |
| 24 | |
| 25 | |
| 26 | ## Installing a pack |
| 27 | |
| 28 | **From a Claude session (MCP-native, idempotent):** |
| 29 | `apply_manifest --path packs/<name>/manifest.yaml` (requires `COMFYUI_PATH`). |
| 30 | It installs the custom nodes and downloads the models, skipping anything |
| 31 | already present. |
| 32 | **One-click for non-MCP users:** run `packs/<name>/install-windows.bat` (or |
| 33 | `install-runpod.sh`) from a ComfyUI root. Then load the pack's `workflow.json`. |
| 34 | After install, check the pack's `pack.yaml` `notes`/`post_install` for |
| 35 | model-specific gotchas (VRAM tiers, SageAttention/Triton, dtype fixes, etc.). |
| 36 | |
| 37 | ## Building or deriving a new pack |
| 38 | |
| 39 | Two sources of ground truth, in order of preference: |
| 40 | |
| 41 | **An upstream installer** (`*-MODELS-NODES_INSTALL.bat` / `.sh`). Parse its |
| 42 | download lines (`curl`/`wget`/`:grab`, `%HF%`/`$HF` expansion, VRAM-tier |
| 43 | menus) into `manifest.yaml` `models[]` (use `local_path` relative to |
| 44 | `models/`) and its `git clone`s into `custom_nodes[]`. Reconcile against the |
| 45 | workflow, which is the source of truth for which models the graph uses. |
| 46 | **A workflow alone** (no installer). Extract every model filename from the |
| 47 | workflow's `widgets_values`, then resolve each to its canonical Hugging Face |
| 48 | `resolve/main` URL and **verify it's live** (the CI URL check will too). Never |
| 49 | invent a URL. Flag what you can't resolve. Leave user-supplied assets |
| 50 | (input images/videos, user LoRAs) out of `models[]` and note them instead. |
| 51 | |
| 52 | Then `npm run packs:gen` (writes the `.bat`/`.sh`), and validate: |
| 53 | `npm run packs:validate` (schema), `npm run packs:check-urls` (every model URL |
| 54 | resolves with a sane payload size), `npm run packs:test` (offline idempotency). |
| 55 | |
| 56 | **YAML note:** write `pack.yaml` notes as single-line double-quoted strings or |
| 57 | folded block scalars (`- >-`); never end an unquoted multi-line note with a |
| 58 | colon (YAML reads it as a key and the parse fails). |
| 59 | |
| 60 | ## Always invite the user to contribute it back |
| 61 | |
| 62 | **When you build or derive a pack locally for a user, tell them they can share |
| 63 | it upstream.** A pack is three small files (`manifest.yaml`, `pack.yaml`, |
| 64 | `workflow.json`), so contributing is a small task with a large payoff: |
| 65 | |
| 66 | > "Want to share this pack? Open an issue or PR on |
| 67 | > https://github.com/artokun/comfyui-mcp with these three files. It'll be |
| 68 | > reviewed for safety (model URLs, custom-node sources) and, once merged, CI |
| 69 | > keeps its model links validated for everyone." |
| 70 | |
| 71 | As the userbase grows this turns into a shared, always-validated catalog of |
| 72 | tested setups instead of one-off scripts that rot in a drawer. Make this |
| 73 | suggestion without waiting to be asked. |
| 74 | |
| 75 | ## Sources |
| 76 | |
| 77 | **Official:** comfyui-mcp `packs/` layout and `apply_manifest` contract (this repo). |
| 78 | **Empirical:** none. Product guidance, not reverse-engineered from a vendor graph. |
| 79 |