Созданная проектировщиками и инженерами из 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 состоит из трех основных компонентов, два из которых предназначены для редукции образца в латентное пространство более низкой размерности и последующего денойзинга от случайного гауссовского шума, а один - для обработки текста.
1) Автоэнкодер: На входе модели — случайный шум с желаемым значением размера выходного сигнала. Сначала образец редуцируется в латентное пространство до меньшего размера. Для этого авторы использовали архитектуру VAE, состоящую из двух частей — кодера и декодера. Кодер используется во время обучения для конвертации образца в уменьшенное латентное представление и передает его в качестве входа в следующий блок. При выводе, прошедшие денойзинг сгенерированные образцы подвергаются обратной диффузии и трансформируются обратно в свои начальные размеры латентного пространства.
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.
Команда Stable Diffusion не опубликовала никаких эталонных результатов для сравнения с другими моделями. Из оригинальной статьи Latent Diffusion (см. ниже), модель Latent Diffusion (LDM) достигла результата 12.63 FID, используя набор данных MS-COCO размером 56 × 256: с 250-ступенчатым DDIM.
Самое лучшее в моделях по преобразованию текста в изображение, это то, что мы можем легко оценить качество их работы. Давайте посмотрим, как Stable Diffusion работает по сравнению с проприетарной моделью SOTA, 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
За короткое время своего существования Stable Diffusion вызвала много споров. В отличие от DALL-E 2, Stable Diffusion имеет очень мало ограничений на контент, который она может генерировать. После ее выхода пользователи тестировали ограничения, генерируя фото людей по имени, порнографические рисунки и копии, подозрительно напоминающие работы художников, которые не давали согласия на использование своих материалов.
Все это вызвало бурные обсуждения в Twitter и Reddit, где люди призывали остановить проект из-за вопросов безопасности. На момент написания этой статьи в блоге, Twitter решил заблокировать аккаунт проекта, а модель, размещенная на HugginFace Space, была ограничена в отношении контента, который она может генерировать, под названием "Safety Classifier", который предназначен для удаления NSFW изображений.
Заключение
Stable Diffusion — один из самых интересных проектов OSDS за последнее время. Он обеспечивает самые современные результаты и значительное улучшение по всем параметрам в сравнении с предыдущими моделями OS для преобразования текста в изображение. Не терпится узнать, какие перспективы ожидают эту область, но при этом хочу выразить беспокойство о последствиях.
Ресурсы
Скоро состоится открытое занятие «Сверточные нейронные сети», на котором мы:
- Рассмотрим сверточную нейронную сеть;
- Рассмотрим свертку, деконволюцию, субдискретизацию;
- Dropout и BatchNorm для сверток. ]
Регистрация на мепроприятие по ссылке.