Проблема: «Missing Model» в ComfyUI
Работа с ComfyUI часто сопровождается головной болью: при загрузке чужих или старых рабочих процессов (workflows) система выдает ошибки из-за отсутствующих файлов моделей. Пользователям приходится вручную искать веса по хешам, скачивать их, раскладывать по папкам и затем править JSON-файлы или узлы в интерфейсе. Новый проект ModelResolver (автор Azornes) автоматизирует этот процесс, превращая ручную работу в фоновую задачу.
Как это работает: от сканирования до применения
Плагин интегрируется в боковую панель ComfyUI. При открытии интерфейса происходит автоматический сканинг активного workflow. Алгоритм проверяет наличие каждого требуемого файла на диске. Если файл отсутствует, запускается цепочка действий:
- Локальный поиск (Fuzzy Matching): Сначала система ищет похожие файлы на вашем ПК, игнорируя регистр, расширения или незначительные различия в именах. Это полезно, если вы переименовали файл или переместили его.
- Облачный поиск: Если локального совпадения нет, плагин ищет модель в базах данных HuggingFace, CivitAI, CivArchive и Lora Manager Archive. Поиск может осуществляться по SHA256-хешу или текстовому запросу.
- Скачивание и замена: После выбора модели файл скачивается в правильную директорию (checkpoints, loras, vae и т.д.), а пути в узлах ComfyUI обновляются «на лету» (in-place), включая поддержку вложенных подграфов и кастомных нод.
Технические детали и движки загрузки
ModelResolver предлагает гибкую настройку загрузчиков, поддерживая асинхронное скачивание с отслеживанием скорости, паузами и отменой. Особое внимание уделено производительности и обходу ограничений.
| Движок / Транспорт | Особенности и преимущества | Поддержка паузы/отмены |
|---|---|---|
| Aria2 (Рекомендуемый) | Многопоточная загрузка (до 16 соединений), высокая скорость для больших файлов. Автоматически передает куки и токены авторизации. | Да (пауза и отмена) |
| Python (Standard) | Работает «из коробки» без установки внешних бинарников. Поддерживает аутентифицированные запросы к HuggingFace и CivitAI. | Да (отмена с очисткой частичных файлов) |
| Hugging Face Xet | Автоматически активируется для файлов с Xet-метаданными. Использует сжатые данные, что может ускорить передачу по сети. | Да (отмена), но нет паузы |
Для удобства пользователей реализован One-Click Aria2 Setup: плагин сам скачивает, распаковывает и настраивает aria2c под вашу ОС (Windows, macOS, Linux), управляя фоном демоном для экономии ресурсов.
Умная организация файлов и безопасность
Плагин не просто скачивает файлы, но и помогает поддерживать порядок в директориях ComfyUI. Доступны три режима путей:
- Guess: Автоопределение категории (например, Lora vs Checkpoint).
- Manual: Стандартное маппинг путей.
- Template: Динамическая генерация пути на основе переменных, таких как {base_model} (SD 1.5, Flux), {author}, {first_tag} и {model_name}. Например, шаблон
{base_model}/{first_tag}создаст структуруLoras/SDXL/style/my_lora.safetensors.
Для работы с приватными или NSFW-моделями предусмотрены поля для ввода API-ключей CivitAI, HuggingFace и Brave Search с встроенными кнопками проверки валидности токенов. Также добавлена вкладка «Loaded Models Inspector», позволяющая видеть все загруженные в сессию модели, их размер и статус наличия на диске.
Источник: Github ↗
