ComfyUI Extension: comfyui-vram-overlay

Authored by Maenvaeru

Created

Updated

0 stars

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
    

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

    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