Stable Diffusion — программное обеспечение, создающее изображения по текстовым описаниям, с открытым исходным кодом. И так как это программное обеспечение требует довольно мощные компьютерные комплектующие, работает оно не самым быстрым способом.
И сегодня мы рассмотрим плагин, который ускоряет генерацию изоборажений почти в 2 раза. Имя этому плагину TensorRT.

Установка Stable Diffusion
Итак, для начала если у вас еще не установлен Stable Diffusion, нужно скачать последнюю версию с официального репозитория от Automatic1111. Если Stable Diffusion последней версии уже установлен и присутствует папка venv то необходимо удалить ее. Найти ее можно по этому пути:

Stable Diffusion: Ускоряем скорость генерации изображений в 2 раза с помощью плагина TensorRT


После того как вы удали данную папку, необходимо заново запустить файл webui-user.bat который сам установит все необходимые для начала зависимости. Вот так выглядит данный файл:


Когда все установится, Stable Diffusion запустится на локальном адресе, мы сможем перейти к следующему шагу. Так выглядит докозательства что все установилось правильно:


Подготовка к установке плагина
Закрываем консоль с запущенным Stable Diffusion и открываем новую. Далее переходим по пути к нашей папке и активируем виртуальное окружение - venv\Scripts\activate.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.
venv\Scripts\deactivate.bat⁡
⁡⁡webui-user.bat


Установка плагина TensorRT
Заходим на оффициальный репозиторий и устанавливаем плагин 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-х битной в обоих измерениях (ширине, высоте). Пример 512x512, 512x768. (так же допустимый размер зависит от выбранного профиля). На данном этапе можно спокойно перейти к генерации изображения. Генерация на таких же параметрах с TRT занимает около 3-х секунд.
Генерация без TRT занимает от 5.5 и более секунд:


На этом все, надеюсь статья оказалась для Вас полезной!