Сделал патч для ComfyUI для стабильности Intel Arc, исправляющий работу с памятью и устранивший у меня зависания и вылеты, связанные с VRAM
Лёгкий патч, который исправляет определение доступной VRAM на Intel XPU и использует подход, аналогичный тому, который ComfyUI применяет для NVIDIA. Патч позволил мне работать максимально комфортно даже с тяжелыми моделями без ошибок, вылетов, зависаний Ksampler.
Я уже несколько месяцев владею intel Arc B580 и полностью доволен картой, но заметил, что при запуске тяжелых моделей ComfyUI не корректно отрабатывает при переполнении VRAM.
Оказалось, что при стандартных настройках Comfy на intel не всегда определяет правильно реально доступное количество памяти.
Но спустя несколько недель выяснения причин и тестов, я наконец-то разобрался в чем дело и смог при помощи GPT сделать простой патч, исправляющий эту проблему. Теперь при проверке памяти ComfyUI получает актуальное глобальное значение свободной VRAM и учитывает повторно используемый кеш PyTorch. Благодаря этому штатный менеджер памяти ComfyUI может точнее решать, сколько модели держать в VRAM и когда нужно освобождать память. На своей системе я даже смог тестово понизить дополнительный запас зарезервированной VRAM, что дало буст в скорости, при этом не потерял в стабильности. Сейчас в моих рабочих сценариях B580 по стабильности ведёт себя так же предсказуемо, как рабочая RTX 5060 Ti 16 GB
Патч не добавляет никаких новых нод в интерфейс и не меняет сам процесс генерации. Он просто исправляет способ, которым ComfyUI определяет доступную VRAM на Intel XPU: вместо неточной оценки ComfyUI начинает ориентироваться на реальное состояние памяти видеокарты и лучше понимает, когда модель можно оставить в VRAM, а когда часть данных нужно выгрузить. За счёт этого уменьшается шанс переполнения памяти, зависания KSampler на 0%, вылетов и проблем при переключении тяжёлых моделей.
Установка максимально простая как у обычной custom node
Скачиваете папку с GitHub, кладёте её в ComfyUI/custom_nodes/ и перезапускаете ComfyUI. В интерфейсе никакой отдельной ноды не появится — патч работает автоматически в фоне сразу после запуска.
PS Недавно вышло обновление ComfyUI 0.31.1, после которого ухудшилась стабильность и видел жалобы на reddit от пользователей других производителей GPU.
На моей системе поставил следующие аргументы: --cache-classic --disable-async-offload (по умолчания отключено и так) --oneapi-device-selector level_zero:gpu. Возможно, в будущих версиях ComfyUI эти аргументы уже не понадобятся, так как на предыдущих версиях я их не использовал.
Надеюсь, будет полезно владельцам Intel. Буду рад обратной связи!