Extensions/ModelPulse
ComfyUI Extension

ModelPulse

Track model usage frequency to identify abandoned or underutilized models. Shows usage stats, file sizes, and highlights stale models in a sidebar panel.

By Setmaster·Created 7 months ago·Updated 7 months ago· 1
Setmaster/ComfyUI-ModelPulse
Nodes
On cloudLocal install
Stars1
Updated7 months ago
Readme

ModelPulse

A ComfyUI extension that tracks model usage frequency, helping you identify abandoned or underutilized models to manage storage efficiently.

ComfyUI Python Platform

Features

  • Automatic Tracking - Monitors usage of all model types: checkpoints, LoRAs, VAEs, ControlNets, CLIP, UNETs, upscalers, GGUF, and more
  • Sidebar Panel - View usage statistics directly in ComfyUI's sidebar
  • File Size Display - Shows model file sizes (GB/MB) to help identify storage-heavy models
  • Time Filtering - View usage for all time, this month, or this week
  • Smart Sorting - Sort by last used, usage count, or name
  • Stale Detection - Models unused for 30+ days are highlighted (configurable threshold)
  • Category Grouping - Models organized by type with collapsible sections
  • Reset Tracking - Clear all usage data from the settings panel
  • Zero Dependencies - Uses only Python standard library

Installation

Option 1: ComfyUI Manager (Recommended)

Search for "ModelPulse" in ComfyUI Manager and click Install.

Option 2: Manual Installation

cd ComfyUI/custom_nodes
git clone https://github.com/Setmaster/ComfyUI-ModelPulse.git

Restart ComfyUI after installation.

Usage

  1. Click the chart icon in the ComfyUI sidebar to open ModelPulse
  2. Run workflows as usual - model usage is tracked automatically
  3. Use the tabs to filter by time period (All Time / Month / Week)
  4. Use the dropdown to sort by Last Used, Usage Count, or Name
  5. Click category headers to collapse/expand sections

Tracked Model Types

| Category | Loader Nodes | |----------|-------------| | Checkpoints | CheckpointLoaderSimple, CheckpointLoader | | LoRAs | LoraLoader, LoraLoaderModelOnly | | VAEs | VAELoader | | ControlNets | ControlNetLoader | | CLIP | CLIPLoader, DualCLIPLoader | | UNETs | UNETLoader | | Upscalers | UpscaleModelLoader | | Style Models | StyleModelLoader | | GLIGEN | GLIGENLoader | | GGUF | UnetLoaderGGUF, CLIPLoaderGGUF, DualCLIPLoaderGGUF, TripleCLIPLoaderGGUF, QuadrupleCLIPLoaderGGUF |

Custom node loaders (Impact Pack, Efficiency Nodes, etc.) are also detected via pattern matching.

API Endpoints

ModelPulse exposes REST endpoints for programmatic access:

| Endpoint | Method | Description | |----------|--------|-------------| | /modelpulse/usage | GET | Get all usage data (supports ?timeframe= and ?sort= params) | | /modelpulse/model/{id} | GET | Get detailed data for a specific model | | /modelpulse/categories | GET | Get category list with counts | | /modelpulse/reset | POST | Reset all tracking data (requires {"confirm": true}) |

Data Storage

Usage data is stored in:

ComfyUI/user/default/modelpulse/usage_data.json

The data persists across ComfyUI restarts and can be backed up or edited manually.

Requirements

  • ComfyUI 0.3.0 or later (Vue 3 frontend)
  • Python 3.10+
  • No external Python dependencies

License

MIT License - see LICENSE for details.

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.