Extensions/comfyui-vram-overlay
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)

By Maenvaeru·Created 8 months ago·Updated 8 months ago· 1
Maenvaeru/comfyui-vram-overlay
Nodes1
On cloudLocal install
CategoryMVU/Utils
Stars1
Updated8 months ago
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

🛠️ Использование

  1. Запустите ComfyUI.
  2. Нажмите Правую кнопку мыши на пустом месте рабочей области -> Add Node.
  3. Перейдите в меню: MVU -> Utils.
  4. Выберите узел MVU VRAM Monitor.
  5. Подключение:
    • Узел работает в режиме "Pass-through" (пропускает сигнал). Вы можете подключить его в любое место цепочки, но это необязательно.
    • Достаточно просто добавить узел на поле и установить enabled в True.
  6. Запуск:
    • Нажмите 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