Tested demoQuality 93/100Review permissions

NousResearch/hermes-agent/skills/creative/comfyui/SKILL.md

comfyui

Generate images, video, and audio via diffusion workflows.

Source repository stars
235,927
Declared platforms
0
Static risk flags
3
Last source update
2026-08-25
Source checked
2026-08-25

Decision brief

What it does: where it fits

Generate images, video, audio, and 3D content through ComfyUI using the official comfy-cli for setup/lifecycle and direct REST/WebSocket API for workflow execution.

Best for

  • User asks to generate images with Stable Diffusion, SDXL, Flux, SD3, etc.
  • User wants to run a specific ComfyUI workflow file
  • User wants to chain generative steps (txt2img → upscale → face restore)

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.
Controlled single-run demoChecked 2026-08-20

What changed when the Skill was used

In this controlled same-task single run, enabling comfyui changed the output from 2909 non-whitespace characters and 10 headings to 2496 characters and 9 headings. Matches among 8 signals extracted from the pinned source changed from 0 to 0. Both actual outputs are shown; this is a structural observation, not a quality score or a universal performance claim.

Same test task

Create a test strategy and representative test cases for a JSON API schema comparison feature. Include failure cases and a clear verification procedure. The deliverable must specifically reflect this user intent: Generate images, video, and audio via diffusion workflows.

Without the Skill
Screenshot of the actual model output for comfyui without the Skill

Baseline: 2909 non-whitespace characters, 10 headings, and 43 list items.

With the Skill
Screenshot of the actual model output for comfyui with the Skill

With Skill: 2496 non-whitespace characters, 9 headings, and 64 list items.

ObservationWithout SkillWith Skill
Source-signal coverage0/8: none0/8: none
Output structure2909 chars · 10 headings · 43 list items · 0 code blocks2496 chars · 9 headings · 64 list items · 0 code blocks
Verification and caution signals13 verification signals · 5 risk/limitation signals33 verification signals · 10 risk/limitation signals

A prompt you can use

Use the comfyui Skill pinned at 6851841112e9 for my task. Follow its source-specific constraints around `comfyui`, `architecture`, `layers`, `quick`, then return the finished deliverable with explicit assumptions, verification, failure conditions, and limits. Do not treat the Skill text as a factual source or claim that a single demonstration proves universal performance.

Method and limitationsExpand

Test method

  • Baseline and treatment used the same task, model (gpt-5.3-codex-low), and runner; the only planned difference was whether the complete target Skill text was injected.
  • The treatment used snapshot 6851841112e921537eb7195ef6e8be7d2ca2d2f6; the current source commit 6851841112e921537eb7195ef6e8be7d2ca2d2f6 was verified against content hash bf3984f73cb4. The baseline explicitly prohibited loading any Skill or external rule file.
  • The same deterministic script counted characters, headings, lists, code blocks, verification terms, caution terms, and source signals in both artifacts. Source signals: `comfyui`, `architecture`, `layers`, `quick`, `start`, `detect`, `environment`, `available`.
  • The visuals are local screenshots of the actual Markdown artifacts in a fixed 1200 × 800 evidence canvas, not recreated product mockups. Raw JSON artifacts and request records are retained in the research directory.

Do not over-read this demo

  • This is one controlled demonstration per condition, not a multi-run statistical benchmark; the model is stochastic.
  • Character, structure, and keyword counts show observable differences but cannot by themselves prove correctness, originality, or business impact.
  • The task is a representative test designed for repeatability, not every real-world use of the Skill; rerun after a material source change.
Editorial review
SkillSignal editorial
Runner
Cursor Agent 2026.08.11-e8db854
Model
gpt-5.3-codex-low
Refresh due
2026-11-18
Reviewed commit
6851841112e921537eb7195ef6e8be7d2ca2d2f6
Test snapshot
6851841112e921537eb7195ef6e8be7d2ca2d2f6

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/NousResearch/hermes-agent --skill "skills/creative/comfyui"
Safe inspection promptEditorial

