Прошёл ровно год с момента релиза модели Kandinsky 2.1 — именно эта модель принесла известность нашей исследовательской группе Sber AI Research и дала толчок развитию всей линейки моделей Kandinsky. В честь этой даты мы выпускаем новую версию модели Kandinsky 3.1, о которой я расскажу подробнее в этой статье.

Введение

В 2023 году мы все наблюдали очень большой прогресс в области исследования языковых, мультимодальных и генеративных моделей. Этот прогресс коснулся и привычной нам модальности изображений (Kandinsky 2.1, 2.2, 3.0, Stable Diffusion XL, IF, Шедеврум, MJv6 и др.), и модальности текстов (ChatGPT, GPT-4, LLaMA, Falcon, GigaChat и др.), и аудио (VALL-E, MusicLM и др.), и 3D (Magic3D и др.), и даже модальности видео (Kandinsky Video, Gen-2, CogVideo и др.). В 2024 всё движется вперёд ещё более впечатляющими темпами: выходят на абсолютно новый уровень модели генерации изображений (SD3, SD3-Turbo), видео (Sora), музыки и целых песен (Suno) и т. д. При этом все основные игроки стараются равномерно развиваться и повышать качество синтеза. Текстовые чат‑боты научились взаимодействовать с внешними системами посредством плагинов, синтез изображений вышел на уровень фотореалистичных генераций, длина генерируемых видео постепенно увеличивается с сохранением сюжетной связности между кадрами (вполть до 1 минуты у Sora). И такой прогресс обусловлен уже не только наращиванием вычислительных мощностей, но и большим числом неординарных архитектурных решений, которые позволяют добиваться лучшего качества, а также сложными технологиями инженерии данных, обеспечивающими создание огромных и в то же время очень качественных датасетов для обучения моделей.

В ноябре прошлого года на конференции AI Journey наша команда представила text-to-image модель нового поколения Kandinsky 3.0. В целом, пересмотрев архитектуру и взяв более мощный текстовый энкодер (по сравнению с семейством моделей Kandinsky 2.X), нам удалось добиться значительного роста в качестве изображений с точки зрения реалистичности и детализации, улучшить понимание текста и побить качество модели SDXL на side-by-side-сравнении с точки зрения человеческих предпочтений. Это является наиболее показательной и справедливой метрикой качества в задачах генерации любой модальности (хотя у этой методологии тоже есть свои минусы). Подробнее о модели Kandinsky 3.0 можно прочитать в этой статье. Одновременно с этим на базе этой модели мы выпустили первую российскую модель генерации видео по тексту Kandinsky Video, о которой можно больше узнать здесь.

Сегодня мы представляем модель Kandinsky 3.1 — идейное продолжение модели Kandinsky 3.0, которую мы улучшили и обогатили набором различных полезных функций и режимов, предоставляющих пользователям больше возможностей полноценно использовать всю силу нашей новой модели. В Kandinsky 3.1 входит сразу несколько улучшений, о каждом из которых я расскажу подробнее в статье:

  • дистилляция по числу шагов диффузии (Kandinsky 3.0 Flash);

  • улучшение промпта с помощью языковой модели Neural-Chat-v3-1;

  • IP-Adapter, который позволяет дополнительно (помимо текста) обуславливаться на изображение (за счёт этого удалось вернуть режимы смешивания изображений, изображения и текста, которые были в версиях Kandinsky 2.X, но работали там за счёт наличия в этих моделях специального блока image prior);

  • ControlNet — механика, реализующая способы дополнительного обуславливания (контроля за генерацией) на основе canny edges, depth maps и т. д.;

  • Inpainting — модификация основной модели для дорисования по тексту недостающих частей изображения;

  • SuperRes — специальная диффузионная модель, повышающая разрешение изображения (так, в Kandinsky 3.1 теперь можно генерировать 4K изображения).

Кроме этого, мы обучили маленькую версию модели Kandinsky 3.0 Small (1B), с которой более просто и удобно экспериментировать.

Ускорение модели

