mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-03 02:11:48 +00:00
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.)
255 lines
7.4 KiB
Markdown
255 lines
7.4 KiB
Markdown
# comfy-cli Command Reference
|
|
|
|
Official CLI from [Comfy-Org/comfy-cli](https://github.com/Comfy-Org/comfy-cli).
|
|
Docs: https://docs.comfy.org/comfy-cli/getting-started
|
|
|
|
## Installation
|
|
|
|
Order of preference:
|
|
|
|
```bash
|
|
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:
|
|
```bash
|
|
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:
|
|
1. `--workspace` (explicit path)
|
|
2. `--recent` (from config)
|
|
3. `--here` (cwd)
|
|
4. `comfy set-default` path
|
|
5. Most recently used
|
|
6. `~/comfy/ComfyUI` (Linux) or `~/Documents/comfy/ComfyUI` (macOS/Win)
|
|
|
|
## Lifecycle Commands
|
|
|
|
### `comfy install`
|
|
|
|
Download and install ComfyUI + ComfyUI-Manager.
|
|
|
|
```bash
|
|
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`
|
|
|
|
```bash
|
|
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`
|
|
|
|
```bash
|
|
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.
|
|
|
|
```bash
|
|
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`
|
|
|
|
```bash
|
|
comfy which # show targeted workspace
|
|
comfy --recent which
|
|
```
|
|
|
|
### `comfy set-default`
|
|
|
|
```bash
|
|
comfy set-default /path/to/ComfyUI
|
|
comfy set-default /path/to/ComfyUI --launch-extras="--listen 0.0.0.0"
|
|
```
|
|
|
|
### `comfy update`
|
|
|
|
```bash
|
|
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.
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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:
|
|
- https://registry.comfy.org/
|
|
|
|
Model browsers:
|
|
- https://huggingface.co/models
|
|
- https://civitai.com (NSFW; requires API token for many)
|
|
- https://comfyworkflows.com (community workflows)
|