Как нейросети создают изображения?

OpenAI представили новую нейросеть DALL-E 3. В каждом прогрессивном бизнесе стоит на вооружении MidJourney. Извращенцы с Двача во всю гоняют свои фантазии через Stable Diffusion. Одно не понятно – как все эти нейросети работает? Отвечаю на вопрос максимально простым языком в этой статье.

Как нейросети создают изображения?

За последние несколько лет было сделано много достижений в области искусственного интеллекта, и одним из самых общедоступных и популярных инструментов стали генераторы изображений. Это инструменты, способные преобразовывать входящее утверждение (prompt) в изображение. Ключевые на этом рынке – DALL-E, Stable Diffusion и MidJourney.

Нам, обывателям, принцип их работы до сих пор может показаться магией. Знаете, как в славные времена блокчейна – у всех на слуху но мало кто понимал, как это работает внутри. Далее я попробую объяснить максимально простым языком, как работают эти три нейросети и какие между ними отличия.

Основы генерации изображений

Когда нейросети генерируют изображения, они начинают с текстовых описаний. Для того чтобы понять эти описания, они используют специальный процесс, который переводит текст в числовой формат, который понимает машина. Этот процесс запускается моделью обработки естественного языка (NLP), например моделью CLIP, которая используется в DALL-E.

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

Что делает NLP
Что делает NLP

Давай рассмотрим пример: пользователь вводит текстовое описание «красное яблоко на дереве» в генератор изображений. Модель NLP преобразует этот текст в числовой формат, который улавливает разные элементы - «красное», «яблоко» и «дерево», а также связи между ними. Это числовое представление действует как навигационная карта для генератора изображений на основе искусственного интеллекта.

Теперь рассмотрим нюансы работы популярных нейросетей.

Как работает DALL-E

DALL-E – это нейросеть, созданная OpenAI. Она умеет создавать изображения на основе текстовых описаний. Для этого она использует более 10 миллиардов параметров, анализирует текстовые описания и создает соответствующие изображения.

DALL-E 2 в основном состоит из 2 частей – одна для преобразования пользовательского запроса в представление изображения (называется Prior), и другая для преобразования этого представления в фактическое изображение (называется Decoder).

Информация о тексте и изображениях берется из другой системы, которую сделали в OpenAI, она называется CLIP (Contrastive Language-Image Pre-training). CLIP – это как мозг, который понимает, какое описание подходит к какому изображению. Например, если показать ему фото кофейной чашки, он скажет «кофейная чашка». Это помогает понимать связь между описаниями и картинками.

Как работает DALL-E 2
Как работает DALL-E 2

Конечная цель DALL-E 2 – создать изображение из текстового описания. Она делит задачу на два этапа: первый этап (Prior) учится превращать слова в специальные коды для изображений, а второй этап (Decoder) берет эти коды и делает из них настоящие картинки. Во время исполнения нейросеть делает примерно следующее:

  1. Описание, которое ты вводишь, превращается в код, который понимает система.
  2. Первая часть (Prior) уменьшает сложность этого кода.
  3. Затем этот код превращается в изображение.
  4. Изображение увеличивается с размера 64×64 до 256×256, а затем, наконец, до 1024×1024 с помощью специальной сверточной нейросети.

Как работает Stable Diffusion

Stable Diffusion – это модель, которая берет текст и создает из него изображение. Изначально внутри использовался специальный текстовый кодировщик CLIP ViT-L/14, который не изменяется. Модель работает так, что изначально у нее есть только шум, а затем она постепенно улучшает изображение до тех пор, пока оно не станет соответствовать текстовому описанию, которое было дано.

Stable Diffusion использует модель Latent Diffusion Model (LDM), современную технику синтеза изображений из текста. Чтобы понять, как работают LDM, давайте разберемся, что такое Diffusion Model и зачем они нужны.

Diffusion Model (DM) – это основанные на трансформерах генеративные модели. Они берут, например, изображение, и постепенно добавляют случайные изменения, шум, до тех пор, пока изображение не станет неузнаваемым. Затем они учатся возвращать изображение к исходному виду, и таким образом учатся создавать новые изображения.

Принцип работы Diffusion Model
Принцип работы Diffusion Model

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

Как работает MidJourney

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

Нейросеть работает на основе текстовых запросов и ряда настроек, а также использует алгоритм машинного обучения (ML), обученный на очень большом объеме изображений, чтобы создавать качественные, уникальные изображения. Midjourney основан на Diffusion Model, аналогичной DALL-E и Stable Diffusion, которая превращает случайный шум в художественные произведения.

Midjourney использует две относительно новые технологии машинного обучения, а именно большие языковые и диффузионные модели. Большая языковая модель первоначально помогает Midjourney понимать смысл того, что пользователь вводит в качестве запроса. Затем это преобразуется в то, что называется вектором, который можно представить себе как числовую версию запроса. Наконец, этот вектор направляет другой сложный процесс – диффузию.

Midjourney в настоящее время доступен только через бота Discord на официальном сервере. Пользователь создает изображение, используя команду /imagine и вводит текстовый запрос, как и в других инструментах для генерации изображений. Затем бот возвращает получившееся изображение в четырех вариантах.

Сравнение

В целом, технически, работа всех трех нейросетей предельно схожая и отличается обычно качеством результатов и интерфейсом взаимодействия – будь то сложный набор параметров, который позволяет контролировать освещение лица или простое текстовое поле для запроса и большая кнопка «сгенерировать», которые особо никак не дают контроль над деталями.

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

Особо нейросетями уже не удивить, они встали на вооружение как полноценный и стабильный инструмент. Мне интересно, какой инструмент в итоге у вас в компании стал основным?

Какой нейросетью пользуетесь?
MidJourney, легко и понятно
DALL-E, не вижу разницы
Stable Diffusion, я гик
Вчера вышел из бункера, не понимаю о чем речь

Поделись статьей со знакомым фанатом нейросетей и подпишись на канал директора айти компании, где я простым языком рассказываю про сложное айти.

Другие мои статьи на тему ИИ:

22
22
6 комментариев

MidJourney самая попсовая получается, любой маломальски технически грамотный освоит и применит

ну она конечно попсовая но дали вроде не хуже делает, да и стейбл с расширениями

1

Ага. Единственная сложность десять баксов заплатить

А как сделать красивые кисти рук

Говорят далле 3 сможет