Inspect the Agent Skill "comfyui" from https://github.com/NousResearch/hermes-agent/blob/64a6f42cb38def7ad6524bdfe640a16997c88760/skills/creative/comfyui/SKILL.md at commit 64a6f42cb38def7ad6524bdfe640a16997c88760. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Quick Start

    Review the “Quick Start” section in the pinned source before continuing.

    Review and apply the “Quick Start” source section.
  2. 02

    Core Workflow

    Workflows must be in API format (each node has classtype). They come from:

    ComfyUI web UI → Workflow → Export (API) (newer UI) orThis skill's workflows/ directory (ready-to-run examples)Community downloads (civitai, Reddit, Discord) — usually editor format,
  3. 03

    Step 1: Get a workflow JSON in API format

    Workflows must be in API format (each node has classtype). They come from:

    ComfyUI web UI → Workflow → Export (API) (newer UI) orThis skill's workflows/ directory (ready-to-run examples)Community downloads (civitai, Reddit, Discord) — usually editor format,
  4. 04

    Step 2: See what's controllable

    bash python scripts/extractschema.py workflowapi.json --summary-only

    bash python scripts/extractschema.py workflowapi.json --summary-only
  5. 05

    Step 3: Run with parameters

    Review the “Step 3: Run with parameters” section in the pinned source before continuing.

    Review and apply the “Step 3: Run with parameters” source section.

Permission review

Static risk signals and limitations

Network access

medium · line 80

The documentation includes network, browsing, or remote request actions.

curl -s http://127.0.0.1:8188/system_stats 2>/dev/null && echo "server: running"

Runs scripts

medium · line 83

The documentation asks the agent to run terminal commands or scripts.

python scripts/hardware_check.py

Runs scripts

medium · line 92

The documentation asks the agent to run terminal commands or scripts.

python scripts/health_check.py

Network access

medium · line 124

The documentation includes network, browsing, or remote request actions.

# Local (defaults to http://127.0.0.1:8188)

Sends data out

high · line 200

The documentation includes sending, uploading, or posting data to a remote service.

| "cancel that" | REST | `curl -X POST http://HOST:8188/interrupt` |

Sends data out

high · line 201

The documentation includes sending, uploading, or posting data to a remote service.

| "free GPU memory" | REST | `curl -X POST http://HOST:8188/free` |

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score93/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars235,927SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guidetested outcome pageTestedGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
NousResearch/hermes-agent
Skill path
skills/creative/comfyui/SKILL.md
Commit
64a6f42cb38def7ad6524bdfe640a16997c88760
License
MIT
Collected
2026-08-25
Default branch
main
View the original SKILL.md

ComfyUI

Generate images, video, audio, and 3D content through ComfyUI using the official comfy-cli for setup/lifecycle and direct REST/WebSocket API for workflow execution.

What's in this skill

Reference docs (references/):

  • official-cli.md — every comfy ... command, with flags
  • rest-api.md — REST + WebSocket endpoints (local + cloud), payload schemas
  • workflow-format.md — API-format JSON, common node types, param mapping
  • template-integrity.md — converting comfyui-workflow-templates from editor format to API format: Reroute bypass, dotted dynamic-input keys (values.a, resize_type.width), Cloud quirks (302 redirect, 1 concurrent free-tier job, 1080p VRAM ceiling), Discord-compatible ffmpeg stitch. Authored by @purzbeats. Load this whenever you're starting from an official template.

Scripts (scripts/):