Серьёзной проблемой модели Kandinsky 3.0, как и всех диффузионных моделей, была скорость генерации. Для получения одного изображения необходимо было пройти 50 шагов в обратном процессе диффузии, то есть 50 раз пропустить данные через U-Net с размером батча 2 для classifier free guidance. Для решения этой проблемы мы использовали подход Adversarial Diffusion Distillation, впервые описанный в статье от Stability AI, но с рядом существенных модификаций:

  1. В случае использования предобученных пиксельных моделей в качестве дискриминатора возникла бы необходимость декодировать сгенерированную картинку при помощи MoVQ Decoder и пробрасывать через него градиенты, что привело бы к огромным затратам памяти. Данные затраты не позволили бы обучать модель в разрешении 1024 × 1024. Поэтому в качестве дискриминатора мы использовали замороженную downsample-часть U-Net от Kandinsky 3.0 с обучаемыми головами после каждого слоя понижения разрешения. Это связано с желанием сохранить возможность генерировать картинки в высоком разрешении.

  2. Мы добавили Cross Attention на текстовые эмбеддинги от FLAN-UL2 в головы дискриминатора вместо добавления текстового CLIP эмбеддинга. Это позволило улучшить понимание текста дистиллированной моделью.

  3. В качестве лосс-функции мы использовали Wasserstein Loss. В отличие от Hinge Loss он является ненасыщаемым, что позволяет избежать проблемы зануления градиентов на первых этапах обучения, когда дискриминатор оказывается сильнее генератора.

  4. Мы убрали регуляризацию в виде Distillation Loss, так как по нашим экспериментам она не оказывала существенного влияния на качество модели.

Мы обнаружили, что довольно быстро генератор становится сильнее дискриминатора, что приводит к нестабильности обучения. Чтобы решить эту проблему, мы значительно увеличили learning rate у дискриминатора. У дискриминатора он равнялся 1e-3, в то время как у генератора — 1e-5. Для предотвращения расходимости мы также использовали gradient penalty, как и в оригинальной работе.

Архитектура дискриминатора в Kandinsky 3.1 Flash. Блоки, выделенные серым цветом, наследуют веса Kandinsky 3.0 и остаются замороженными при обучении.
Рисунок 1. Архитектура дискриминатора в Kandinsky 3.1 Flash. Блоки, выделенные серым цветом, наследуют веса Kandinsky 3.0 и остаются замороженными при обучении.

Обучение происходило на «эстетичном» (отобранном руками) датасете размером 100K пар «текст-изображение», который является подсетом датасета для претрейна Kandinsky 3.0.

В результате этого подхода получилось ускорить Kandinsky 3.0 почти в 20 раз, сделав возможной генерацию изображения всего за 4 прохода через U-Net. Также на скорость повлиял тот факт, что теперь нет необходимости использовать classifier free guidance. Kandinsky 3.0 из диффузионной модели по факту превратился в GAN (Kandinsky 3.0 Flash), обученный с хорошей начальной инициализацией весов после претрейна.

Однако для серьёзного ускорения пришлось пожертвовать качеством понимания текста, что показывают результаты side-by-side (SBS) сравнения. SBS проводится на фиксированной корзине запросов из 2100 промптов (100 промптов по каждой из 21 категорий). Каждая генерация оценивается по визуальному качеству (какое из двух изображений вам больше нравится) и по соответствию тексту (какое из двух изображений лучше соответствует запросу). Про методологию side-by-side (SBS) сравнения можно подробнее прочитать в статье Kandinsky 3.0.

Рисунок 2. Text - понимание текста, Visual - визуальное качество изображения
Рисунок 2. Text - понимание текста, Visual - визуальное качество изображения
Рисунок 3. Сравнение понимания текста по доменам
Рисунок 3. Сравнение понимания текста по доменам
Рисунок 4. Сравнение визуального качества изображений по доменам
Рисунок 4. Сравнение визуального качества изображений по доменам

Приведём примеры изображений, сгенерированных моделью Kandinsky 3.0 Flash.

Рисунок 5. Примеры генераций Kandinsky 3.0 Flash
Рисунок 5. Примеры генераций Kandinsky 3.0 Flash

Бьютификация (улучшение) запроса

