Files
Setmaster 646c989da6 Prepare for ComfyUI Manager publication
- Add pyproject.toml for new ComfyUI Manager system
- Add MIT LICENSE file
- Fix GitHub URL in README
2026-01-15 18:12:58 -05:00

94 lines
3.2 KiB
Markdown

# ModelPulse
A ComfyUI extension that tracks model usage frequency, helping you identify abandoned or underutilized models to manage storage efficiently.
![ComfyUI](https://img.shields.io/badge/ComfyUI-0.3.0+-blue)
![Python](https://img.shields.io/badge/Python-3.10+-green)
![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20Linux%20%7C%20macOS-lightgrey)
## 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
```bash
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](LICENSE) for details.
## Contributing
Contributions are welcome! Please feel free to submit issues and pull requests.