Stable Diffusion: Ускоряем скорость генерации изображений в 2 раза с помощью плагина TensorRT
Stable Diffusion — программное обеспечение, создающее изображения по текстовым описаниям, с открытым исходным кодом. И так как это программное обеспечение требует довольно мощные компьютерные комплектующие, работает оно не самым быстрым способом.
И сегодня мы рассмотрим плагин, который ускоряет генерацию изоборажений почти в 2 раза. Имя этому плагину TensorRT.
Итак, для начала если у вас еще не установлен Stable Diffusion, нужно скачать последнюю версию с официального репозитория от Automatic1111. Если Stable Diffusion последней версии уже установлен и присутствует папка venv то необходимо удалить ее. Найти ее можно по этому пути:
После того как вы удали данную папку, необходимо заново запустить файл webui-user.bat который сам установит все необходимые для начала зависимости. Вот так выглядит данный файл:
Когда все установится, Stable Diffusion запустится на локальном адресе, мы сможем перейти к следующему шагу. Так выглядит докозательства что все установилось правильно:
Закрываем консоль с запущенным Stable Diffusion и открываем новую. Далее переходим по пути к нашей папке и активируем виртуальное окружение — venvScriptsactivate.bat.
Далее нам нужно обновить pip до последней версии. Это легко можно сделать вставив следующую команду в консоль python.exe:
-m pip install --upgrade pip
Теперь установим модули нужные нам для работы. А именно TensorRT:
python -m pip install nvidia-cudnn-cu11==8.9.4.25 --no-cache-dir
python -m pip install --pre --extra-index-url https://pypi.nvidia.com/ tensorrt==9.0.1.post11.dev4 --no-cache-dir
После этого можно удалить первый установленный модуль с помощью данной комманды:
python -m pip uninstall -y nvidia-cudnn-cu11
Выходим с виртуального окружения и запускаем Stable Diffusion.
venvScriptsdeactivate.bat
webui-user.bat
Заходим на оффициальный репозиторий и устанавливаем плагин TensorRT для Stable Diffusion Web UI. Во вкладке »Extensions» установим наш плагин по ссылке репозитория:
Выбираем установку по URL — ссылке:
Нажимаем «Install» и ждем конца установки. В консоли мы видим, что плагин устанавливает дополнительные модули:
Как только все установиться, переходим во вкладку »Settings» и в поиске пишем »Quicksettings list», затем в списке выбираем sd_unet. После проделанных действий применяем настройки — Apply settings и Reload UI:
После всего в интерфейсе появится вкладка TensorRT и сверху sd_unet. Перейдем во вкладку TensorRT и создадим профиль для будущей модели. Для каждой модели в которой вы захотите ускроить генерацию необходимо будет создать профиль, который занимает примерно 1.6 гигабайт места на диске.
Жмем «Export Default Engine» и ждем. Это займет примерно 2-3 минуты. Не бойтесь когда всплывет такое уведомление, так и надо:
Весь процесс можно наблюдать в консоли:
Как только все завершиться, придет уведомление об этом в консоли, в папке models/Unet-trt у нас появится TRT модель. Ее нужно
будет выбрать в SD Unet:
Входная форма обязательно должна быть 64-х битной в обоих измерениях (ширине, высоте). Пример 512×512, 512×768. (так же допустимый размер зависит от выбранного профиля). На данном этапе можно спокойно перейти к генерации изображения. Генерация на таких же параметрах с TRT занимает около 3-х секунд.
Генерация без TRT занимает от 5.5 и более секунд:
На этом все, надеюсь статья оказалась для Вас полезной!
Texnologiyalar
Stable Diffusion: Ускоряем скорость генерации изображений в 2 раза с помощью плагина TensorRT