Если вы пользовались прошлыми версиями Kandinsky или другими моделями генерации изображений по тексту, то вы скорее всего замечали, что чем подробнее написан запрос, тем красивее и детальнее получается картинка. Это происходит из-за того, что в обучающей выборке чаще встречались достаточно подробные описания изображений. Однако в реальности большинство запросов пользователей очень короткие и содержат мало подробностей об объектах генерации (по понятной причине — не у всех пользователей есть время долго подбирать нужный им промпт).

Для решения этой проблемы в Kandinsky 3.1 была встроена опция бьютификации запроса — способ улучшения запроса (добавление в него деталей) пользователя с помощью большой языковой модели (LLM). Бьютификация работает очень просто: на вход языковой модели подаётся инструкция с просьбой улучшить запрос, а далее ответ модели подается на вход Kandinsky для генерации.

В качестве LLM мы использовали neural-chat-7b-v3-1 от Intel (дообученная модель Mistral-7B) со следующим системным промптом:

### System:\nYou are a prompt engineer. Your mission is to expand prompts written by user. You should provide the best prompt for text to image generation in English. \n### User:\n{prompt}\n### Assistant:\n

Тут {prompt} — это запрос, который написал пользователь.

Примеры генераций на один и тот же запрос, но с бьютификацией и без неё представлены ниже (с помощью модели Kandinsky 3.0).

Lego figure at the waterfall: без LLM / c LLM
Рисунок 6. "Lego figure at the waterfall": без LLM / c LLM (Kandinsky 3.0)
Close-up photo of a beautiful oriental woman, elegant hijab-adorned with hints of modern vintage style: без LLM / с LLM
Рисунок 7. "Close-up photo of a beautiful oriental woman, elegant hijab-adorned with hints of modern vintage style": без LLM / с LLM (Kandinsky 3.0)
A hut on chicken legs: без LLM / c LLM
Рисунок 8. "A hut on chicken legs": без LLM / c LLM (Kandinsky 3.0)

Также мы провели side-by-side сравнение качества генераций, сделанных Kandinsky с использованием функции бьютификации запроса и без него. Мы провели тестирование и для Kandinsky 3.0, и для Kandinsky 3.1, чтобы оценить, как сильно влияет языковая модель на генерируемые изображения.

Рисунок 9. Text - понимание текста, Visual - визуальное качество изображения
Рисунок 9. Text - понимание текста, Visual - визуальное качество изображения
Рисунок 10. Сравнение понимания текста по доменам
Рисунок 10. Сравнение понимания текста по доменам
Рисунок 11. Сравнение визуального качества изображений по доменам
Рисунок 11. Сравнение визуального качества изображений по доменам
Рисунок 12. Text - понимание текста, Visual - визуальное качество изображения
Рисунок 12. Text - понимание текста, Visual - визуальное качество изображения
Рисунок 13. Сравнение понимания текста по доменам
Рисунок 13. Сравнение понимания текста по доменам
Рисунок 14. Сравнение визуального качества изображений по доменам
Рисунок 14. Сравнение визуального качества изображений по доменам

Генерации и сравнение с другими моделями

Сравнение Kandinsky 3.1 (Flash + улучшение промпта) с предыдущими версиями:

Портрет: красавица в кокошнике, длинные русые косы, русский образ
Рисунок 15. «Портрет: красавица в кокошнике, длинные русые косы, русский образ»
Милая пандочка стоит в кимоно, очень добрый милый взгляд, милые глазки, доброта
Рисунок 16. «Милая пандочка стоит в кимоно, очень добрый милый взгляд, милые глазки, доброта»
Огромный воздушный шар парит в сказочных степях и горных хребтах, свежесть, высокое качество изображения
Рисунок 17. «Огромный воздушный шар парит в сказочных степях и горных хребтах, свежесть, высокое качество изображения»
Милый рыжий львёнок в ванне с пеной
Рисунок 18. «Милый рыжий львёнок в ванне с пеной»

Сравнение Kandinsky 3.1 (Flash + улучшение промпта) с другими моделями:

