Обзор Midjourney, DALL-E 2 и Stable Diffusion — что выбрать?

Что выбрать для генерации изображений: обзор Midjourney, DALL-E и Stable Diffusion

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

Изображение записи

Особенности работы с нейросетями 

Для начала давайте разберем особенности и способ работы с каждой нейросетью.

Midjourney

Работает через Discord-канал: для генерации изображений нужно отправить текстовый запрос в чат-канале newbies. Другие пользователи будут видеть ваши результаты.

Интерфейс Midjourney.

В ответ на запрос нейросеть рисует коллаж из четырех изображений. Их размеры можно устанавливать с помощью специальных флагов —w и —h.

Изображение размером 190х1080.
Пример настройки разрешения изображений. 

Изображения можно улучшать или генерировать для них дополнительные варианты.

Пример доработки изображения.
Пример работы апскейлинга и генератора дополнительных вариантов.

DALL-E

Проект работает через API, но для пользователей из России доступен только через VPN. Кроме того, при аутентификации понадобится SMS-подтверждение — работает только для иностранных номеров.

Пример сгенерированных изображений.
Сообщение об ошибке: «Что-то пошло не так. OpenAI недоступен в вашей стране».

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

Изменение изображения кота на кепку.
Пример работы модификатора. 

Для каждого изображения можно сгенерировать дополнительные варианты и отобрать лучшие из них.

Дополнительные варианты изображений.
Генерация дополнительных вариантов. 

Stable Diffusion

Исходный код проекта есть в открытом доступе. Для работы с нейросетью можно скачать git-репозиторий и развернуть свой веб-сервер.

Интерфейс Stable Diffusion.
Stable Diffusion, WebUI.

В Stable Diffusion есть ряд параметров для гибкой настройки генератора изображений:

  • Height, Width — размер изображения.
  • Classifier Free Guidance Scale — насколько точно изображение должно соответствовать запросу. Рекомендуем использовать стандартное значение — 7,5.
  • Number of batches to generate — сколько всего подборок сгенерирует нейронная сеть.
  • Images per batch — количество изображений в одной подборке.
  • Sampling steps — количество раз, которое нейронная сеть обрабатывает изображение. Для всех изображений в статье параметр равен 70.
  • Sampling method — метод выбора «лучших» изображений во время генерации — для простых запросов разница незаметна. В большинстве случаев использовали стандартный метод k_lms.
Варианты сгенерированных изображений.
Изображения с разными значениями Sampling method.

Идея эксперимента 

Для сравнения нейросетей проведем пять испытаний. Что нужно избрать:

  • литературного персонажа — тот, чье имя нельзя называть;
  • историческую личность — Уинстона Черчилля;
  • айтишный сценарий — Assembler и программирование;
  • абстракции;
  • набор объектов;
  • видение себя.

Испытание 1. Волан-Де-Морт 

В серии фильмов про Гарри Поттера роль лорда Волан-Де-Морта играли пять актеров. Проверим, каким чародея «запомнили»‎ нейросети.

Запрос: Lord Voldemort stands and smiles digital art

Варианты изображений.

Несмотря на прописанный в запросе стиль digital art, «испытуемые» показали разные результаты. Самым удачным кажется вариант от Midjourney. Он похож на персонажа из фильмов о Гарри Поттере. 

Сложнее всего было сгенерировать картинку в Stable Diffusion. В большинстве случаев у персонажа силуэт был неуклюжим, с глюками.

Вариант Волан-Де-Морта от Stable Diffusion. 
Изображение, сгенерированное Stable Diffusion. 

Испытание 2. Уинстон Черчилль 

Насколько точным передаст каждая нейросеть известного политика?

Запрос: Winston Churchill standing in front

Варианты изображений.

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

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

Еще один результат этого испытания: ни одна нейросеть не сгенерировала Уинстона Черчилля с сигарой.

Испытание 3. Программирование на Assembler 

