Что такое VAE для Stable Diffusion? Обязательно добавляем!
Stable Diffusion принадлежит к классу диффузионных моделей. Идея состояла в том, чтобы смешать картинку и гауссовский шум, а далее обучить нейросеть из зашумленных изображений восстанавливать оригиналы. Если подать такой нейросети на вход чистый шум, то постепенно она превратит его в симпатичную картинку. В Stable Diffusion этим занимается UNet.
Нюанс в том, что картинка с разрешением 512х512 состоит из 262 144 пикселей. Если применять диффузионный процесс к ней напрямую, то на вычисления будет уходить много времени и памяти, что усложняет процесс тренировки и инференса. Мы же хотим генерировать картинки быстро и на относительно недорогих видеокартах. Поэтому изображения отображаются в пространство меньшей размерности (latent space), там производятся вычисления, а результат обратно разжимается с помощью Variational Autoencoder (VAE).
Если вы используете стандартную модель от SD, то при процессе раскодировки SD использует дефолтный VAE, который входит в сборку автоматика или другие сборки, которые вы используете. Если же вы скачали какую-то другую модель, то тут начинаются нюансы. Стандартная VAE от SD хорошо работает в целом, но у нее проблемы с глазами, носом, губами и пальцами. Стандартную VAE можно использовать, но больше подойдет для пейзажей, архитектуры и паинтов. Авторы новых моделей, которые можно найти на сайтах каталогах, иногда, добавляют VAE заточенные под их модели. Они тренируют модель VAE под себя, под свою модель, тем самым улучшают те детали, на которые была заточена модель, это может быть космический сет, аниме, аналоговое фото и т.д. Например, есть VAE заточенные под аниме, они натренированы под стиль аниме. С таким VAE отлично получается генерация анимешных артов, но с помощью аниме VAE вы уже не разожмете, например, реалистичное фото человека или животного.
Вместо стандартного SD VAE энтузиасты тренируют новые модели, одна из таких sd-vae-ft-ema-original натренированная на базе LAION-Aesthetics и LAION-Humans для SWF контента. Она дает более улучшенный результат при генерации человеческих тел и считается более универсальной. Есть еще варианты для NSWF, но их ищите отдельно.
Поэтому советуют скачать универсальную VAE, которая будет разжимать генерацию в приемлемом виде на всех моделях. В основном рекомендуют VAE sd-vae-ft-ema-original — скачиваем по ссылке https://huggingface.co/stabilityai/sd-vae-ft-ema-original/blob/main/vae-ft-ema-560000-ema-pruned.safetensors и закидываем файл в папку ВашSD/models/VAE
Далее перезапускаемся, во вкладке Setting выбираем настройки - Stable Diffusion и выбираем vae-ft-ema-560000-ema-pruned.safetensors — жмем Apply settings. Готово.
Теперь ваши сгенерированные картинки будут разжиматься в нормальные без артефактов, дефектов и пятен на лицах. На самом деле это пока что своеобразный костыль, заплатка, не идеально, но работает. Если появятся другие более идеальные варианты, то будем тестировать.
Если вы создаете аниме арт, мультяшные картинки, какие-то специфические арты - то советую под них поискать свои VAE.

Stable Diffusion & Flux
4.6K постов2.3K подписчиков
Правила сообщества
Придерживайтесь стандартных правил Пикабу.