Maximally realistic portrait of a jolly old gray-haired Negro Rastaman with wrinkles around his eyes and a crooked nose in motley clothes
Рисунок 19. "Maximally realistic portrait of a jolly old gray-haired Negro Rastaman with wrinkles around his eyes and a crooked nose in motley clothes Soviet-era portrait, young woman with ginger hair, adorned in a mink coat and fur hat, her visage in a close-up, Moscow's Red Square background, daytime, oil on canvas highly detailing painting"
3D model, picnic on a bright flowering meadow, flooded with sun, depth of field, covered with glaze, bird's eye view, matte painting style
Рисунок 20. "3D model, picnic on a bright flowering meadow, flooded with sun, depth of field, covered with glaze, bird's eye view, matte painting style"
Funny cute wet kitten sitting in a basin with soap foam, soap bubbles around, photography
Рисунок 21. "Funny cute wet kitten sitting in a basin with soap foam, soap bubbles around, photography"
Tomatoes on a table, against the backdrop of nature, a still life painting depicted in a hyper realistic style
Рисунок 22. "Tomatoes on a table, against the backdrop of nature, a still life painting depicted in a hyper realistic style"
Сute pink Cheburashka at the table, cartoon style
Рисунок 23. "Сute pink Cheburashka at the table, cartoon style"

Также интересно проследить эволюцию моделей Kandinsky, начиная с Kandinsky 2.1:

Рисунок 24. «Футуристичный автомобиль»
Рисунок 24. «Футуристичный автомобиль»
Рисунок 26. «Кот в очках за компьютером»
Рисунок 26. «Кот в очках за компьютером»
Рисунок 27. «Много котов в стиле Иеронима Босха»
Рисунок 27. «Много котов в стиле Иеронима Босха»

Редактирование изображений и Text-Image Guidance

В отличие от модели Kandinsky 3.0, в версию Kandinsky 3.1 мы внедрили функционал генерации изображения не только с помощью текстового запроса, но и/или с помощью визуальной подсказки в виде подаваемого на вход изображения. Это позволяет редактировать уже имеющееся изображение, изменять его стиль и добавлять к нему новые объекты. Для этого мы использовали IP-Adapter — подход, продемонстрировавший хорошие результаты в сравнении с традиционным дообучением.

Для реализации IP-Adapter-а на основе нашей базовой модели генерации и её имплементации в библиотеке diffusers мы использовали адаптеры внимания. В качестве энкодера изображений был взят ViT-L/14 (Visual Transformer, дообученный в пайплайне CLIP). C его помощью мы получаем эмбеддинги размера batch_size x 768, которые потом, посредством линейного слоя, преобразуются в тензоры размером batch_size × 4 × 4096. Добавив пару новых слоев для key и value изображений в механизме cross attention, мы складываем выход обычного текстового cross attention с выходом cross attention для изображений. Обучение производилось на датасете COYO-700M с размером батча 288 в течение 800K итераций.

Поддерживаемые варианты инференса:

  1. Вариация изображения. Чтобы сделать вариацию изображения, мы просто считаем эмбеддинги изображения с помощью CLIP-ViT-L/14 и подаём их в модель.

Рисунок 28. Вариации исходного изображения
Рисунок 28. Вариации исходного изображения
  1. Смешивание изображений. Здесь мы считаем эмбеддинги для каждого изображения и складываем их с заданными весами, после чего результат подаётся в модель.

Рисунок 29. Смешивание двух изображений
Рисунок 29. Смешивание двух изображений
  1. Смешивание изображения и текста. Мы считаем эмбеддинги изображения и подаём их в модель вместе с текстом, поскольку мы сохранили стандартный cross attention на текст.

Рисунок 30. Пример смешивания изображения и текста
Рисунок 30. Пример смешивания изображения и текста
Рисунок 31. Пример смешивания изображения и текста
Рисунок 31. Пример смешивания изображения и текста

Редактирование в режиме ControlNet

Мы обнаружили, что подход на основе IP-адаптера не сохраняет форму объектов на изображении, поэтому мы решили обучить ControlNet в дополнение к нашей модели генерации для консистентного изменения внешнего вида изображения, сохраняющего больше информации в сравнении с исходным. В качестве модели для получения границ на изображении, подающихся на вход ControlNet, мы использовали HED detector. Обучение длилось 5000 итераций на датасете COYO 700m на 8 GPU Tesla A100 с размером батча 512.

Kandinsky 3.1 Inpainting

