A powerful and user-friendly extension for ComfyUI that adds a built-in model downloader with a sleek modal interface. Download models, LoRAs, VAEs, and other assets directly from URLs without leaving ComfyUI.
- π High-Speed Downloads: Optimized for datacenter connections with parallel downloading (8 connections, 32MB chunks)
- π¦ Queue Management: Download multiple files with automatic queue processing
- π― Smart Integration: Detects missing models from your workflow and suggests downloads
- π Real-time Progress: Live progress tracking with download speed and ETA
- π‘οΈ Security: Built-in path traversal protection and file validation
- π Auto-Organization: Downloads files to the correct ComfyUI folders (checkpoints, loras, VAEs, etc.)
- βΈοΈ Download Control: Cancel downloads in progress with queue management
- π¨ Clean UI: Modal-based interface that integrates seamlessly with ComfyUI
π Watch Full Video
Models urls are loaded from workflow or https://github.com/Comfy-Org/ComfyUI-Manager/blob/main/model-list.json
-
Navigate to your ComfyUI custom nodes directory:
cd ComfyUI/custom_nodes/ -
Clone this repository:
git clone https://github.com/romandev-codex/ComfyUI-Downloader.git
-
Install dependencies:
cd ComfyUI-Downloader pip install -r requirements.txt -
Restart ComfyUI
- Python 3.8+
- ComfyUI
- Dependencies:
aiohttphf_transfer
- Click the "Downloader" button in the ComfyUI interface (next to the settings button)
- The downloader modal will open
- Paste a model URL in the URL field
- Select the destination folder (checkpoints, loras, vae, etc.)
- Enter a filename (supports subfolders like
subfolder/model.safetensors) - Click "Download"
You can organize downloads into subfolders:
my-loras/character-lora.safetensors
sdxl/checkpoints/my-model.safetensors
- If a file already exists, you'll be prompted for confirmation
- Choose to override or cancel the download
- The extension scans your workflow for missing models
- Missing models are highlighted in the UI for quick downloading
- Multiple downloads are queued automatically
- One download processes at a time for optimal performance
- Cancel queued or active downloads anytime
The extension uses optimized settings for datacenter connections:
- Chunk Size: 32MB (balanced for 500MB to 30GB+ files)
- Parallel Connections: 8 (optimal for datacenter bandwidth)
These settings are configured in the __init__.py file and can be adjusted if needed.
The downloader supports all standard ComfyUI model directories:
- checkpoints
- loras
- vae
- upscale_models
- embeddings
- controlnet
- clip_vision
- And more...
ComfyUI-Downloader includes multiple security measures:
- Path traversal attack prevention
- Filename validation (no backslashes, dots, or escape sequences)
- Path resolution verification
- Only downloads to configured ComfyUI model directories
The extension provides REST API endpoints for programmatic access:
POST /{API_PREFIX}/server_download/start
{
"url": "https://example.com/model.safetensors",
"save_path": "checkpoints",
"filename": "model.safetensors",
"override": false
}
POST /{API_PREFIX}/server_download/cancel
{
"download_id": "checkpoints/model.safetensors"
}
server_download_progress: Real-time progress updatesserver_download_complete: Download completion notificationserver_download_error: Error notifications
ComfyUI-Downloader/
βββ __init__.py # Main extension logic and API endpoints
βββ requirements.txt # Python dependencies
βββ web/
β βββ css/
β β βββ downloader.css # UI styling
β βββ js/
β βββ downloader.js # Extension initialization
β βββ UI.js # Modal UI implementation
βββ README.md
- Make your changes
- Restart ComfyUI to reload the extension
- Test in the browser console for any errors
- Ensure ComfyUI is fully loaded before looking for the button
- Check browser console for JavaScript errors
- Verify the extension is in the
custom_nodesdirectory
- Check internet connectivity
- Verify the URL is accessible
- Check browser console and ComfyUI terminal for error messages
- Ensure you have write permissions to the ComfyUI directories
- The extension is optimized for datacenter connections
- Adjust
CHUNK_SIZEandNUM_CONNECTIONSin__init__.pyif needed - Check your network bandwidth and latency
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - see LICENSE file for details
Created for the ComfyUI community to make model management easier and more efficient.
If you encounter issues or have suggestions:
- Open an issue on GitHub
- Check existing issues for solutions
- Provide error messages and browser console logs when reporting bugs
