Все чаще меня удручает тот факт, что имеющаяся в моем распоряжении видавшая виды GTX 1080 чудовищно медленно обрабатывает workflow с SD3M/SDXL/Flux моделями - генерация картинки идёт со скоростью до 30 секунд на каждую итерацию, и, если учесть, что параметр «Steps» в пробном workflow установлен в значение «22», времени уходит неоправданно много.
Поэтому проведём небольшую оптимизацию ComfyUI - воспользуемся Python-модулем venv (virtual environments, очень полезная вещь между прочим), призванным, в частности, ускорять работу генеративных ИИ-моделей. В комплект поставки портативной версии ComfyUI он не входит, однако есть множество способов его установки, которые в итоге сводятся к развёртыванию полноценного окружения Python на локальном ПК - и активации необходимого модуля уже из этого окружения.
Среди истинных фанатов генеративного ИИ давно водится за правило иметь у себя несколько популярных генераторов как то AUTOMATIC1111, Forge, Fooocus и ComfyUI.
В этом случае для нас всё значительно проще: модуль venv уже развёрнут в AUTOMATIC1111, и всё, что требуется сделать для активации его при запуске рабочей среды ComfyUI, - это должным образом произвести его вызов.
Скопируем наш run_nvidia_gpu.bat в новый, с именем, допустим, run_with_venv.bat. Исходный файл запуска весьма лаконичен — он просто вызывает портативно развёрнутую копию Python с параметром --windows-standalone-build:
.\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build
pause
Параметр этот сам по себе не слишком однозначен - он подразумевает некие оптимизации, которые, скорее всего, рассчитаны как раз на более свежие графические адаптеры NVIDIA и потому могут ухудшать жизнь тех, кто до сих пор продолжает хранить верность своим заслуженным GTX. По этой причине уберём --windows-standalone-build из командной строки, а заодно откажется и от другой новомодной оптимизации — активного по умолчанию «умного менеджера памяти», smart memory, который стремится удерживать как можно больше информации в VRAM, не выгружая её. Это действительно ускоряет рисование ИИ-картинок, однако вместе с тем превращает наш морально устаревший компьютер в однозадачную систему — ни заниматься веб-сёрфингом, ни даже работать с документами и почтой на ПК параллельно с активностью рабочей среды становится уже невозможно. Так что для тех, кто не располагает выделенным компьютером для ИИ-генераций, оптимальным представляется такой BAT-файл для запуска ComfyUI:
@echo off
call cd D:\SDPortable\stable-diffusion-webui\venv\Scripts
echo %cd%
call activate.bat
echo venv activated
call cd D:\SDComfyUI
echo %cd%
call .\python_embeded\python.exe -s ComfyUI\main.py --disable-smart-memory
pause
Модифицировать свой BAT-файл для запуска ComfyUI с предварительной активацией venv можно в любом простом текстовом редакторе. Здесь предполагается, что портативная установка ComfyUI проведена в каталог D:\SDComfyUI\, а AUTOMATIC1111 ранее была проинсталлирована в D:\SDPortable\. Да-да, я не устаю повторять что portable вариант любой сборки для вас всегда будет предпочтительнее. Конечно еcли у вас не Matrix.
Многочисленные «echo» нужны просто для визуального контроля того, что смена директорий проходит нормально и нужные команды исполняются, — после того как всё будет отлажено, их можно убрать из BAT-файла.
В принципе это все, ваш ComfyUI теперь должен работать намного веселее.
Удачи.
Человек не знаком с кодом ComfyUI, поэтому его советы являются тупо "мне так кажется".
ReplyDeleteКто вам мешает предметно поспорить с ним на 3DNews? Ну чтобы нам не казалось).
ReplyDeleteЯ тут прочитал, тут и пишу.
ReplyDeleteЦитата "скорее всего, рассчитаны как раз на более свежие графические адаптеры NVIDIA и потому могут ухудшать жизнь тех..." -
- "охренительное техническое обоснование"!!!
Типа:
- "Я просто не знаю, что там скрывается за этим ключом запуска, но мне кажется, что это команда на запуск межконтинентальной ракеты"
Не знаешь - не болтай херню всякую...
Обязательно передам ваши замечания автору идеи. И следовательно - критикуеш, предлагай! Где можно почитать про Ваши идеи оптимизации ComfyUI?
ReplyDeleteДо речі, ComfyUI працює через venv в Stabіlity Matrix та в SimpleSDXL.
ReplyDelete--force-fp16, for VRAM optimal usage
ReplyDelete--disable-smart-memory, for VRAM agressive reusage