The audit of v4.1 surfaced ~70 issues across the five scripts and three
reference docs — most user-visible (silent file overwrites, status-error
misclassified as success, X-API-Key leaked to S3 on /api/view redirect,
Cloud endpoints that 404 because they were renamed). v5.0.0 fixes those
and fills the gaps that previously forced users to write their own glue
(WebSocket monitoring, batch/sweep, img2img upload helper, dep auto-fix,
log fetch, health check, example workflows).
Critical fixes
- run_workflow.py: poll_status now checks status_str==error BEFORE
completed:true, so a failed run no longer reports success
- run_workflow.py: download_output streams to disk via safe_path_join,
preserves server subfolder structure (no silent overwrites), and
retries with exponential backoff
- run_workflow.py: refuses to overwrite a link with a literal in
inject_params (would silently break wiring)
- _common.py: _StripSensitiveOnRedirectSession (subclasses
requests.Session.rebuild_auth) drops X-API-Key/Cookie on cross-host
redirects — fixes a real key-leak path through Cloud's signed-URL
download flow. Tested
- Cloud routing (verified live): /history → /history_v2,
/models/<f> → /experiment/models/<f>, plus folder aliases for the
unet ↔ diffusion_models and clip ↔ text_encoders rename
- check_deps.py: distinguishes 200/empty vs 404 folder_not_found vs
403 free-tier; emits concrete fix_command per missing dep
- extract_schema.py: prompt vs negative_prompt determined by tracing
KSampler.{positive,negative} connections (incl. through Reroute /
Primitive nodes) instead of meta-title heuristic; symmetric
duplicate-name resolution; cycle-safe trace_to_node
- hardware_check.py: multi-GPU pick-best, Apple variant detection,
Rosetta detection, WSL2, ROCm --json, disk-space check, optional
PyTorch probe; powershell preferred over deprecated wmic
- comfyui_setup.sh: prefers pipx → uvx → pip --user (with PEP-668
fallback); idempotent — skips relaunch if server already up;
configurable port/workspace; persistent log; SIGINT trap
New scripts
- run_batch.py — count or sweep (cartesian product), parallel up to
cloud tier limit
- ws_monitor.py — real-time WebSocket viewer; saves preview frames
- auto_fix_deps.py — runs comfy node install / model download for
whatever check_deps reports missing (with --dry-run)
- health_check.py — single command that runs the verification checklist
(comfy-cli + server + checkpoints + optional smoke test that cancels
itself to avoid burning compute)
- fetch_logs.py — pull traceback / status messages for a prompt_id
Coverage expansion
- Param patterns now cover Flux (BasicScheduler, BasicGuider,
RandomNoise, ModelSamplingFlux), SD3, Wan/Hunyuan/LTX video,
IPAdapter, rgthree, easy-use, AnimateDiff
- Embedding refs in CLIPTextEncode strings extracted as model deps
- ckpt_name / vae_name / lora_name / unet_name now controllable so
workflows can be retargeted per run
Examples
- workflows/{sd15,sdxl,flux_dev}_txt2img.json
- workflows/sdxl_{img2img,inpaint}.json
- workflows/upscale_4x.json
- workflows/{animatediff_video,wan_video_t2v}.json + README
Tests
- 117 tests (105 unit + 8 cloud integration + 4 cross-host security)
- Cloud tests auto-skip without COMFY_CLOUD_API_KEY; verified end-to-end
against live cloud API
Backwards compatibility
- All existing CLI flags continue to work; new behavior is opt-in
(--ws, --input-image, --randomize-seed, --flat-output, etc.)
7.4 KiB
comfy-cli Command Reference
Official CLI from Comfy-Org/comfy-cli. Docs: https://docs.comfy.org/comfy-cli/getting-started
Installation
Order of preference:
pipx install comfy-cli # recommended (isolated env)
uvx --from comfy-cli comfy --help # zero-install via uv
pip install --user comfy-cli # fallback
The skill's comfyui_setup.sh picks the best available method.
First run may prompt for analytics. Disable non-interactively:
comfy --skip-prompt tracking disable
Global Options
| Option | Description |
|---|---|
--workspace <path> |
Target a specific ComfyUI workspace |
--recent |
Use most recently used workspace |
--here |
Use current directory as workspace |
--skip-prompt |
No interactive prompts (use defaults) |
-v / --version |
Print version |
Workspace resolution priority:
--workspace(explicit path)--recent(from config)--here(cwd)comfy set-defaultpath- Most recently used
~/comfy/ComfyUI(Linux) or~/Documents/comfy/ComfyUI(macOS/Win)
Lifecycle Commands
comfy install
Download and install ComfyUI + ComfyUI-Manager.
comfy install # interactive GPU selection
comfy install --nvidia
comfy install --amd # ROCm (Linux)
comfy install --m-series # Apple Silicon (MPS)
comfy install --cpu # CPU only (slow)
comfy install --fast-deps # use uv for deps
comfy install --skip-manager # skip ComfyUI-Manager
| Option | Description |
|---|---|
--nvidia / --amd / --m-series / --cpu |
GPU type |
--cuda-version |
11.8, 12.1, 12.4, 12.6, 12.8, 12.9, 13.0 |
--rocm-version |
6.1, 6.2, 6.3, 7.0, 7.1 |
--fast-deps |
uv-based dependency resolution |
--skip-manager |
Don't install ComfyUI-Manager |
--skip-torch-or-directml |
Skip PyTorch install |
--version <ver> |
0.2.0, latest, nightly |
--commit <hash> |
Install specific commit |
--pr "#1234" |
Install from a PR |
--restore |
Restore deps for existing install |
comfy launch
comfy launch # foreground :8188
comfy launch --background # background daemon
comfy launch -- --listen 0.0.0.0 # LAN-accessible
comfy launch -- --port 8190 # custom port
comfy launch -- --cpu # force CPU mode
comfy launch -- --lowvram # 6 GB cards
comfy launch --background -- --listen 0.0.0.0 --port 8190
Common extra args after --: --listen, --port, --cpu, --lowvram,
--novram, --fp16-vae, --force-fp32, --disable-cuda-malloc.
comfy stop
comfy stop
comfy run
Submit a raw workflow JSON to a running server. Limited — no parameter
injection, no structured output download. For agents, use
scripts/run_workflow.py instead.
comfy run --workflow workflow_api.json
comfy run --workflow workflow_api.json --host 10.0.0.5 --port 8188
comfy run --workflow workflow_api.json --timeout 300 --wait
comfy which
comfy which # show targeted workspace
comfy --recent which
comfy set-default
comfy set-default /path/to/ComfyUI
comfy set-default /path/to/ComfyUI --launch-extras="--listen 0.0.0.0"
comfy update
comfy update # update ComfyUI core
comfy node update all # update all custom nodes
comfy node — Custom Node Management
All node operations use ComfyUI-Manager (cm-cli) under the hood.
comfy node show installed # list installed
comfy node show enabled # list enabled
comfy node show all # all available in registry
comfy node simple-show installed # compact list
comfy node install comfyui-impact-pack
comfy node install <name> --uv-compile # ComfyUI-Manager v4.1+ unified resolver
comfy node uninstall <name>
comfy node update <name> | all
comfy node enable <name>
comfy node disable <name>
comfy node fix <name> # fix broken deps
comfy node install-deps --workflow=workflow.json
comfy node deps-in-workflow --workflow=w.json --output=deps.json
comfy node save-snapshot
comfy node restore-snapshot <file>
comfy node bisect start # binary-search a culprit node
comfy node bisect good
comfy node bisect bad
comfy node bisect reset
Dependency Resolution Options
| Flag | Description |
|---|---|
--fast-deps |
comfy-cli built-in uv resolver |
--uv-compile |
ComfyUI-Manager v4.1+ unified resolver (recommended) |
--no-deps |
Skip dep installation |
Make uv-compile default: comfy manager uv-compile-default true
comfy model — Model Management
comfy model list
comfy model list --relative-path models/checkpoints
comfy model download --url <URL>
comfy model download --url <URL> --relative-path models/loras
comfy model download --url <URL> --filename custom_name.safetensors
comfy model remove # interactive
comfy model remove --relative-path models/checkpoints --model-names "model.safetensors"
| Option | Description |
|---|---|
--url |
Download URL (CivitAI, HuggingFace, direct) |
--relative-path |
Subdirectory under workspace (e.g. models/checkpoints) |
--filename |
Custom save filename |
--set-civitai-api-token |
Persist CivitAI token |
--set-hf-api-token |
Persist HuggingFace token |
--downloader |
httpx (default) or aria2 |
Standard model directories:
ComfyUI/models/
├── checkpoints/ # Full model files
├── loras/ # LoRA adapters
├── vae/ # VAE models
├── controlnet/ # ControlNet models
├── clip/ # CLIP / T5 text encoders
├── clip_vision/ # CLIP vision encoders
├── upscale_models/ # ESRGAN / SwinIR / etc.
├── embeddings/ # Textual inversion embeddings
├── unet/ # Standalone UNet weights
├── diffusion_models/ # Flux / SD3 / Wan diffusion models
├── animatediff_models/ # AnimateDiff motion modules
├── ipadapter/ # IPAdapter weights
└── style_models/ # Style adapters
comfy manager — ComfyUI-Manager Settings
comfy manager disable # disable Manager completely
comfy manager enable-gui # enable new GUI
comfy manager disable-gui # API-only
comfy manager enable-legacy-gui # legacy GUI
comfy manager uv-compile-default true # make --uv-compile the default
comfy manager clear # clear startup action
comfy pr-cache — Frontend PR Cache
comfy pr-cache list
comfy pr-cache clean
comfy pr-cache clean 456
Cache expires after 7 days; max 10 builds.
Configuration
| OS | Path |
|---|---|
| Linux | ~/.config/comfy-cli/config.ini |
| macOS | ~/Library/Application Support/comfy-cli/config.ini |
| Windows | ~/AppData/Local/comfy-cli/config.ini |
Stores: default workspace, recent workspace, background server PID, API tokens, manager GUI mode, launch extras.
Discovery
Custom-node registry:
Model browsers:
- https://huggingface.co/models
- https://civitai.com (NSFW; requires API token for many)
- https://comfyworkflows.com (community workflows)