В Kandinsky 3.1 Inpainting мы сфокусировались на улучшении качества модели генерации объектов. В Kandinsky 3.0 мы учили модель восстанавливать изображение по его исходному описанию — из-за этого модель очень хорошо восстанавливает исходное изображение, но когда дело доходит до создания другого объекта на месте старого, то модель может не справиться. Один из способов исправления этой проблемы — дообучение на масках из датасетов для задачи object detection или segmentation (например, Paint by Example или SmartBrush). При использовании bounding box масок модель учится генерировать изображения чётко по текстовому запросу, а не по описанию целой картинки. Таким образом, качество модели при использовании её людьми растёт —именно в таком формате модель Inpainting и используется на инференсе. Чтобы модель не разучилась делать и «классический» inpainting (по полным описаниям изображения), мы сбалансировали наши обучающие сеты — 50% масок приходят с bounding boxes, а оставшиеся 50% выбираются случайным образом, как было раньше в Kandinsky 3.0 Inpainting.

a white bear sitting on the ice (masked_image / Kandinsky 3.0 / Kandinsky 3.1)
Рисунок 32. А white bear sitting on the ice (masked_image / Kandinsky 3.0 / Kandinsky 3.1)
a shark (masked_image / Kandinsky 3.0 / Kandinsky 3.1)
Рисунок 33. А shark (masked_image / Kandinsky 3.0 / Kandinsky 3.1)

Поскольку в качестве текстовых запросов мы используем только имена классов, то модель может разучиться генерировать изображения по длинным запросам. Поэтому мы решили доразметить наш датасет с помощью LLaVA 1.5. Для этого, после выбора bounding box, который мы использовали в качестве маски, мы подавали crop-изображения в LLaVA, чтобы получить текстовое описание этого кусочка изображения. Далее это текстовое описание использовалось как текстовый запрос.

a mexican hat (masked_image / Kandinsky 3.0 / Kandinsky 3.1)
Рисунок 34. A mexican hat (masked_image / Kandinsky 3.0 / Kandinsky 3.1)
a fox is sitting in front of the fox and drinking cup of tea and talking about the love (masked_image / Kandinsky 3.0 / Kandinsky 3.1)
Рисунок 35. A fox is sitting in front of the fox and drinking cup of tea and talking about the love (masked_image / Kandinsky 3.0 / Kandinsky 3.1)

Также мы провели сравнение с другими моделями, чтобы «оцифровать» качество нашего нового метода inpainting-а. Для этого мы взяли датасет COCO, случайным образом выбрали из него 1000 изображений и по одному объекту с каждого изображения, который мы перегенерировали. Далее на полученных картинках мы прогнали модель, обученную на датасете детекции YOLO-X, и посчитали её метрики качества детекции. Если детектор, обученный на реальных изображениях, сможет задетектировать сгенерированный объект, то можно сделать вывод, что объект сгенерирован достаточно естественно. Ниже приведены метрики:

Модель / Метрика

AP50↑

AP small↑

AP large↑

SD

0,276

0,033

0,253

SDXL

0,272

0,032

0,245

SD2

0,238

0,032

0,205

Kandinsky 3.0 (Ours)

0,290

0,028

0,275

Kandinsky 3.1 (Ours)

0,306

0,027

0,296

Из таблицы следует, что наша модель отлично справляется с дорисовыванием больших объектов (да и в целом её качество при добавлении любых объектов очень хорошее).

KandiSuperRes

В новой версии Kandinsky 3.1 появилась возможность получать генерации изображений в разрешении 4K. Для этого была обучена диффузионная модель повышения разрешения KandiSuperRes.

За основу была взята архитектура Kandinsky 3.0, но с некоторыми модификациями. 

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

  • Вместо обычного U-Net был реализован EfficientUnet подобно подходу, описанному в статье Imagen. В сравнении с U-Net Kandinsky 3.0, EfficientUnet потребляет меньше памяти и также имеет лучшую сходимость. Отличие в том, что вместо 3 Residual блоков на каждом понижении разрешения в EfficientUnet используется большее количество блоков на низких разрешениях и меньшее количество блоков на высоких. Также изменяется порядок выполнения свёртки и downsampling/upsampling-операций относительно исходного U-Net. Кроме этого, мы убрали обусловливание на текстовый промпт, так как он не вносит вклад в генерации в высоком разрешении 4К. В итоге EfficientUnet KandiSuperRes содержит 413M параметров.

  • Во время обучения EfficientUnet предсказывает не уровень шума в данный момент времени t, как это обычно принято при обучении диффузионных моделей, а x_0 (то есть исходную картинку), что позволило избежать проблем, связанных с изменением цвета сгенерированной SR картинки.

