Pull to refresh
1064.2
OTUS
Цифровые навыки от ведущих экспертов

Stable Diffusion: Лучшая версия DALL-E 2 с открытым исходным кодом

Reading time6 min
Views12K
Original author: Nir Barazida

Созданная проектировщиками и инженерами из Stability AI, CompVis и LAION, "Stable Diffusion" отбирает право на обладание титулом новой современной модели преобразования текста в изображение с открытым исходным кодом у Craiyon, ранее известного как DALL-E-Mini.

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

Давайте углубимся в детали и узнаем, что Stable Diffusion припасла для научного сообщества!

Представление Stable Diffusion

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

Диффузионные (Diffusion) модели обучаются предсказывать способ незначительного удаления шума из образца на каждом шаге, и после нескольких итераций получается результат. Диффузионные модели уже применялись для решения различных задач генерации, таких как синтез изображений, речи, трехмерных форм и графов.

Процесс диффузии (иллюстрация автора)
Процесс диффузии (иллюстрация автора)

Диффузные модели состоят из двух этапов:

  • Прямая диффузия (Forward Diffusion) — маппирование данных с шумом путем постепенного внесения помех в исходную информацию. Формально это достигается простым стохастическим (случайным) процессом, который начинается с исходного образца и итеративно генерирует зашумленные экземпляры, используя простое гауссово ядро диффузии. Этот процесс используется только во время обучения, и при выводе не применяется.

  • Параметризованный реверс — откатывает назад прямую диффузию и осуществляет процесс итеративного денойзинга. Он представляет из себя синтез данных и обучен генерировать информацию путем преобразования случайного шума в реалистичные данные.

Прямой и обратный (реверсивный) процессы требуют последовательного повторения тысяч шагов, внесения и уменьшения шума, что делает весь процесс медленным и тяжелым для вычислительных ресурсов.

Чтобы обеспечить возможность обучения на ограниченных ресурсах при сохранении качества и гибкости, создатели Stable Diffusion применили метод, описанный в статье. Вместо использования фактического пиксельного пространства, они применили процесс диффузии над латентной областью более низкой размерности.

Например, автокодер, используемый в Stable Diffusion, имеет коэффициент редукции (уменьшения)  8. Это означает, что изображение формы (3, 512, 512) становится (3, 64, 64) в латентном пространстве, что требует в 8 × 8 = 64 раза меньше памяти.

официальные примечания к релизу "Stable Diffusion"

