VoltaML. Ускоряем генерацию TXT2IMG в 2 раза

Небольшой обзор одного из самых быстрых на данный момент варианта GUI реализации Stable Diffusion

Кликбейтный скрин для привлечения внимания
Кликбейтный скрин для привлечения внимания

Ремарка: Я не эксперт в области машинного обучения, а всего лишь энтузиаст и "ai artist". Поэтому в обзоре могут быть неточности в терминологии и различного рода ошибки.

Все наиболее популярные варианты графической реализации Stable Diffusion выдают приблизительно одну и ту же скорость генерации, так как у всех под капотом стоит PyTorch различной версии и различные Cross-Attention решения для оптимизации работы с памятью — xformers, Doggetx, SDPA и т. д. VoltaML взяла за основу не PyTorch, а AITemplate — альтернативный фреймворк для работы с нейронными сетями. Подробнее можно прочесть тут:

На данный момент разработка VoltaML (как и AITemplate) находится на ранней стадии, поэтому очень многих привычных функций пока нет, большинство вкладок при открытии отображают лишь надпись "Work in progress". Разработчик обещает в ближайшем будущем добавить поддержку IMG2IMG, Inpaint и ControlNet с ускорением AITemplate. Но если вы переключитесь на Torch модель, эти режимы должны заработать, разумеется, с падением производительности.

Вкладка IMG2IMG
Вкладка IMG2IMG

По заявления разработчика, VoltaML с дополнительными оптимизациями может работать на картах вплоть до 4 ГБ видеопамяти. Подробнее о настройках оптимизации можно прочесть тут.

Главная вкладка, с которой предстоит работать выполнена довольно просто. Здесь есть самые базовые настройки для генерации изображений. 
Главная вкладка, с которой предстоит работать выполнена довольно просто. Здесь есть самые базовые настройки для генерации изображений. 

Для начала необходимо скачать модель с Huggingface, перекомпилировать ее во вкладке Accelerate в понятный для AITemplate формат и только потом начать работу.

Вкладка Accelretate
Вкладка Accelretate

И вот тут то кроется загвоздка. Перекомпилированная модель сможет работать только в только в том разрешении, которое вы укажете. Это ограничение AITemplate, и на данный момент есть только очень костыльное решение — скомпилировать несколько экземпляров одной модели под разные разрешения.

Итак, сами тесты. Тестирование будет проводиться на RTX 4090, сравнивать будем с Automatic1111 с установленным Torch 2.0.0, Cudnn 8.8, xformers 0.0.18
512x512, batch size 1, Euler A, 50 шагов

Automatic1111
Automatic1111

Скорость составила примерно 26 it/s.

VoltaML
VoltaML

VoltaML с теми же настройками позволяет получить 54 it/s. В 2 раза больше чем Automaic1111.

Теперь сравним 768x768, batch size 1, Euler A, 50 шагов:

Automatic1111
Automatic1111

Скорость составила примерно 12 it/s.

VoltaML
VoltaML

VoltaML с теми же настройками позволяет получить 23 it/s. Почти в 2 раза больше чем Automaic1111.

В конечном итоге, для пользователя, при использовании VoltaML, скорость генерации изображений возрастет почти в 2 раза, по сравнению с Automaic1111 (Torch 2.0 + xformers 0.0.18).

Данные производительности для других карт (на основе сообщений из официального Discord):

RTX 3060 Ti: 18 it/s 512x512

RTX 3070: 24 it/s 512x512

RTX 4080: 40.51it/s 512x512

RTX 4070 Ti: 32-37 it/s 512x512

Если вас не отталкивает ранний этап разработки и множество ограничений, инструкцию по установке можно найти тут:

upd: Сравнение сгенерированных изображений. Слева будет Автоматик, справа Вольта. Параметры: Steps: 50, Sampler: Euler a, CFG scale: 7, Size: 768x768, Model: Realistic_Vision_V2.0

Если хотите поддержать меня и простимулировать выход новых обзоров на расширения и софт для SD, то можете подписаться на мой канал:

1111
16 комментариев

Ты бы не скрорость сравнивал, а результат при одних параметрах. Нахер эта скорость вообще нужна

1
1
Ответить
Автор

Результат будет недетерминирован, что именно сравнивать?

Ответить

Тоже интересна разница. Не бывает халявы, если она в два раза быстрее, значит чем-то жертвует, ради такой производительности. Обычно все эти оптимизации жертвуют точностью в угоду скорости.

1
Ответить

"ai artist"АЙ ДРОЧЕР

1
Ответить
Ответить

Хорошо что появляются новые решения. Конкуренция всегда хорошо.

1
Ответить

Были ли заменены библиотеки cuddn в Автоматике?

Ответить