Comfyui Inventory

mckruz/comfyui-expert/skills/comfyui-inventory

作者 mckruzdee27dc3d69b無授權條款91 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫6 個月前更新

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.

已封存僅含說明DevOps & Cloud
AI 產生的概覽

盤點已安裝的 ComfyUI 模型、自訂節點與系統能力,並快取結果供工作流程驗證使用。

功能
此技能用來探索使用者 ComfyUI 環境中已安裝的內容:可查詢正在運作的 ComfyUI API,也可在離線狀態下掃描安裝目錄中的模型與自訂節點資料夾。它會把 GPU、VRAM、版本資訊、依類型分類的模型檔名,以及自訂節點套件記錄到快取清單檔案中。它也說明如何用這份清單驗證工作流程 JSON,並回報缺少的節點或模型,提供安裝或下載建議。
適用情境
在產生或執行 ComfyUI 工作流程之前使用,以確認實際可用的模型、節點與硬體資源。也適合用來診斷模型或節點缺少的錯誤,並在安裝新項目後重新整理快取清單。
執行需求
需要 PowerShell(pwsh),並透過 COMFYUI_PATH 環境變數提供 ComfyUI 安裝路徑。線上模式需要能連線到本機的 ComfyUI 服務 API;離線模式需要對 ComfyUI 目錄的檔案系統存取權。此技能未附帶指令碼,僅提供操作說明。

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/checkpointscurl http://127.0.0.1:8188/models/lorascurl http://127.0.0.1:8188/models/vaecurl http://127.0.0.1:8188/models/controlnetcurl http://127.0.0.1:8188/models/clipcurl http://127.0.0.1:8188/models/clip_visioncurl http://127.0.0.1:8188/models/upscale_modelscurl 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 ClassPackage
ApplyInstantIDComfyUI_InstantID
IPAdapterUnifiedLoaderComfyUI_IPAdapter_plus
FaceDetailerComfyUI-Impact-Pack
ReactorFaceSwapComfyUI-ReActor
AnimateDiffLoaderWithContextComfyUI-AnimateDiff-Evolved
VideoHelper*ComfyUI-VideoHelperSuite
ControlNetApply*comfyui_controlnet_aux
UltimateSDUpscaleComfyUI_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

來源與署名

來源:mckruz/comfyui-expert位於skills/comfyui-inventory提交dee27dc

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架