Архитектура Stable Diffusion (изображение из статьи https://arxiv.org/abs/2112.10752)
Архитектура Stable Diffusion (изображение из статьи https://arxiv.org/abs/2112.10752)

Архитектура Stable Diffusion

Архитектура Stable Diffusion состоит из трех основных компонентов, два из которых предназначены для редукции образца в латентное пространство более низкой размерности и последующего денойзинга от случайного гауссовского шума, а один - для обработки текста.

1) Автоэнкодер: На входе модели — случайный шум с желаемым значением размера выходного сигнала. Сначала образец редуцируется в латентное пространство до меньшего размера. Для этого авторы использовали архитектуру VAE, состоящую из двух частей — кодера и декодера. Кодер используется во время обучения для конвертации образца в уменьшенное латентное представление и передает его в качестве входа в следующий блок. При выводе, прошедшие денойзинг сгенерированные образцы подвергаются обратной диффузии и трансформируются обратно в свои начальные размеры латентного пространства.

Архитектура VAE (изображение из статьи https://arxiv.org/abs/2112.10752)
Архитектура VAE (изображение из статьи https://arxiv.org/abs/2112.10752)

2) U-Net: Блок U-Net, состоящий из ResNet, получает зашумленный образец в латентном пространстве, сжимает его, а затем декодирует обратно с меньшим уровнем шума. Примерно вычисленный остаток шума на выходе U-Net используется для построения ожидаемого представления зашумленного образца. 

3) Кодировщик текста: Кодировщик текста отвечает за его обработку, преобразуя запрос (prompt) в место для встраивания. Подобно Imagen от Google, Stable Diffusion использует "замороженный" текстовый кодировщик CLIP ViT-L/14.

Технические подробности

Stable Diffusion v1 была предварительно обучена на изображениях 256x256, а затем отлажена на 512x512, все из подмножества базы данных LAION-5B. Для диффузионной модели использовался автоэнкодер с понижающим коэффициентом 8, UNet 860M и текстовый кодер CLIP ViT-L/14. Stable Diffusion достаточно легковесная и работает на GPU с 10 ГБ VRAM, и даже меньше если использовать точность float16 вместо float32 по умолчанию.

В настоящее время команда опубликовала следующие контрольные точки:

  • sd-v1-1.ckpt: 237 тыс. шагов при разрешении 256x256 на laion2B-en. 194 тыс. шагов при разрешении 512x512 на laion-high-resolution (170 млн. примеров из LAION-5B с разрешением >= 1024x1024).

  • sd-v1-2.ckpt: Продолжен с sd-v1-1.ckpt. 515 тыс. шагов при разрешении 512x512 на laion-aesthetics v2 5+ (сабсет laion2B-en с оценкой эстетики > 5.0, и дополнительно отфильтрованы изображения с оригинальным размером >= 512x512, и предполагаемой оценкой вотермарка < 0.5. Оценка вотермарка получена из метаданных LAION-5B, оценка эстетики - с помощью LAION-Aesthetics Predictor V2).

  • sd-v1-3.ckpt: Продолжено с sd-v1-2.ckpt. 195 тыс. шагов при разрешении 512x512 на "laion-aesthetics v2 5+" и 10% уменьшение обработки текста для улучшения выборки руководства без использования классификатора.

  • sd-v1-4.ckpt: Возобновлено с sd-v1-2.ckpt. 225 тыс. шагов при разрешении 512x512 на "laion-aesthetics v2 5+" и 10% уменьшение обработки текста для улучшения выборки руководства без использования классификатора.

Из официального GitHub-репозитория Stable Diffusion

Производительность модели

Для оценки качества изображений, созданных с помощью генеративных моделей, принято использовать метрику дискретное расстояние Фреше (FID). В двух словах, FID вычисляет величину отклонения между векторами признаков реальных и сгенерированных изображений. На бенчмарке COCO Imagen в настоящее время достиг наилучшего (наименьшего) показателя FID для zero-shot - 7,27, опередив DALL-E 2 с показателем FID 10,39.

 Лучшие результаты для моделей диффузии (изображение из статей с кодом https://paperswithcode.com/sota/text-to-image-generation-on-coco?tag_filter=246)
Лучшие результаты для моделей диффузии (изображение из статей с кодом https://paperswithcode.com/sota/text-to-image-generation-on-coco?tag_filter=246)

Команда Stable Diffusion не опубликовала никаких эталонных результатов для сравнения с другими моделями. Из оригинальной статьи Latent Diffusion (см. ниже), модель Latent Diffusion (LDM) достигла результата 12.63 FID, используя набор данных MS-COCO размером 56 × 256: с 250-ступенчатым DDIM.

Результаты Stable Diffusion (изображение из статьи https://arxiv.org/abs/2112.10752)
Результаты Stable Diffusion (изображение из статьи https://arxiv.org/abs/2112.10752)

Самое лучшее в моделях по преобразованию текста в изображение, это то, что мы можем легко оценить качество их работы. Давайте посмотрим, как Stable Diffusion работает по сравнению с проприетарной моделью SOTA, DALL-E 2.

Stable Diffusion в сравнении с DALL-E 2

Бостон-терьер с хвостом русалки, на дне океана, драматический, цифровой арт.

Изображения, полученные с помощью Stable Diffusion и DALL-E 2 (Изображение автора)
Изображения, полученные с помощью Stable Diffusion и DALL-E 2 (Изображение автора)

Бостон-терьер джедай, держащий темно-зеленый световой меч, фотореалистично

Изображения, полученные с помощью Stable Diffusion и DALL-E 2 (Изображение автора)
Изображения, полученные с помощью Stable Diffusion и DALL-E 2 (Изображение автора)

Я не могу не восхищаться результатами, которые дают эти модели, они просто поражают воображение. Будущее наступило!

Из результатов видно, что DALL-E-2 удается понять и создать изображения, которые больше соответствуют запросу, в то время как Stable Diffusion испытывает трудности. Например, собака стоит на рыбе вместо того, чтобы иметь хвост. Однако качество изображения, цвет, освещение и стиль впечатляют.

Stable Diffusion по сравнению с Craiyon (DALL-E Mini)

Но как хорошие специалисты по анализу данных, мы хотели бы сравнить яблоки с яблоками (т.е. эквивалентные вещи). Давайте сравним Stable Diffusion с опенсорсным проектом Craiyon.

Ботан-терьер в очках за компьютером пишет код в стиле аниме

Изображения, созданные с помощью Stable Diffusion и Craiyon (изображение автора)
Изображения, созданные с помощью Stable Diffusion и Craiyon (изображение автора)

Как мы сразу видим, Stable Diffusion создает гораздо более реалистичные изображения, в то время как Craiyon пытается выправить морду собаки.

Противоречивая сторона Stable Diffusion

За короткое время своего существования Stable Diffusion вызвала много споров. В отличие от DALL-E 2, Stable Diffusion имеет очень мало ограничений на контент, который она может генерировать. После ее выхода пользователи тестировали ограничения, генерируя фото людей по имени, порнографические рисунки и копии, подозрительно напоминающие работы художников, которые не давали согласия на использование своих материалов.

Со слов DALL-E 2 с небольшими изменениями текста 😉 (Изображение автора)
Со слов DALL-E 2 с небольшими изменениями текста 😉 (Изображение автора)

Все это вызвало бурные обсуждения в Twitter и Reddit, где люди призывали остановить проект из-за вопросов безопасности. На момент написания этой статьи в блоге, Twitter решил заблокировать аккаунт проекта, а модель, размещенная на HugginFace Space, была ограничена в отношении контента, который она может генерировать, под названием "Safety Classifier", который предназначен для удаления NSFW изображений.

Заключение

Stable Diffusion — один из самых интересных проектов OSDS за последнее время. Он обеспечивает самые современные результаты и значительное улучшение по всем параметрам в сравнении с предыдущими моделями OS для преобразования текста в изображение. Не терпится узнать, какие перспективы ожидают эту область, но при этом хочу выразить беспокойство о последствиях.

Ресурсы


Скоро состоится открытое занятие «Сверточные нейронные сети», на котором мы:

- Рассмотрим сверточную нейронную сеть;
- Рассмотрим свертку, деконволюцию, субдискретизацию;
- Dropout и BatchNorm для сверток. ]

Регистрация на мепроприятие по ссылке.

Tags:
Hubs:
Total votes 11: ↑11 and ↓0+11
Comments6

Articles

Information

Website
otus.ru
Registered
Founded
Employees
101–200 employees
Location
Россия
Representative
OTUS