ComfyUI-ModelSync
A custom node extension that provides model version tracking, auto-update system, multi-GPU sync, and metadata management for HuggingFace and CivitAI models.
ComfyUI-ModelSync
Model Auto-Update & Multi-GPU Sync for ComfyUI
A custom node extension that provides:
- Model Version Tracking - Detect when HuggingFace/CivitAI models have updates
- Auto-Update System - Configurable automatic model downloads
- Multi-GPU Sync - Sync models to secondary machines filtered by VRAM capacity
- Metadata Management - Track installed models with hashes, versions, sources
Features
Model Version Tracking
- Automatically detect updates for models from HuggingFace and CivitAI
- Compare local files with remote versions using SHA256 hashes
- Cache version information to minimize API calls
Auto-Update System
- Background scheduler for periodic update checks
- Configurable update intervals
- Automatic downloads with hash verification
- Backup old versions before updating
Multi-GPU Sync
- Sync models to secondary machines using rsync over SSH
- Filter models by VRAM requirements
- Generate standalone sync scripts for manual execution
- Configurable per-target settings
Web UI
- Integrated panel in ComfyUI interface
- View all tracked models and their status
- Configure sync targets and settings
- Trigger manual updates and syncs
Installation
Using ComfyUI Manager (Recommended)
Search for "ModelSync" in ComfyUI Manager and install.
Manual Installation
-
Clone this repository into your ComfyUI custom_nodes directory:
cd ComfyUI/custom_nodes git clone https://github.com/benfinklea/ComfyUI-ModelSync.git -
Install dependencies:
cd ComfyUI-ModelSync pip install -r requirements.txt -
Restart ComfyUI
Usage
Web Interface
-
Click the "Model Sync" button in the ComfyUI menu
-
Models Tab: View and manage tracked models
- Click "Scan" to discover models in your models directory
- Click "Check Updates" to query HuggingFace/CivitAI for updates
- Enable auto-update per model using the checkbox
- Click "Download" to update individual models
-
Sync Targets Tab: Configure machines to sync to
- Add targets with SSH host and models path
- Set VRAM limits to filter which models sync
- Click "Sync Now" to sync to a specific target
-
Settings Tab: Configure global options
- Enable/disable auto-update
- Set check interval
- Toggle download verification and backups
API Endpoints
| Endpoint | Method | Description |
|----------|--------|-------------|
| /modelsync/models | GET | List all tracked models |
| /modelsync/models/scan | POST | Scan filesystem for models |
| /modelsync/models/{id} | GET | Get model details |
| /modelsync/models/{id} | PATCH | Update model settings |
| /modelsync/check | POST | Check models for updates |
| /modelsync/download/{id} | POST | Download model update |
| /modelsync/config | GET/POST | Get/set configuration |
| /modelsync/targets | GET/POST | List/add sync targets |
| /modelsync/targets/{id} | DELETE | Remove sync target |
| /modelsync/sync/{id} | POST | Sync to specific target |
| /modelsync/sync | POST | Sync to all targets |
| /modelsync/status | GET | Get overall status |
Setting Model Sources
To enable update checking for a model, set its source URL:
curl -X PATCH http://localhost:8188/modelsync/models/1 \
-H "Content-Type: application/json" \
-d '{"source_url": "https://huggingface.co/stabilityai/sdxl-vae/resolve/main/sdxl_vae.safetensors"}'
Or use the optional workflow node "Set Model Source".
Configuring Sync Targets
Add a sync target:
curl -X POST http://localhost:8188/modelsync/targets \
-H "Content-Type: application/json" \
-d '{
"name": "secondary-gpu",
"ssh_host": "[email protected]",
"model_path": "/home/user/ComfyUI/models",
"max_vram_mb": 16000
}'
VRAM Filtering
Models are filtered based on estimated VRAM requirements:
| Pattern | Estimated VRAM | |---------|----------------| | wan, hunyuan, mochi | 48 GB | | flux-dev | 24 GB | | flux-schnell | 12 GB | | sdxl | 12 GB | | sd15, sd1.5 | 6 GB | | lora | 2 GB |
Models larger than the target's max_vram_mb will be skipped during sync.
Configuration
Default configuration values:
| Key | Default | Description |
|-----|---------|-------------|
| auto_update_enabled | false | Enable automatic updates |
| check_interval_hours | 24 | Hours between update checks |
| cache_ttl_hours | 6 | Hours to cache version info |
| verify_downloads | true | Verify file hash after download |
| backup_before_update | true | Create .bak before replacing |
| max_concurrent_downloads | 2 | Max simultaneous downloads |
Optional Workflow Nodes
Three utility nodes are included for workflow integration:
- Model Info (ModelSync) - Output model metadata (source URL, VRAM, update status)
- Check Model Update (ModelSync) - Check if a specific model has updates
- Set Model Source (ModelSync) - Associate a model with its source URL
Database
ModelSync uses SQLite for metadata storage. The database is stored at:
ComfyUI/custom_nodes/ComfyUI-ModelSync/modelsync.db
Requirements
- Python 3.10+
- ComfyUI
huggingface_hub>=0.20.0aiohttp>=3.9.0- SSH and rsync (for multi-GPU sync)
License
MIT License - see LICENSE file for details.
Contributing
Contributions are welcome! Please open an issue or pull request on GitHub.
Support
For issues and feature requests, please use the GitHub issue tracker.