SuperAPI AI 工具集

comfyui-inventory

智能体与模型

查看项目

更新于 10-15 12:08

技能介绍

用途

ComfyUI Inventory 用于发现用户 ComfyUI 实例中已安装的内容,并缓存结果以供工作流校验。其核心目的是:每次生成工作流之前都必须先进行库存检查,以防止引用未下载的模型、使用未安装的节点,或超出显存(VRAM)限制。

主要能力

两种发现模式

在线模式(ComfyUI API 运行中)

查询实时服务器以获取权威信息。

  1. 系统信息:
curl http://127.0.0.1:8188/system_stats

提取:GPU 名称、总显存、空闲显存、ComfyUI 版本。

  1. 已安装节点:
curl http://127.0.0.1:8188/object_info

返回所有已注册的节点类及其输入/输出规格。

  1. 已安装模型(按类型):
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

离线模式(目录扫描)

当 ComfyUI 未运行时,直接扫描文件系统。

需要:ComfyUI 安装路径(例如 C:\ComfyUI)

扫描目录:

{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_nodes/ 下的目录。每个目录名对应一个节点包(例如 ComfyUI_IPAdapter_plus、ComfyUI-Impact-Pack)。

缓存格式

将结果保存到 state/inventory.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"
  ]
}

工作流校验

给定一个工作流 JSON,对照库存进行校验:

对每个节点:

  1. 检查 class_type 是否在已知节点类中
  2. 若缺失:识别哪个 custom_node 包提供它
  3. 建议安装:"Install via ComfyUI-Manager: {package_name}"

对每个模型引用:

  1. 检查文件名是否在该类型的库存模型中
  2. 若缺失:在 references/models.md 中查找下载链接
  3. 报告:"Missing: {filename} - Download from {url} -> {path}"

常见节点到包的映射

节点类 包
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

缓存新鲜度

  • 在活跃会话期间,缓存有效期为 1 小时
  • 当用户安装新模型/节点时使缓存失效
  • 强制刷新:scan-inventory.ps1 或 API 重新查询

使用方式

该技能由其他技能调用:

  • 由 comfyui-workflow-builder 在生成工作流之前调用
  • 由 comfyui-character-gen(通过 agent wrapper)在模型选择时调用
  • 由 comfyui-troubleshooter 在诊断缺失模型错误时调用

结果存储在 state/inventory.json 中,供所有技能引用。

适用场景

  • 在生成 ComfyUI 工作流前确认模型与节点是否可用
  • 诊断工作流中缺失模型或节点的问题
  • 为角色生成等任务选择可用模型

限制

  • 在线模式需要 ComfyUI API 正在运行
  • 离线模式需要提供 ComfyUI 安装路径
  • 缓存有效期为 1 小时,安装新内容后需使缓存失效
  • 资料未提供其他平台、收费或价格信息