ModelResolver – Relink missing models and download from HuggingFace/CivitAI

ModelResolver is a powerful ComfyUI extension for automatically resolving missing models in loaded workflows. It features intelligent local fuzzy matching, direct cloud downloads, background download tracking, and automated in-place workflow updating.

Warning

WIP (Work in Progress) — Download and use at your own risk! This project is still under active development and some features may be unfinished or contain bugs.

ComfyUI GitHub Clones Python 3.10+ JavaScript Sponsor Ko-Fi

🔹 Quick Start   |   ⚙️ Configuration   |   ⚡ Aria2 Setup   |   📂 Path Templates


🚀 Key Features

  • 🔍 Intelligent Fuzzy Matching: Scans local ComfyUI model directories and looks for similar files (ignoring case, extensions, or minor naming differences) with similarity confidence scores.
  • ☁️ Multi-Source Cloud Downloader: Searches for and downloads missing files from CivitAI, HuggingFace, CivArchive, Lora Manager Archive, and the ComfyUI-Manager model database.
  • 🔄 In-Place Workflow Updater: Safely replaces model names and paths in your current workflow (supporting nested subgraphs and custom nodes like rgthree's Power Lora Loader or LoraManager).
  • 📥 Background Download Manager: Downloads models asynchronously directly to the correct directories (checkpoints, loras, vae, etc.) with speed tracking, file size display, progress bars, and cancellation/pause support.
  • 🕵️ Loaded Models Inspector: A dedicated tab displaying all models used in the active workflow, including their strength, physical paths, and disk availability status.
  • 📂 Open Containing Folder: Quickly opens Windows Explorer and selects/highlights the model file directly from the interface.
  • 🔗 Custom URL Downloads: Directly paste any custom URL link to download files into target folders with customized names.

🛠️ How It Works (Step-by-Step)

  1. Load Workflow: Load any workflow JSON or image into ComfyUI.
  2. Detection: If the workflow references model files that are missing from your directories, the extension alerts you immediately.
  3. Resolve:
    • Local Search: Click the local search button to find similar filenames you already have on disk (e.g., if they were moved to a different subfolder).
    • Online Search: If the file isn't on disk, search for it online (e.g., on CivitAI via its SHA256 file hash or text search).
  4. Download or Link:
    • Click Download to asynchronously download the model in the background directly into the correct ComfyUI folder.
    • Or select a local alternative suggested by the Fuzzy Matching algorithm.
  5. Apply: Click the apply button to update the ComfyUI workflow with the new, correct model paths. You're ready to click Queue Prompt!

📂 Supported Nodes & Model Types

Model Resolver supports standard ComfyUI mechanisms as well as custom implementations of popular loader nodes:

  • Standard loaders: CheckpointLoader, LoraLoader, VAELoader, ControlNetLoader, UpscaleModelLoader, etc.
  • Advanced loaders: Nodes from the LoraManager suite (LoraLoaderV2, Lora Loader, Lora Stacker), rgthree (Power Lora Loader), and LTX-Video nodes.
  • Subgraphs: Full support for scanning and updating nodes inside nested group subgraphs.

⚡ Downloader Backends and Aria2

Model Resolver supports two download engines configured in the Settings panel:

  1. Python Engine:
    • Out-of-the-box download backend using standard libraries (urllib / aiohttp).
    • No external binaries required.
  2. Aria2 Engine (Recommended):
    • High-performance, multi-threaded downloader.
    • Speeds up large downloads by splitting files and downloading across multiple connections (up to 16 connections/splits).
    • Automatically forwards target cookies, headers, and authentication tokens safely.

Tip

One-Click Aria2 Setup: You do not need to install aria2c manually. The extension features a built-in installer that downloads, extracts, and configures the latest official release matching your OS architecture (Windows, macOS, Linux) with a single click in the Settings panel.

The extension also manages the lifecycle of the aria2 background daemon, automatically starting it when a download starts and stopping it when it remains idle to preserve system resources.


📂 Dynamic Path Templates

When downloading a new model, you can let Model Resolver organize your files automatically based on metadata using templates. The extension offers three Download Path Modes:

  • suggested: Guesses the best subfolder category automatically.
  • manual: Standard custom path mapping.
  • template: Dynamically generates the relative path inside your model category using variables.

Available Template Variables

  • {base_model}: The base model architecture (e.g., SD 1.5, SDXL, Flux). The value can be translated to customized names via Base Model Path Mappings (e.g., mapping sd1.5 to SD1.5 and flux1 to Flux).
  • {author}: Creator/author username or HuggingFace repo publisher.
  • {first_tag}: Primary tag from the model database (mapped via priority hierarchy such as style, concept, character, etc.).
  • {model_name}: Clean model name or file stem.
  • {version_name}: Model release version name (e.g., v1.0).

Default Path Templates

  • Loras: {base_model}/{first_tag} (e.g., Loras/SDXL/style/my_lora_v1.safetensors)
  • Checkpoints: {base_model} (e.g., Checkpoints/Flux/my_flux_model.safetensors)
  • Embeddings: {base_model}

⚙️ Configuration & Settings

Configure credentials and API keys in the Settings panel to authenticate gated downloads:

  • CivitAI API Key & Session Token: Required to download NSFW models or those requiring accepted terms of service.
  • HuggingFace Access Token: Required for gated, private repositories.
  • Brave Search API Key: Fallback search query key to locate public/gated HuggingFace download links.

Important

Built-in Connection Testers: The options panel contains instant Check buttons for CivitAI keys, CivitAI Session Tokens, HuggingFace tokens, and Brave Search keys. You can verify if credentials are valid and active without leaving the interface.


🕵️ Loaded Models Inspector & Local Hashing

  • Loaded Models Tab: Check what models are loaded in the current active python session. It lists paths, model categories, byte sizes, physical existence checks, and confidence levels.
  • Open Containing Folder: Select a model in the Loaded Models tab and click the folder icon to open Windows Explorer with the target file highlighted.
  • Local Hashing (sha256):
    • You can calculate the exact sha256 hash of any local model file in the background.
    • Hashing status is updated in real-time, allowing you to use exact hash queries on CivitAI/CivArchive to retrieve model metadata and link files.

⚡ Installation

Install via ComfyUI-Manager

  1. Search ComfyUI Model Resolver in ComfyUI-Manager and click the Install button.
  2. Restart ComfyUI.

Manual Install

  1. Navigate to the custom_nodes folder in your ComfyUI installation:
    cd ComfyUI/custom_nodes/
    
  2. Clone this repository:
    git clone https://github.com/Azornes/comfyui-model-resolver.git
    
  3. Start or restart ComfyUI. The extension will automatically install any missing dependencies (requests, aiohttp) and load the web interface.

📝 Requirements

  • Python 3.10 or newer
  • Libraries: requests, aiohttp (installed automatically if missing)
  • Modern web browser with JS support (Chrome, Edge, Firefox, Brave)

📜 License

This project is licensed under the MIT License. Feel free to use, modify, and distribute.


💖 Support / Sponsorship

  • ⭐ Give a star — it means a lot to me!
  • 🐛 Report a bug or suggest a feature.
  • 💖 Support my work: 👉 GitHub Sponsors
S
Description
No description provided
Readme MIT
11 MiB
Languages
JavaScript 47.5%
Python 45.7%
CSS 6.8%