Решили проверить, какая из нейросетей лучше всего справится с иллюстрацией на тему программирования.

Запрос: man programming in Assembler

Варианты изображений.

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

Скорректировали запрос и добавили деталей: Man sits at computer and programming in Assembler

Результат Midjourney.

Мыслитель сидит в позе лотоса и программирует. Результат Midjourney.

Испытание 4. Чувство любви 

Представить чувство просто, а объяснить трудно. Оно абстрактно и субъективно. Вопреки рекомендациям по запросам проверили, какой любовь видят нейросети.

Запрос: feeling of love, digital art

Варианты изображений.

Абстрактные композиции лучше выходят у DALL-E 2. Они не тривиальны и передают сюжет. Midjourney и Stable Diffusion фокусируются же на шаблонном решении — сердце.

Испытание 5. Набор объектов 

Во время создания иллюстраций дизайнер думает о том, как лучше объединить разные элементы, прописанные в техническом задании. Иногда сложно представить «сцену»: объекты могут быть не связаны, а их нужно как-то «скрепить» в композицию. Мы решили проверить, что придумают нейросети, если просто перечислить ключевые элементы через запятую.

Запрос: computer, photos with cats, robot, fish

Варианты изображений.

Что не так с третьим изображением? Сначала подумали, что нужно откалибровать параметр Classifier Free Guidance Scale (cfgscale). Он отвечает за то, насколько точно изображение должно соответствовать запросу. Но это ни на что не повлияло: при разных значениях cfgscale получаются обычные слияния картинок.

Варианты изображений.
Результаты по запросу «computer, photos with cats, robot, fish» при разных значениях cfgscale. 

В остальном, кажется, с задачей лучше справилась DALL-E 2. На рисунке изображен котик, который с недоумением смотрит в монитор компьютера. Нейросеть не проигнорировала в запросе и рыбу: на стене есть ее фотография.

Испытание 6. Видение себя 

И напоследок: как нейросети видят сами себя?

Варианты изображений.

Stable Diffusion ассоциирует себя с лошадьми, Midjourney — с пейзажами и закатами, DALL-E — с гедзе.

Какая нейросеть победила? 

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

Если нужно сгенерировать изображение здесь и сейчас — используйте Midjourney

Достаточно подключиться к Discord-каналу. Не нужно настраивать VPN или разворачивать целый web-сервер. Можно получить хорошее изображение даже без настроек стилей. Хотя иногда может понадобиться не одна попытка. 

У Midjourney есть свой «универсальный почерк». Она по умолчанию генерирует картины, будто написанные маслом, а не фотографии или рисунки, как это делают DALL-E 2 и Stable Diffusion. Преимущество ли это — решать вам.

Хотите объединить несколько разных объектов? С этим поможет DALL-E 2

Она умеет строить сложные и «осмысленные» композиции. Это полезно, когда дизайнеру нужно получить большое количество референсов в сжатые сроки. 

Также в DALL-E можно изменять изображения при необходимости. Пример: нейросеть нарисовала пейзаж, но на горизонте стоит лишнее дерево. Вы можете его выделить и удалить. 

Но помните: для работы с нейросетью нужен VPN и иностранный номер телефона. Это затрудняет работу. Зато сервис бесплатный и не ограничивает в количестве запросов.

В Stable Diffusion есть настройки для гибкой работы с генератором изображений

Например, если нужно контролировать нагрузку нейросети на сервер, можно уменьшить параметр Sampling steps. А если ресурсов достаточно и цель — получить наиболее качественные рисунки, достаточно выкрутить параметры на максимум. Хотя с Classifier Free Guidance Scale лучше не экспериментировать. Крайние значения параметров генерируют изображения, состоящие из одних «глюков». 

Однако для работы с нейросетью нужно развернуть Google Collab или собственный web-сервер. Это решение может оказаться дороже, чем подписка в Midjourney.