Обучение осуществлялось в 2 этапа: сначала модель училась на датасете LAION на 32 A100 в течение 1,57М шагов с размером батча 2 на разрешение 256 → 1024. Затем модель училась на «эстетичных» сетах высокого разрешения, используемых при обучении Kandinsky 3.0, в течение 1,5М шагов. На втором этапе обучения было добавлено JPEG-сжатие подобной той схеме, которая описана в статье Real-ESRGAN.

Модель KandiSuperRes позволяет работать с изображениями различного разрешения, однако основной целью являются генерации в высоком разрешении 4K. Так как модель KandiSuperRes обучалась задаче увеличивать разрешение с 256 до 1024, а на больших разрешениях обучать не было возможности из-за переполнения памяти A100, для генерации в 4К использовался алгоритм MultiDiffusion, позволяющий создавать панорамы. Суть алгоритма заключается в том, что изначально изображение делится на перекрывающиеся патчи, и затем на каждом шаге диффузии удаляется шум, а значения пикселей/латентов перекрывающихся областей усредняются. И таким образом, пройдя все шаги диффузии, мы получаем бесшовное изображение любого разрешения. В итоге на инференсе модель KandiSuperRes работает за 5 шагов, используя DPMSolverMultistepScheduler. Время инференса для генерации изображения в 4К занимает 13 секунд, а в 1К — 0,5 секунды.

В таблице ниже приведено сравнение KandiSuperRes с моделями Real-ESRGAN и Stable Diffusion x4 Upscaler по метрикам FID, SSIM, PSNR и L1 на датасетах Wikidata 5К, RealSR(V3) и Set14. Wikidata 5К содержит 5000 изображений, собранных из Википедии, в разрешении 1К. RealSR(V3) содержит 100 тестовых изображений в разрешениях 1K и 2K. Set14 содержит 14 изображений в низких разрешениях с JPEG-артефактами. В итоге модель KandiSuperRes показала наилучшие результаты. 

Сравнение моделей Real-ESRGAN, Stable Diffusion и KandiSuperRes:

Dataset

Model

FID↓

PSNR↑

SSIM↑

L1↓

Wikidata 5k

Real-ESRGAN

9.96

24.48

0.73

0.0428

Stable Diffusion

3.04

25.05

0.67

0.0435

KandiSuperRes

0.89?

28.52?

0.81?

0.0257?

RealSR(V3)

Real-ESRGAN

73.26

23.12

0.72

0.0610

Stable Diffusion

47.79

24.85

0.67

0.0493

KandiSuperRes

47.37?

25.05?

0.75?

0.0462?

Set14

Real-ESRGAN

115.94

22.88

0.62

0.0561

Stable Diffusion

76.32

23.60

0.57

0.0520

KandiSuperRes

61.00?

25.70?

0.70?

0.0390?

 

На рисунке 1 приведены примеры генераций моделей KandiSuperRes, Stable Diffusion и Real-ESRGAN в разрешение 1024. На рисунке 2 приведены примеры генераций KandiSuperRes в разрешение 4К.

Код и веса KandiSuperRes выложены на Github и HuggingFace.

Сравнение моделей KandiSuperRes, Stable Diffusion и Real-ESRGAN на разрешение 1024
Рисунок 36. Сравнение моделей KandiSuperRes, Stable Diffusion и Real-ESRGAN при повышении разрешения с 256 до 1024
Пример генерации KandiSuperRes в разрешение 4К
Рисунок 37. Пример генерации KandiSuperRes при повышении разрешения с 1024 до 4096

Маленькие версии модели (1B)

Чтобы сделать нашу модель более доступной для запуска и дообучения при малых вычислительных ресурсах, мы решили обучить её маленькую версию (Kandinsky 3.0 Small). Для неё мы взяли U-Net, содержащий 1B параметров, и текстовый энкодер от FLAN-T5 XL. Обучение происходило в течение 1М итераций на датасете COYO-700M с размером батча 2048. Внизу представлены примеры генераций с помощью этой модели.

