ComfyUI Extension: comfyui-vram-overlay
Professional VRAM monitoring overlay for ComfyUI that displays real-time GPU memory usage as an independent, non-intrusive window. (Description by CC)
Custom Nodes (0)
README
MVU VRAM Overlay for ComfyUI
MVU VRAM Overlay — это профессиональный пакет пользовательских узлов (Custom Node) для ComfyUI, который добавляет легкий, автономный оверлей для мониторинга использования видеопамяти (VRAM) в реальном времени.
В отличие от стандартных дашбордов, этот оверлей работает как отдельный процесс, что гарантирует отсутствие фризов ("замираний") основного интерфейса ComfyUI, даже при тяжелых генерациях.
🚀 Ключевые особенности
- Высокая точность: Данные берутся напрямую из драйвера NVIDIA через
NVML(библиотекаnvidia-ml-py), что обеспечивает отображение реального объема свободной памяти, доступной для CUDA. - Безопасная архитектура: Оверлей запускается как независимый подпроцесс (
subprocess). Сбой или зависание оверлея никак не повлияет на работу сервера ComfyUI. - Автономность: Оверлей автоматически находит процесс ComfyUI по PID и закрывается, если основной процесс завершает работу.
- Визуализация: Минималистичное окно "поверх всех окон" (Always On Top), прозрачное для кликов мыши (Click-through), что позволяет разместить его поверх рабочей области нод.
- MVC Паттерн: Код структурирован по стандартам Model-View-Controller для надежности и легкости поддержки.
📋 Требования
- OS: Windows 10/11 (Linux поддерживается при наличии X11/Wayland и библиотек Qt).
- GPU: NVIDIA (GeForce / Quadro / Tesla).
- Python: 3.10+
- ComfyUI: Актуальная версия.
📦 Установка
1. Клонирование репозитория
Перейдите в папку custom_nodes вашей инсталляции ComfyUI и выполните команду:
cd ComfyUI/custom_nodes
git clone https://github.com/MaenVaerU/MVU-VRAM-Overlay.git
Убедитесь, что папка называется строго MVU-VRAM-Overlay.
2. Установка зависимостей
⚠️ Это критически важный шаг. Оверлей использует PyQt6 для GUI и nvidia-ml-py для связи с драйвером. Их нужно установить в то окружение Python, которое использует ComfyUI.
Для ComfyUI Portable (Windows)
Если вы используете портативную версию, команды нужно выполнять через встроенный интерпретатор:
cd ComfyUI/custom_nodes/MVU-VRAM-Overlay
..\..\python_embeded\python.exe -m pip install -r requirements.txt
Для стандартной установки Python (venv/conda)
Активируйте ваше окружение и выполните:
cd ComfyUI/custom_nodes/MVU-VRAM-Overlay
pip install -r requirements.txt
🛠️ Использование
- Запустите ComfyUI.
- Нажмите Правую кнопку мыши на пустом месте рабочей области -> Add Node.
- Перейдите в меню: MVU -> Utils.
- Выберите узел MVU VRAM Monitor.
- Подключение:
- Узел работает в режиме "Pass-through" (пропускает сигнал). Вы можете подключить его в любое место цепочки, но это необязательно.
- Достаточно просто добавить узел на поле и установить
enabledвTrue.
- Запуск:
- Нажмите Queue Prompt.
- В правом нижнем углу экрана (по умолчанию) появится зеленый текст с количеством свободной VRAM.
Управление
- Чтобы скрыть оверлей, переключите
enabledвFalseи снова запустите Queue Prompt. - Оверлей закроется автоматически при закрытии консоли ComfyUI.
⚙️ Архитектура проекта
Проект построен по принципам чистого кода и разделения ответственности:
-
nodes.py(Controller - Host):- Отвечает за интеграцию с ComfyUI.
- Реализует паттерн Singleton (
OverlayProcessManager) для предотвращения запуска дубликатов. - Управляет жизненным циклом дочернего процесса.
-
mvu_overlay_app.py(View & Model - Client):- Полностью автономное приложение на PyQt6.
- Model: Классы
VramMonitorModel(NVML враппер) иProcessMonitorModel(слежение за PID). - View: Класс
VramOverlayView(безрамочное прозрачное окно). - Controller: Класс
OverlayController(таймеры обновления и логика завершения).
-
__init__.py:- Регистрация узлов в системе ComfyUI.
- Маппинг имен классов и отображаемых названий.
❓ Решение проблем
1. Оверлей не появляется:
- Проверьте консоль ComfyUI. Если видите ошибку
ModuleNotFoundError, значит, зависимости не установлены. Повторите шаг "Установка зависимостей". - Убедитесь, что антивирус не блокирует запуск Python-скриптов из папки
custom_nodes.
2. Ошибка "NVML Shared Library Not Found":
- У вас не установлены или повреждены драйверы NVIDIA. Обновите драйвер видеокарты до последней версии.
3. Текст "VRAM: Err":
- Не удалось получить доступ к GPU. Возможно, видеокарта занята другим критическим процессом или не поддерживается NVML (очень старые модели).
📄 Лицензия
Этот проект распространяется под лицензией MIT. Автор: MVU