Skip to main content

comfyui-workflow

Submit a ComfyUI workflow JSON to a local 8188 server, monitor the queue, and download generated images. Use this Skill when the user wants to run a saved workflow, check whether ComfyUI is busy, fetch a generated image, list available checkpoints, or automate a reproducible generation pipeline.

설치로 이동

소스 정보

저장소
MiniMax-AI/MiniMax-Code-Plugins
최근 소스 활동
2026년 8월 25일 02:53
감지된 SKILL.md 언어
영어
스타
11
포크
10

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
3 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
comfyui-workflow
description
Submit a ComfyUI workflow JSON to a local 8188 server, monitor the queue, and download generated images. Use this Skill when the user wants to run a saved workflow, check whether ComfyUI is busy, fetch a generated image, list available checkpoints, or automate a reproducible generation pipeline.
# ComfyUI Workflow Submit workflows, monitor the queue, and retrieve outputs from a local ComfyUI server. This is the workhorse Skill; `comfyui-character` builds on top of it for character-consistent generation. ## Scope This Skill covers the **transport** between an agent and a local ComfyUI server. It does not edit workflows, train models, or invent prompts — those concerns live in sibling Skills. It assumes the user already has a workflow JSON they want to run (either a file the user wrote or one of the bundled `workflows/*.json` examples). ## Two equivalent entry points You can drive ComfyUI from this Skill in either of two ways. Pick whichever the host environment supports best. ### A. Python script (CLI-friendly, no MCP required) ```bash # Health probe python scripts/submit_workflow.py --probe # Submit a workflow python scripts/submit_workflow.py \ --workflow ./workflows/text-to-image.json \ --prompt "a tabby cat sleeping on a windowsill, morning light, photorealistic" \ --output-dir ./out # Check the queue without submitting python scripts/submit_workflow.py --queue # Download a specific image python scripts/submit_workflow.py --download \ --filename ComfyUI_00001_.png --output-dir ./out ``` The script lives at `skills/comfyui-workflow/scripts/submit_workflow.py` (relative to the Plugin root) and accepts `COMFYUI_URL` from the environment, falling back to `http://127.0.0.1:8188`. Full flag list in `references/api-reference.md`. ### B. stdio MCP server (no Python required) When the host agent is MCP-aware, the Plugin's `server.mjs` exposes three tools that mirror the Python script: | Tool | Mirrors | |---|---| | `submit_prompt` | `--workflow` invocation | | `check_queue` | `--queue` invocation | | `get_image` | `--download` invocation | The MCP server has zero npm dependencies. It is a 200-line stdio JSON-RPC server in plain Node. See `mcp.json` for the registration snippet and `server.mjs` for the source. ## Workflow contract ComfyUI accepts a JSON object whose top-level keys are node IDs and whose values are `{class_type, inputs}` records. When the user provides a workflow, **do not edit the structure** unless they ask. Two patterns are common: - A workflow file saved from the ComfyUI web UI: keys are numeric strings, `class_type` matches the node name in the editor, `inputs` reference other nodes by `[nodeId, outputIndex]`. - An "API format" workflow produced by ComfyUI's "Save (API Format)" menu: same shape, but with widget values inlined into `inputs`. Both work identically when POSTed to `/prompt`. The Plugin's `workflows/text-to-image.json` and `workflows/image-to-image.json` are in the API format. ## Overriding prompt values at submit time The bundled Python script understands a tiny templating convention so you do not have to rewrite the workflow JSON for every run. In a workflow, a `CLIPTextEncode` node with `inputs.text` starting with the literal string `__PROMPT__` will have that text replaced with the value of `--prompt` on the command line before submission. This is a no-op for nodes that do not opt in. ```json { "30": { "class_type": "CLIPTextEncode", "inputs": { "text": "__PROMPT__", "clip": ["4", 0] } } } ``` For workflows without that marker, the user must edit the workflow JSON directly. ## Step-by-step recipe 1. **Health probe.** Either call `check_queue` via MCP or run `submit_workflow.py --probe`. Stop and report if ComfyUI is unreachable; do not invent a successful run. 2. **Resolve the workflow.** If the user named a file, read it. If they named a workflow by description (e.g. "the one with the upscale at the end"), ask for a path or a saved name. 3. **Apply prompt override if used.** If `--prompt` is provided and the workflow contains `__PROMPT__`, substitute. Otherwise pass the workflow through unchanged. 4. **Submit.** POST to `/prompt` with `{"prompt": <workflow>}`. Capture `prompt_id`. 5. **Poll.** Loop `GET /history/<prompt_id>` with a 2-second sleep. Stop on terminal status (`success`, `error`, or `cancelled`). Use a 15-minute cap; long jobs should be split. 6. **Resolve outputs.** The `outputs` object lists the `SaveImage` / `VHS_VideoCombine` files produced. For each, fetch `GET /view?filename=...&subfolder=...&type=output`. 7. **Report.** Tell the user the prompt_id, the time taken, the saved file paths, and any warnings (low VRAM, retries, partial outputs). ## Long jobs and VRAM safety - ComfyUI 22B-class models can hold the GPU for hours. The Plugin does not implement a watchdog; for jobs longer than 30 minutes, instruct the user to watch `nvidia-smi` themselves. - If a poll returns an error status, capture the full `outputs` block and the error message; report both. Do not retry automatically — generation is expensive. ## Requirements - ComfyUI running locally (or reachable at `COMFYUI_URL`). - Python 3.10+ if using the script. The MCP server requires Node 18+. - No additional accounts, paid services, or network destinations. ## License Apache-2.0. See [LICENSE](../../LICENSE).
GitHub에서 보기