comfyui-mcp
Version:
Local-first, agent-native control plane for ComfyUI — MCP server + autonomous sidebar agent that drives your live graph in natural language on ANY LLM: Claude/ChatGPT/Gemini on your subscription (no API key), free local models via Ollama (fully offline),
67 lines (52 loc) • 2.98 kB
Markdown
# ComfyUI Installer Packs
Self-contained, one-command setups for popular ComfyUI model families — custom
nodes + model weights + a ready-to-load workflow. Inspired by the community
"1-click installer" packs, but built on this repo's existing
[`apply_manifest`](../src/services/manifest.ts) engine so the **same source of
truth** drives both an MCP-native install and the generated double-click scripts.
## Layout
```
packs/<name>/
pack.yaml # human metadata: display name, family, workflow, sources, notes
manifest.yaml # the install manifest — a pure ComfyManifest (apt/pip/custom_nodes/models)
workflow.json # the ComfyUI workflow to load after install
install-windows.bat # GENERATED — do not edit by hand
install-runpod.sh # GENERATED — do not edit by hand
```
`manifest.yaml` is consumable as-is by the MCP tool / engine:
```
apply_manifest --path packs/<name>/manifest.yaml # requires COMFYUI_PATH
```
It validates against `manifestSchema` in `src/services/manifest.ts`:
- `apt: string[]` — reported only (installed manually / with root)
- `pip: string[]` — pip/uv installs
- `custom_nodes: string[]` — git URLs or registry ids
- `models: [{ url, local_path }]` — `local_path` is **relative to `models/`** and
may include subfolders (e.g. `ultralytics/bbox/face_yolov9c.pt`). Use
`local_path` for non-standard folders; `model_type` + `filename` also work for
the standard ComfyUI model dirs.
## Generating the one-click scripts
```
npm run packs:gen # rebuild install-*.{bat,sh} for every pack
node scripts/gen-pack-installers.mjs packs/anima # just one pack
```
The generated scripts are idempotent (skip already-cloned nodes / existing model
files) and run from a ComfyUI root (the folder containing `custom_nodes/` and
`models/`). They are derived entirely from `manifest.yaml` + `pack.yaml` — edit
those, never the generated files.
## Adding a pack
1. Create `packs/<name>/` with `pack.yaml`, `manifest.yaml`, and `workflow.json`.
2. Get the URLs/nodes right — the upstream author's `.bat`/`.sh` is the ground
truth for exact download URLs → target folders.
3. Run `npm run packs:gen`.
4. (Optional) Pair the pack with a `plugin/skills/<name>/SKILL.md` so agents know
how to drive it. The skill must end with a `## Sources` section labeling
**Official** vs **Empirical** prompting/wiring guidance (see CONTRIBUTING).
## Contributing a pack back
Generated a pack locally that others would want? **Open an issue or PR on
[comfyui-mcp](https://github.com/artokun/comfyui-mcp/issues)** with your
`manifest.yaml`, `pack.yaml`, and `workflow.json`. Every contributed pack is
reviewed for safety (model URLs, custom-node sources, no surprises) before it's
merged — then CI keeps its model links honest for everyone. As the userbase
grows, this is the simplest way to share battle-tested setups, so if you just
built or derived a pack, consider sending it upstream.