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 модель, эти режимы должны заработать, разумеется, с падением производительности.
По заявления разработчика, VoltaML с дополнительными оптимизациями может работать на картах вплоть до 4 ГБ видеопамяти. Подробнее о настройках оптимизации можно прочесть тут.
Для начала необходимо скачать модель с Huggingface, перекомпилировать ее во вкладке Accelerate в понятный для AITemplate формат и только потом начать работу.
И вот тут то кроется загвоздка. Перекомпилированная модель сможет работать только в только в том разрешении, которое вы укажете. Это ограничение AITemplate, и на данный момент есть только очень костыльное решение — скомпилировать несколько экземпляров одной модели под разные разрешения.
Итак, сами тесты. Тестирование будет проводиться на RTX 4090, сравнивать будем с Automatic1111 с установленным Torch 2.0.0, Cudnn 8.8, xformers 0.0.18
512x512, batch size 1, Euler A, 50 шагов
Скорость составила примерно 26 it/s.
VoltaML с теми же настройками позволяет получить 54 it/s. В 2 раза больше чем Automaic1111.
Теперь сравним 768x768, batch size 1, Euler A, 50 шагов:
Скорость составила примерно 12 it/s.
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, то можете подписаться на мой канал:
Ты бы не скрорость сравнивал, а результат при одних параметрах. Нахер эта скорость вообще нужна
Результат будет недетерминирован, что именно сравнивать?
Тоже интересна разница. Не бывает халявы, если она в два раза быстрее, значит чем-то жертвует, ради такой производительности. Обычно все эти оптимизации жертвуют точностью в угоду скорости.
"ai artist"АЙ ДРОЧЕР
Хорошо что появляются новые решения. Конкуренция всегда хорошо.
Были ли заменены библиотеки cuddn в Автоматике?