Claude
Skills
Sign in
Back

comfyui-inventory

Included with Lifetime
$97 forever

Discover and cache all installed ComfyUI models, custom nodes, and system capabilities. Works online (API queries) and offline (directory scanning). Use before generating workflows to verify available resources.

Backend & APIs

What this skill does


# ComfyUI Inventory Skill

Discovers what's installed in the user's ComfyUI instance and caches results for workflow validation.

## Purpose

Every workflow generation MUST be preceded by an inventory check. This prevents:
- Referencing models that aren't downloaded
- Using nodes that aren't installed
- Exceeding VRAM limits

## Two Discovery Modes

### Online Mode (ComfyUI API Running)

Query the live server for authoritative information.

**1. System info:**
```bash
curl http://127.0.0.1:8188/system_stats
```
Extracts: GPU name, total VRAM, free VRAM, ComfyUI version.

**2. Installed nodes:**
```bash
curl http://127.0.0.1:8188/object_info
```
Returns all registered node classes with their input/output specifications.

**3. Installed models (per type):**
```bash
curl http://127.0.0.1:8188/models/checkpoints
curl http://127.0.0.1:8188/models/loras
curl http://127.0.0.1:8188/models/vae
curl http://127.0.0.1:8188/models/controlnet
curl http://127.0.0.1:8188/models/clip
curl http://127.0.0.1:8188/models/clip_vision
curl http://127.0.0.1:8188/models/upscale_models
curl http://127.0.0.1:8188/models/diffusion_models
```

### Offline Mode (Directory Scan)

When ComfyUI isn't running, scan the filesystem directly.

**Requires**: ComfyUI installation path (e.g., `C:\ComfyUI`)

**Scan directories:**
```
{ComfyUI}/models/checkpoints/    → .safetensors, .ckpt
{ComfyUI}/models/loras/          → .safetensors
{ComfyUI}/models/vae/            → .safetensors, .pt
{ComfyUI}/models/controlnet/     → .safetensors, .pth
{ComfyUI}/models/clip/           → .safetensors
{ComfyUI}/models/clip_vision/    → .safetensors
{ComfyUI}/models/upscale_models/ → .pth, .safetensors
{ComfyUI}/models/diffusion_models/ → .safetensors
{ComfyUI}/models/ipadapter/      → .safetensors, .bin
{ComfyUI}/models/instantid/      → .bin
{ComfyUI}/models/insightface/    → .onnx + folders
{ComfyUI}/models/facerestore_models/ → .pth
{ComfyUI}/models/ultralytics/bbox/ → .pt
{ComfyUI}/custom_nodes/          → folder names = node packages
```

**Custom node detection**: List directories under `custom_nodes/`. Each directory name corresponds to a node package (e.g., `ComfyUI_IPAdapter_plus`, `ComfyUI-Impact-Pack`).

## Cache Format

Save results to `state/inventory.json`:

```json
{
  "last_updated": "2026-02-06T12:00:00Z",
  "mode": "online",
  "comfyui_version": "0.3.10",
  "system": {
    "gpu": "NVIDIA RTX 5090",
    "vram_total_gb": 32,
    "vram_free_gb": 28
  },
  "models": {
    "checkpoints": ["flux1-dev.safetensors", "RealVisXL_V5.0.safetensors"],
    "loras": ["sage_character.safetensors"],
    "vae": ["ae.safetensors", "wan_2.1_vae.safetensors"],
    "controlnet": ["instantid_controlnet.safetensors"],
    "clip": ["t5xxl_fp16.safetensors", "clip_l.safetensors"],
    "clip_vision": ["CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors"],
    "upscale_models": ["4x-UltraSharp.pth"],
    "diffusion_models": ["wan2.1_i2v_720p_14b_bf16.safetensors"],
    "ipadapter": ["ip-adapter-faceid-plusv2_sd15.bin"],
    "instantid": ["ip-adapter.bin"],
    "insightface": ["inswapper_128.onnx"],
    "facerestore": ["codeformer.pth"],
    "detection": ["face_yolov8m.pt"]
  },
  "custom_nodes": [
    "ComfyUI-Manager",
    "ComfyUI_IPAdapter_plus",
    "ComfyUI_InstantID",
    "ComfyUI-Impact-Pack",
    "ComfyUI-AnimateDiff-Evolved",
    "ComfyUI-VideoHelperSuite"
  ]
}
```

## Workflow Validation

Given a workflow JSON, validate against inventory:

```
For each node:
  1. Check class_type against known node classes
  2. If missing: identify which custom_node package provides it
  3. Suggest install: "Install via ComfyUI-Manager: {package_name}"

For each model reference:
  1. Check filename against inventory models of that type
  2. If missing: look up in references/models.md for download link
  3. Report: "Missing: {filename} - Download from {url} -> {path}"
```

## Common Node-to-Package Mapping

| Node Class | Package |
|-----------|---------|
| ApplyInstantID | ComfyUI_InstantID |
| IPAdapterUnifiedLoader | ComfyUI_IPAdapter_plus |
| FaceDetailer | ComfyUI-Impact-Pack |
| ReactorFaceSwap | ComfyUI-ReActor |
| AnimateDiffLoaderWithContext | ComfyUI-AnimateDiff-Evolved |
| VideoHelper* | ComfyUI-VideoHelperSuite |
| ControlNetApply* | comfyui_controlnet_aux |
| UltimateSDUpscale | ComfyUI_UltimateSDUpscale |
| VHS_* | ComfyUI-VideoHelperSuite |
| RIFE* | ComfyUI-Frame-Interpolation |

## Cache Freshness

- Cache is valid for **1 hour** during active sessions
- Invalidate cache when user installs new models/nodes
- Force refresh: `scan-inventory.ps1` or API re-query

## Integration

- Called by `comfyui-workflow-builder` before generating workflows
- Called by `comfyui-character-gen` (via agent wrapper) for model selection
- Called by `comfyui-troubleshooter` when diagnosing missing model errors
- Results stored in `state/inventory.json` for all skills to reference

Related in Backend & APIs