dog in armor, 4k photo
Рисунок 38. "Dog in armor, 4k photo" by Kandinsky 3.0 Small
red car in the space, anime
Рисунок 39. "Red car in the space, anime" by Kandinsky 3.0 Small

Вывод

В этой статье мы представили новую версию нашей диффузионной модели генерации изображений по тексту Kandinsky 3.1, которую мы сделали более эффективной с помощью современных методов дистилляции и дополнили новыми режимами работы, которых не было в версии Kandinsky 3.0, — возможностью редактирования изображений и переносом стиля. Дополнительно мы улучшили качество работы inpainting-а — метода повышения разрешения для перехода в пространство пикселей из пространства скрытых представлений. Кроме того, помимо доступа к основной большой модели, мы предоставили пользователям возможность работы с версиями нашей модели с меньшим числом параметров, что гораздо удобнее для локального запуска и дообучения при малых ресурсах для своих целей и задач. Можно сказать, что наше основное достижение — это то, что мы сделали творческую генерацию гораздо более удобной для пользователя, который теперь может полноценно использовать весь потенциал нашей модели.

Как и всегда, мы ценим открытые исследования и охотно делимся ими с вами, чему вновь стала примером данная статья. Мы предоставляем доступ к нашей модели, её функциям, коду и обученным весам совершенно бесплатно для любого пользователя, стимулируя тем самым развитие области генеративного искусственного интеллекта. Однако, разумеется, следует помнить об ответственности каждого, кто решает использовать генерации изображений в своих целях. Мы решительно выступаем против использования нашей модели вне закона, в частности для дезинформации, оскорбления, разжигания ненависти, мошенничества и т. д. Мы уверены, что развитие искусственного интеллекта и непрерывная работа нашей команды направлены на мирное и благополучное созидание и улучшение качества труда и жизни наших пользователей. 

Искусственный интеллект все больше входит в нашу жизнь и становится нашим полноценным помощником. Возможно, в ближайшее время модели генерации выйдут на совершенно иной уровень, комбинируя в себе возможности целых мультимедийных центров, оперирующих различными визуальными (и не только) модальностями. Наша команда активно вовлечена в подобные исследования, мы держим руку на пульсе, следим за самыми последними новинками и намерены продолжать радовать сообщество нашими достижениями. Шагайте и дальше в светлое и умное будущее за руку с технологиями и следите за нашими обновлениями!

Скоро все желающие смогут протестировать новые возможности нейросети. Как и предыдущие версии, модель будет бесплатной и доступной на разных поверхностях.

Авторы и их вклад

Модель Kandinsky 3.1 разработана командой Sber AI при партнёрской поддержке учёных из Института искусственного интеллекта AIRI на объединённых датасетах Sber AI и компании SberDevices.

Коллектив авторов: Владимир Архипкин, Андрей Филатов, Вячеслав Васильев, Анастасия Мальцева, Игорь Павлов, Михаил Шойтов, Юлия Агафонова, Николай Герасименко, Анастасия Лысенко, Илья Рябов, Саид Азизов, Антон Букашкин, Елизавета Дахова, Татьяна Никулина, Сергей Марков, Андрей Кузнецов и руководитель научной группы Generative AI Денис Димитров.

Каналы авторов:

Контакты для коммуникации

По всем возникающим вопросам и предложениям по развитию модели, добавлению новых возможностей и сотрудничеству в части использования наших разработок можно писать мне и Андрею.

Пока что Kandinsky 3.1 доступен для ограниченного круга пользователей. При этом широкий доступ к модели и к её полному функционалу будет предоставлен в самое ближайшее время.

Полезные ссылки для пользования предыдущими версиями модели:

  • fusionbrain.ai (доступна генерация по тексту и inpainting)

  • Telegram-bot (доступна генерация по тексту, а также есть доступ к моделям линейки Kandinsky 2.X и их полному функционалу)

  • rudalle.ru (доступна генерация по тексту)

  • Project Page (description of Kandinsky 3.1 in English)

  • Github (доступен код модели генерации изображений и inpainting)

  • HuggingFace (доступны веса модели генерации изображений и inpainting)

