stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610aba7d90b9

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

Установка Stable Diffusion

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

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

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

stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610aba89e18b

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

stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610aba8dd076

Подготовка к установке плагина

Закрываем консоль с запущенным Stable Diffusion и открываем новую. Далее переходим по пути к нашей папке и активируем виртуальное окружение — venvScriptsactivate.bat.

Так выглядит активация виртуального окружения.

stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610aba93b517

Далее нам нужно обновить pip до последней версии. Это легко можно сделать вставив следующую команду в консоль⁡ python.exe:

-m pip install --upgrade pip
stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610aba9796c2

Теперь установим модули нужные нам для работы. А именно 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
stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610aba9c8d74

После этого можно удалить первый установленный модуль с помощью данной комманды:

python -m pip uninstall -y nvidia-cudnn-cu11
stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610abaa3e9c8

Выходим с виртуального окружения и запускаем Stable Diffusion.
venvScriptsdeactivate.bat⁡
⁡⁡webui-user.bat

stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610abaa784b5

Установка плагина TensorRT

Заходим на оффициальный репозиторий и устанавливаем плагин TensorRT для Stable Diffusion Web UI. Во вкладке ⁡»Extensions»⁡ установим наш плагин по ссылке репозитория:

stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610abaad9b91

Выбираем установку по URL — ссылке:

stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610abab307cc

Нажимаем «Install»⁡ и ждем конца установки. В консоли мы видим, что плагин устанавливает дополнительные модули:

stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610abab7a333

Как только все установиться, переходим во вкладку ⁡»Settings»⁡ и в поиске пишем ⁡»Quicksettings list», затем в списке выбираем ⁡sd_unet. После проделанных действий применяем настройки — ⁡Apply settings⁡ и ⁡Reload UI⁡:

stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610ababebfbe

stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610abac355a4

После всего в интерфейсе появится вкладка TensorRT и сверху ⁡sd_unet. Перейдем во вкладку ⁡TensorRT⁡ и создадим профиль для будущей модели. Для каждой модели в которой вы захотите ускроить генерацию необходимо будет создать профиль, который занимает примерно 1.6 гигабайт места на диске.

stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610abac81312

Жмем «Export Default Engine» и ждем. Это займет примерно 2-3 минуты. Не бойтесь когда всплывет такое уведомление, так и надо:

stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610abacd7549

Весь процесс можно наблюдать в консоли:

stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610abad2ccc2

Как только все завершиться, придет уведомление об этом в консоли, в папке models/Unet-trt у нас появится TRT модель. Ее нужно
будет выбрать в SD Unet:

stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610abad90168

Входная форма обязательно должна быть 64-х битной в обоих измерениях (ширине, высоте). Пример 512×512, 512×768. (так же допустимый размер зависит от выбранного профиля). На данном этапе можно спокойно перейти к генерации изображения. Генерация на таких же параметрах с TRT занимает около 3-х секунд.
Генерация без TRT занимает от 5.5 и более секунд:

stable diffusion d183d181d0bad0bed180d18fd0b5d0bc d181d0bad0bed180d0bed181d182d18c d0b3d0b5d0bdd0b5d180d0b0d186d0b8d0b8 d0b8d0b7d0bed0b1 6610abade13ab

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