ScriptPurpose
_common.pyShared HTTP, cloud routing, node catalogs (don't run directly)
hardware_check.pyProbe GPU/VRAM/disk → recommend local vs Comfy Cloud
comfyui_setup.shHardware check + comfy-cli + ComfyUI install + launch + verify
extract_schema.pyRead a workflow → list controllable params + model deps
check_deps.pyCheck workflow against running server → list missing nodes/models
auto_fix_deps.pyRun check_deps then comfy node install / comfy model download
run_workflow.pyInject params, submit, monitor, download outputs (HTTP or WS)
run_batch.pySubmit a workflow N times with sweeps, parallel up to your tier
ws_monitor.pyReal-time WebSocket viewer for executing jobs (live progress)
health_check.pyVerification checklist runner — comfy-cli + server + models + smoke test
fetch_logs.pyPull traceback / status messages for a given prompt_id

Example workflows (workflows/): SD 1.5, SDXL, Flux Dev, SDXL img2img, SDXL inpaint, ESRGAN upscale, AnimateDiff video, Wan T2V. See workflows/README.md.

When to Use

  • User asks to generate images with Stable Diffusion, SDXL, Flux, SD3, etc.
  • User wants to run a specific ComfyUI workflow file
  • User wants to chain generative steps (txt2img → upscale → face restore)
  • User needs ControlNet, inpainting, img2img, or other advanced pipelines
  • User asks to manage ComfyUI queue, check models, or install custom nodes
  • User wants video/audio/3D generation via AnimateDiff, Hunyuan, Wan, AudioCraft, etc.

Architecture: Two Layers

┌─────────────────────────────────────────────────────┐
│ Layer 1: comfy-cli (official lifecycle tool)        │
│   Setup, server lifecycle, custom nodes, models     │
│   → comfy install / launch / stop / node / model    │
└─────────────────────────┬───────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────┐
│ Layer 2: REST/WebSocket API + skill scripts         │
│   Workflow execution, param injection, monitoring   │
│   POST /api/prompt, GET /api/view, WS /ws           │
│   → run_workflow.py, run_batch.py, ws_monitor.py    │
└─────────────────────────────────────────────────────┘

Why two layers? The official CLI is excellent for installation and server management but has minimal workflow execution support. The REST/WS API fills that gap — the scripts handle param injection, execution monitoring, and output download that the CLI doesn't do.

Quick Start

Detect environment

# What's available?
command -v comfy >/dev/null 2>&1 && echo "comfy-cli: installed"
curl -s http://127.0.0.1:8188/system_stats 2>/dev/null && echo "server: running"

# Can this machine run ComfyUI locally? (GPU/VRAM/disk check)
python scripts/hardware_check.py

If nothing is installed, see Setup & Onboarding below — but always run the hardware check first.

One-line health check

python scripts/health_check.py
# → JSON: comfy_cli on PATH? server reachable? at least one checkpoint? smoke-test passes?

Core Workflow

Step 1: Get a workflow JSON in API format

Workflows must be in API format (each node has class_type). They come from:

  • ComfyUI web UI → Workflow → Export (API) (newer UI) or the legacy "Save (API Format)" button (older UI)
  • This skill's workflows/ directory (ready-to-run examples)
  • Community downloads (civitai, Reddit, Discord) — usually editor format, must be loaded into ComfyUI then re-exported

Editor format (top-level nodes and links arrays) is not directly executable. The scripts detect this and tell you to re-export.

Step 2: See what's controllable

python scripts/extract_schema.py workflow_api.json --summary-only
# → {"parameter_count": 12, "has_negative_prompt": true, "has_seed": true, ...}

python scripts/extract_schema.py workflow_api.json
# → full schema with parameters, model deps, embedding refs

Step 3: Run with parameters

# Local (defaults to http://127.0.0.1:8188)
python scripts/run_workflow.py \
  --workflow workflow_api.json \
  --args '{"prompt": "a beautiful sunset over mountains", "seed": -1, "steps": 30}' \
  --output-dir ./outputs

# Cloud (export API key once; uses correct /api routing automatically)
export COMFY_CLOUD_API_KEY="comfyui-..."
python scripts/run_workflow.py \
  --workflow workflow_api.json \
  --args '{"prompt": "..."}' \
  --host https://cloud.comfy.org \
  --output-dir ./outputs

# Real-time progress via WebSocket (requires `pip install websocket-client`)
python scripts/run_workflow.py \
  --workflow flux_dev.json \
  --args '{"prompt": "..."}' \
  --ws

# img2img / inpaint: pass --input-image to upload + reference automatically
python scripts/run_workflow.py \
  --workflow sdxl_img2img.json \
  --input-image image=./photo.png \
  --args '{"prompt": "make it watercolor", "denoise": 0.6}'

# Batch / sweep: 8 random seeds, parallel up to cloud tier limit
python scripts/run_batch.py \
  --workflow sdxl.json \
  --args '{"prompt": "abstract"}' \
  --count 8 --randomize-seed --parallel 3 \
  --output-dir ./outputs/batch

-1 for seed (or omitting it with --randomize-seed) generates a fresh random seed per run.

Step 4: Present results

The scripts emit JSON to stdout describing every output file:

{
  "status": "success",
  "prompt_id": "abc-123",
  "outputs": [
    {"file": "./outputs/sdxl_00001_.png", "node_id": "9",
     "type": "image", "filename": "sdxl_00001_.png"}
  ]
}

Decision Tree

User saysToolCommand
Lifecycle (use comfy-cli)
"install ComfyUI"comfy-clibash scripts/comfyui_setup.sh
"start ComfyUI"comfy-clicomfy launch --background
"stop ComfyUI"comfy-clicomfy stop
"install X node"comfy-clicomfy node install <name>
"download X model"comfy-clicomfy model download --url <url> --relative-path models/checkpoints
"list installed models"comfy-clicomfy model list
"list installed nodes"comfy-clicomfy node show installed
Execution (use scripts)
"is everything ready?"scripthealth_check.py (optionally with --workflow X --smoke-test)
"what can I change in this workflow?"scriptextract_schema.py W.json
"check if W's deps are met"scriptcheck_deps.py W.json
"fix missing deps"scriptauto_fix_deps.py W.json
"generate an image"scriptrun_workflow.py --workflow W --args '{...}'
"use this image" (img2img)scriptrun_workflow.py --input-image image=./x.png ...
"8 variations with random seeds"scriptrun_batch.py --count 8 --randomize-seed ...
"show me live progress"scriptws_monitor.py --prompt-id <id>
"fetch the error from job X"scriptfetch_logs.py <prompt_id>
Direct REST
"what's in the queue?"RESTcurl http://HOST:8188/queue (local) or --host https://cloud.comfy.org
"cancel that"RESTcurl -X POST http://HOST:8188/interrupt
"free GPU memory"RESTcurl -X POST http://HOST:8188/free

Setup & Onboarding

When a user asks to set up ComfyUI, the FIRST thing to do is ask whether they want Comfy Cloud (hosted, zero install, API key) or Local (install ComfyUI on their machine). Don't start running install commands or hardware checks until they've answered.

Official docs: https://docs.comfy.org/installation CLI docs: https://docs.comfy.org/comfy-cli/getting-started Cloud docs: https://docs.comfy.org/get_started/cloud Cloud API: https://docs.comfy.org/development/cloud/overview

Step 0: Ask Local vs Cloud (ALWAYS FIRST)

Suggested script:

"Do you want to run ComfyUI locally on your machine, or use Comfy Cloud?

  • Comfy Cloud — hosted on RTX 6000 Pro GPUs, all common models pre-installed, zero setup. Requires an API key (paid subscription required to actually run workflows; free tier is read-only). Best if you don't have a capable GPU.
  • Local — free, but your machine MUST meet the hardware requirements:
    • NVIDIA GPU with ≥6 GB VRAM (≥8 GB for SDXL, ≥12 GB for Flux/video), OR
    • AMD GPU with ROCm support (Linux), OR
    • Apple Silicon Mac (M1+) with ≥16 GB unified memory (≥32 GB recommended).
    • Intel Macs and machines with no GPU will NOT work — use Cloud instead.

Which would you like?"

Routing:

  • Cloud → skip to Path A.
  • Local → run hardware check first, then pick a path from Paths B–E based on the verdict.
  • Unsure → run the hardware check and let the verdict decide.

Step 1: Verify Hardware (ONLY if user chose local)

python scripts/hardware_check.py --json
# Optional: also probe `torch` for actual CUDA/MPS:
python scripts/hardware_check.py --json --check-pytorch
VerdictMeaningAction
ok≥8 GB VRAM (discrete) OR ≥32 GB unified (Apple Silicon)Local install — use comfy_cli_flag from report
marginalSD1.5 works; SDXL tight; Flux/video unlikelyLocal OK for light workflows, else Path A (Cloud)
cloudNo usable GPU, <6 GB VRAM, <16 GB Apple unified, Intel Mac, Rosetta PythonSwitch to Cloud unless user explicitly forces local

The script also surfaces wsl: true (WSL2 with NVIDIA passthrough) and rosetta: true (x86_64 Python on Apple Silicon — must reinstall as ARM64).

If verdict is cloud but the user wants local, do not proceed silently. Show the notes array verbatim and ask whether they want to (a) switch to Cloud or (b) force a local install (will OOM or be unusably slow on modern models).

Choosing an Installation Path

Use the hardware check first. The table below is the fallback for when the user has already told you their hardware:

SituationRecommended Path
verdict: cloud from hardware checkPath A: Comfy Cloud
No GPU / want to try without commitmentPath A: Comfy Cloud
Windows + NVIDIA + non-technicalPath B: ComfyUI Desktop
Windows + NVIDIA + technicalPath C: Portable or Path D: comfy-cli
Linux + any GPUPath D: comfy-cli (easiest)
macOS + Apple SiliconPath B: Desktop or Path D: comfy-cli
Headless / server / CI / agentsPath D: comfy-cli

For the fully automated path (hardware check → install → launch → verify):

bash scripts/comfyui_setup.sh
# Or with overrides:
bash scripts/comfyui_setup.sh --m-series --port=8190 --workspace=/data/comfy

It runs hardware_check.py internally, refuses to install locally when the verdict is cloud (unless --force-cloud-override), picks the right comfy-cli flag, and prefers pipx/uvx over global pip to avoid polluting system Python.


Path A: Comfy Cloud (No Local Install)

For users without a capable GPU or who want zero setup. Hosted on RTX 6000 Pro.

Docs: https://docs.comfy.org/get_started/cloud

  1. Sign up at https://comfy.org/cloud
  2. Generate an API key at https://platform.comfy.org/login
  3. Set the key:
    export COMFY_CLOUD_API_KEY="your-comfyui-key"
    
  4. Run workflows:
    python scripts/run_workflow.py \
      --workflow workflows/flux_dev_txt2img.json \
      --args '{"prompt": "..."}' \
      --host https://cloud.comfy.org \
      --output-dir ./outputs
    

Pricing: https://www.comfy.org/cloud/pricing Concurrent jobs: Free/Standard 1, Creator 3, Pro 5. Free tier cannot run workflows via API — only browse models. Paid subscription required for /api/prompt, /api/upload/*, /api/view, etc.


Path B: ComfyUI Desktop (Windows / macOS)

One-click installer for non-technical users. Currently Beta.

Docs: https://docs.comfy.org/installation/desktop

Linux is not supported for Desktop — use Path D.


Path C: ComfyUI Portable (Windows Only)

Docs: https://docs.comfy.org/installation/comfyui_portable_windows

Download from https://github.com/comfyanonymous/ComfyUI/releases, extract, run run_nvidia_gpu.bat. Update via update/update_comfyui_stable.bat.


Path D: comfy-cli (All Platforms — Recommended for Agents)

The official CLI is the best path for headless/automated setups.

Docs: https://docs.comfy.org/comfy-cli/getting-started

Install comfy-cli

# Recommended:
pipx install comfy-cli
# Or use uvx without installing:
uvx --from comfy-cli comfy --help
# Or (if pipx/uvx unavailable):
pip install --user comfy-cli

Disable analytics non-interactively:

comfy --skip-prompt tracking disable

Install ComfyUI

comfy --skip-prompt install --nvidia              # NVIDIA (CUDA)
comfy --skip-prompt install --amd                 # AMD (ROCm, Linux)
comfy --skip-prompt install --m-series            # Apple Silicon (MPS)
comfy --skip-prompt install --cpu                 # CPU only (slow)
comfy --skip-prompt install --nvidia --fast-deps  # uv-based dep resolution

Default location: ~/comfy/ComfyUI (Linux), ~/Documents/comfy/ComfyUI (macOS/Win). Override with comfy --workspace /custom/path install.

Launch / verify

comfy launch --background                       # background daemon on :8188
comfy launch -- --listen 0.0.0.0 --port 8190    # LAN-accessible custom port
curl -s http://127.0.0.1:8188/system_stats      # health check

Path E: Manual Install (Advanced / Unsupported Hardware)

For Ascend NPU, Cambricon MLU, Intel Arc, or other unsupported hardware.

Docs: https://docs.comfy.org/installation/manual_install

git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130
pip install -r requirements.txt
python main.py

Post-Install: Download Models

# SDXL (general purpose, ~6.5 GB)
comfy model download \
  --url "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors" \
  --relative-path models/checkpoints

# SD 1.5 (lighter, ~4 GB, good for 6 GB cards)
comfy model download \
  --url "https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors" \
  --relative-path models/checkpoints

# Flux Dev fp8 (smaller variant, ~12 GB)
comfy model download \
  --url "https://huggingface.co/Comfy-Org/flux1-dev/resolve/main/flux1-dev-fp8.safetensors" \
  --relative-path models/checkpoints

# CivitAI (set token first):
comfy model download \
  --url "https://civitai.com/api/download/models/128713" \
  --relative-path models/checkpoints \
  --set-civitai-api-token "YOUR_TOKEN"

List installed: comfy model list.

Post-Install: Install Custom Nodes

comfy node install comfyui-impact-pack             # popular utility pack
comfy node install comfyui-animatediff-evolved     # video generation
comfy node install comfyui-controlnet-aux          # ControlNet preprocessors
comfy node install comfyui-essentials              # common helpers
comfy node update all
comfy node install-deps --workflow=workflow.json   # install everything a workflow needs

Post-Install: Verify

python scripts/health_check.py
# → comfy_cli on PATH? server reachable? checkpoints? smoke test?

python scripts/check_deps.py my_workflow.json
# → are this workflow's nodes/models/embeddings installed?

python scripts/run_workflow.py \
  --workflow workflows/sd15_txt2img.json \
  --args '{"prompt": "test", "steps": 4}' \
  --output-dir ./test-outputs

Image Upload (img2img / Inpainting)

The simplest way is to use --input-image with run_workflow.py:

python scripts/run_workflow.py \
  --workflow workflows/sdxl_img2img.json \
  --input-image image=./photo.png \
  --args '{"prompt": "make it cyberpunk", "denoise": 0.6}'

The flag uploads photo.png, then injects its server-side filename into whatever schema parameter is named image. For inpainting, pass both:

python scripts/run_workflow.py \
  --workflow workflows/sdxl_inpaint.json \
  --input-image image=./photo.png \
  --input-image mask_image=./mask.png \
  --args '{"prompt": "fill with flowers"}'

Manual upload via REST:

curl -X POST "http://127.0.0.1:8188/upload/image" \
  -F "[email protected]" -F "type=input" -F "overwrite=true"
# Returns: {"name": "photo.png", "subfolder": "", "type": "input"}

# Cloud equivalent:
curl -X POST "https://cloud.comfy.org/api/upload/image" \
  -H "X-API-Key: $COMFY_CLOUD_API_KEY" \
  -F "[email protected]" -F "type=input" -F "overwrite=true"

Cloud Specifics

  • Base URL: https://cloud.comfy.org
  • Auth: X-API-Key header (or ?token=KEY for WebSocket)
  • API key: set $COMFY_CLOUD_API_KEY once and the scripts pick it up automatically
  • Output download: /api/view returns a 302 to a signed URL; the scripts follow it and strip X-API-Key before fetching from the storage backend (don't leak the API key to S3/CloudFront).
  • Endpoint differences from local ComfyUI:
    • /api/object_info, /api/queue, /api/userdata403 on free tier; paid only.
    • /history is renamed to /history_v2 on cloud (the scripts route automatically).
    • /models/<folder> is renamed to /experiment/models/<folder> on cloud (the scripts route automatically).
    • clientId in WebSocket is currently ignored — all connections for a user receive the same broadcast. Filter by prompt_id client-side.
    • subfolder is accepted on uploads but ignored — cloud has a flat namespace.
  • Concurrent jobs: Free/Standard: 1, Creator: 3, Pro: 5. Extras queue automatically. Use run_batch.py --parallel N to saturate your tier.

Queue & System Management

# Local
curl -s http://127.0.0.1:8188/queue | python -m json.tool
curl -X POST http://127.0.0.1:8188/queue -d '{"clear": true}'    # cancel pending
curl -X POST http://127.0.0.1:8188/interrupt                      # cancel running
curl -X POST http://127.0.0.1:8188/free \
  -H "Content-Type: application/json" \
  -d '{"unload_models": true, "free_memory": true}'

# Cloud — same paths under /api/, plus:
python scripts/fetch_logs.py --tail-queue --host https://cloud.comfy.org

Pitfalls

  1. API format required — every script and the /api/prompt endpoint expect API-format workflow JSON. The scripts detect editor format (top-level nodes and links arrays) and tell you to re-export via "Workflow → Export (API)" (newer UI) or "Save (API Format)" (older UI).

  2. Server must be running — all execution requires a live server. comfy launch --background starts one. Verify with curl http://127.0.0.1:8188/system_stats.

  3. Model names are exact — case-sensitive, includes file extension. check_deps.py does fuzzy matching (with/without extension and folder prefix), but the workflow itself must use the canonical name. Use comfy model list to discover what's installed.

  4. Missing custom nodes — "class_type not found" means a required node isn't installed. check_deps.py reports which package to install; auto_fix_deps.py runs the install for you.

  5. Working directorycomfy-cli auto-detects the ComfyUI workspace. If commands fail with "no workspace found", use comfy --workspace /path/to/ComfyUI <command> or comfy set-default /path/to/ComfyUI.

  6. Cloud free-tier API limits/api/prompt, /api/view, /api/upload/*, /api/object_info all return 403 on free accounts. health_check.py and check_deps.py handle this gracefully and surface a clear message.

  7. Timeout for video/audio workflows — auto-detected when an output node is VHS_VideoCombine, SaveVideo, etc.; the default jumps from 300 s to 900 s. Override explicitly with --timeout 1800.

  8. Path traversal in output filenames — server-supplied filenames are passed through safe_path_join to refuse anything escaping --output-dir. Keep this protection on — workflows with custom save nodes can produce arbitrary paths.

  9. Workflow JSON is arbitrary code — custom nodes run Python, so submitting an unknown workflow has the same trust profile as eval. Inspect workflows from untrusted sources before running.

  10. Auto-randomized seed — pass seed: -1 in --args (or use --randomize-seed and omit the seed) to get a fresh seed per run. The actual seed is logged to stderr.

  11. tracking prompt — first run of comfy may prompt for analytics. Use comfy --skip-prompt tracking disable to skip non-interactively. comfyui_setup.sh does this for you.

Verification Checklist

Use python scripts/health_check.py to run the whole list at once. Manual:

  • hardware_check.py verdict is ok OR the user explicitly chose Comfy Cloud
  • comfy --version works (or uvx --from comfy-cli comfy --help)
  • curl http://HOST:PORT/system_stats returns JSON
  • comfy model list shows at least one checkpoint (local) OR /api/experiment/models/checkpoints returns models (cloud)
  • Workflow JSON is in API format
  • check_deps.py reports is_ready: true (or only node_check_skipped on cloud free tier)
  • Test run with a small workflow completes; outputs land in --output-dir

Frequently asked questions

What to verify before installation and use

What does the comfyui source document cover?

Generate images, video, audio, and 3D content through ComfyUI using the official comfy-cli for setup/lifecycle and direct REST/WebSocket API for workflow execution.

How do I install comfyui?

The source record exposes this install command: npx skills add https://github.com/NousResearch/hermes-agent --skill "skills/creative/comfyui". Inspect the command and pinned source before running it.

Which permission-related actions were detected?

Static rules flagged network, exec-script, send-data in the source; the page lists the matching lines and excerpts.

Alternatives

Compare before choosing

Computed 10029,034

garrytan/gbrain

bulk-ingestion

End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.

Computed 10024,921

alirezarezvani/claude-skills

app-store-optimization

App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

Computed 1005,241

dotnet/skills

migrate-vstest-to-mtp

Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing

Computed 991,257

vipshop/cache-dit

cache-dit-model-integration

High-level guide for integrating a new DiT model into cache-dit: Cache (BlockAdapter/ForwardPattern), Context Parallelism, Tensor Parallelism, Text Encoder Parallelism (TE-P), VAE Parallelism (VAE-P), generate CLI, installation, testing workflow, and detailed references. Use when adding support for a new diffusion transformer model in cache-dit.