Комментарии (18)


  1. Watashiwa
    04.04.2024 10:00

    А простые вещи рисковать умеет ;) ? Белый лист там ну или простую рамку, а то прошлые версии что то такое выдавали, что даже показывать не стал. И причём речь шла про обычные прямоугольные, небольшой толщины. С более сложными вещами как раз гораздо лучше справлялась


    1. ddimitrov Автор
      04.04.2024 10:00

      Вот, например, генерация белого фона в боте Kandinsky https://t.me/kandinsky21_bot (версия Kandinsky 3.0)


    1. ddimitrov Автор
      04.04.2024 10:00
      +1

      Кстати говоря, это довольно сложная задача, с которой Kandinsky 3.0 (и 3.1 тоже) успешно справляется. Вот тут можно посмотреть, что генерирует MJ по похожим запросам: https://www.reddit.com/r/midjourney/comments/wfv5yp/white_background/


  1. Genrehopper
    04.04.2024 10:00
    +2

    Научите вашу нейронку текст писать на картинке нормально, а то там текст выглядит как руки, которые в кашу превратились)


    1. ddimitrov Автор
      04.04.2024 10:00
      +1

      Да, это то, над чем мы активно работаем


  1. ivorrus
    04.04.2024 10:00
    +1

    А можете показать прогресс в изображении трёх богатырей? ;-)

    Потому что результат генерации по запросу "три богатыря без стиля" в версии 2.1 меня поразил в самую пятку


    1. ddimitrov Автор
      04.04.2024 10:00
      +3

      Вот генерация по запросу «Три богатыря» в версии Kandinsky 3.1:


  1. gudvinr
    04.04.2024 10:00
    +1

    Бросилось в глаза, что почти везде в примерах 3.1 делает портреты в анфас, когда у остальных, даже 3.0 и 2.1 есть вариации

    Лица очень симметричные и выглядят менее человечными, что ли


  1. domrik
    04.04.2024 10:00
    +2

    Молодцы! Не слушайте хейтеров. Ждём в открытом доступе


    1. ddimitrov Автор
      04.04.2024 10:00

      Спасибо! В открытом доступе версия очень скоро появится. Напишу короткую заметку на Хабр по этому поводу


  1. ArkadiyMak
    04.04.2024 10:00
    +1

    Новая модель будет доступна на Fusion Brain?


  1. BazilioMike
    04.04.2024 10:00

    Я не понял, как использовать ControlNet на https://fusionbrain.ai/editor/. Прошло много времени, а его там до сих пор нет.


  1. Plovchik
    04.04.2024 10:00

    Что я делаю не так?

    Hidden text
    не очень реалистично
    не очень реалистично


    1. Stepler
      04.04.2024 10:00

      Наверно, понятие "реалистичный" не входит в алгоритм.


    1. BazilioMike
      04.04.2024 10:00
      +1

      Неправильно задает саму подсказку, если хотите получить фото. Не используйте слова "реалистичный" или "гиперреалистичный". Вместо этих слов используйте "RAW photo" или "Canon EOS R8, wide-angle lens" и другие. Также надо учитывать, что Kadinsky не умеет создавать изображения людей и животных, лежащих на спине. А если и создаст, то это будут деформированные тела. Видимо, данные для обучения были ограничены с целью соблюдения этических фильтров. Вот пример того, что получилось создать по такому запросу prompt: RAW photo, British longhair cat, lies on the back, in the kitchen, basking in the sun


  1. purportex
    04.04.2024 10:00

    «Выпускаем» — где можно потрогать?


  1. menz1
    04.04.2024 10:00

    Вот кстати давно было интересно, как вы собираете обратную связь от людей, как ее обрабатываете, какую-нибудь статистику неуспешных генераций и т.п.? Я лично регулярно задалбываюсь генерить что-то сложнее котика в мыле, многие из интересных идей в принципе не удались, языковая модель тупо не распарсила нормально.

    З.ы. Юзер-френдли мануала с примерами генерации тоже бы не помешало, например, как запросить генерацию нескольких объектов на одном изображении


  1. NeoRUS747
    04.04.2024 10:00

    Очень интересно, подскажите когда появиться в общем доступе?