Запрос stars world time 27 июня и спустя полгода.
«100500-ый текст про Midjourney», — подумал сейчас кто-то. Справедливости ради, шумиха вокруг нейросети немного поутихла, а работа над Midjourney — нет. Сейчас доступна четвертая версия генератора картинок, и если вы еще его не тестировали — самое время.
В этом тексте я не только покажу, как прогрессирует Midjourney, но и подробно опишу, как параметры влияют на конечный результат генерации. Это позволит вам выжать максимум из нейронной сети и эффективно использовать ограниченное количество бесплатных генераций.
Если и это вам бесполезно, то под катом много красивых и смешных картинок — котов и «горячих собак».
Дисклеймер
Обновления. Midjourney — это активно развивающийся проект. Это значит, что какие-то функции могут быть отключены, а какие-то добавлены. Даже официальное руководство пользователя не успевает за развитием проекта.
Цензура. Все материалы, сгенерированные в Midjourney, должны подходить под рейтинг PG-13. Если случайно получилось что-то неприличное, то это можно отметить для удаления. Строка запроса фильтруется на предмет «неправильных» слов, а попытки намеренно обойти фильтр могут привести к бану. Входные изображения, кстати, тоже фильтруются.
Публичность. Все запросы на генерацию и их результат доступны публично в галерее на сайте midjourney.com. Существует два способа избежать публичности: опция Stealth Generation за дополнительные $20 или тариф Pro Plan. Но даже в этом случае команды модерации и разработки Midjourney могут смотреть что вы делаете. Все описанные в статье команды и параметры доступны на бесплатном тарифном плане.
Приступим к генерациям!
С чего все началось
Моя первая генерация в Midjourney состоялась 27 июня 2022 года. Вернулся я 27 декабря.
Я особо ничего не ожидал, но сразу видно, как за полгода изменилось качество детализации и общий взгляд нейросети.
Запрос: valhalla
Фулсайз | Фулсайз |
Я берег бесплатные генерации как зеницу ока. Но, увидев разницу, решился на месяц стандартного плана (Standard Plan) по цене $30. Мне казалось, что лимит самого дешевого тарифа в 200 генераций я очень быстро исчерпаю. Спойлер: за неделю я сделал более 500 генераций.
Отличия платной версии от бесплатной
Безлимитные генерации. Это основная причина, по которой я решился на подписку. Standard Plan предлагает 15 часов быстрой (fast) генерации и безлимит медленной генерации (relaxed). Бесплатный тарифный план предлагает 25 минут генерации, что примерно равно 25 изображениям. Способ генерации fast и relaxed влияет только на приоритет в очереди. Вечерами время relaxed-генерации может доходить до 10 минут между отправкой запроса и получением результата. Параллельно могут выполняться две генерации, остальные будут стоять в очереди.
Личные сообщения. На бесплатном тарифном плане бот генерирует изображения только в каналах сервера. Те, кто заглядывал в каналы сервера Midjourney, знают, что там нескончаемый поток генераций. С недавних пор бота можно пригласить на свой сервер, где «все свои». На платном тарифном плане бот позволяет генерировать изображения в том числе в личных сообщениях с ботом. Мелочь, а приятно (и удобно).
Лицензия. На бесплатном тарифном плане на все сгенерированные изображения действует лицензия Creative Commons Noncommercial 4.0 Attribution International License, разрешающая все, кроме коммерческого использования. Для платных тарифных планов разрешается такое использование сгенерированных изображений с условием, что у Midjourney будут неисключительные права на сгенерированные изображения и текстовые запросы. Юридический текст доступен в условиях использования.
Расширенные возможности. Остальное я считаю скорее приятным бонусом, чем полноценной особенностью платной версии. В Discord открывается дополнительный канал с технической поддержкой, куда имеют доступ только подписчики. На сайте появляется возможность смотреть генерации конкретного пользователя и оценивать свои и чужие изображения. Оценки изображений могут привести к получению «призовых» часов генерации.
Опции, которые можно передавать для генерации, не зависят от тарифного плана. Однако некоторые опции значительно повышают расход доступных минут генерации и могут быть расточительными для бесплатного тарифного плана.
Параметры генерации
Базовые параметры
В конце строки запроса можно указать параметры генерации. Сперва пройдемся по базовым параметрам:
- —ar 16:9 — соотношение сторон сгенерированной картинки,
- —seed <число> — целочисленное неотрицательное «зерно» для случайной генерации,
- —w <число> и —h <число> — явное указание ширины и высоты изображения в пикселях.
Если вам нравится какая-то комбинация параметров, то для них можно создать псевдоним командой /prefer option set <имя> <значение>. Но это уже для продвинутых пользователей.
Версии алгоритмов Midjourney
Когда мои коллеги сравнивали Midjourney со Stable Diffusion и DALL-E, у нее был алгоритм третьей версии. С декабря актуальная версия — 4. Помимо этого, есть доступ к NIJI-модификации и тестовым версиям алгоритмов. Разные версии алгоритмов имеют разное видение запросов. На данный момент доступно 7 версий:
- v1 — оригинальный алгоритм MJ. Очень абстрактный.
- v2 — оригинальный алгоритм, применяемый до 25 июля 2022 года.
- v3 — алгоритм, актуальный до декабря 2022 года.
- v4 — текущий актуальный алгоритм.
- niji — аниме-модификация.
- MJ Test — тестовый алгоритм.
- MJ Photo Test — еще один тестовый алгоритм.
Номерные версии выбираются параметром —v, а остальные — ключами: —miji, —test и —testp соответственно.
Котики — это в некотором смысле «фундамент» интернета. Так и начнем с генерации кота без дополнительных параметров и уточняющих слов.
v1. Фулсайз | |
v2. Фулсайз | |
v3. Фулсайз | |
v4. Фулсайз | |
MJ Test. Фулсайз | |
MJ Photo Test. Фулсайз | |
NIJI. Фулсайз |
Оставим в покое экспериментальные версии — сгенерируем пейзаж и что-нибудь абстрактное.
beautiful landscape | Khokhloma |
v1. Фулсайз | v1. Фулсайз |
v2. Фулсайз | v2. Фулсайз |
v3. Фулсайз | v3. Фулсайз |
v4. Фулсайз | v4. Фулсайз |
NIJI. Фулсайз | NIJI. Фулсайз |
Прогресс заметен невооруженным взглядом. Четвертая версия Midjourney превосходит своих предшественников не только по качеству, но и по скорости генерации. Но за качество и скорость надо чем-то расплачиваться. Алгоритм v4 и более новые поддерживают только два соотношения сторон: 1:1 и 3:2 (2:3).
nature landscape —v 3 —ar 21:9
cyberpunk city —v 3 —ar 21:9
nature landscape —v 3 —ar 32:9
Таким образом, если вы уверенный пользователь монитора с соотношением сторон 21:9 или 32:9, то можете отложить идею сгенерировать детализированные обои для рабочего стола.
На момент написания статьи разработчики планируют добавить генерацию изображений с соотношением сторон 16:9 и 9:16.
Этапы генерации в формате видео
Бот в Discord показывает прогресс создания изображения. Что делать, чтобы получить видео этого процесса?
Видео в разных версиях: v1, v2, v3.
Произвольные соотношения сторон картинки — не единственное, что потерялось в v4. Параметр —video, который отправляет видео генерации изображения, также не попал в четвертую версию нейросети. Более того, я уточнял у поддержки — мне ответили, что этой функциональности не будет для v4.
«Костыли», конечно, никто не отменял. Существует параметр —stop <число>, который прерывает генерацию на указанном проценте готовности. Если явно указать seed и перебирать значение параметра stop, то можно получить все итерации и самостоятельно собрать из них анимацию.
К счастью или сожалению, на v4 можно получить около 16 кадров, что делает итоговую анимацию немного дерганной. Но, как говорится, на безрыбье и рак рыба.
Закончим с грустным и перейдем к детальной настройке запросов.
Акцент на словах
При генерации на изображении может возникнуть непрошенные элементы, имеющие стойкую ассоциацию с запросом. Рассмотрим запрос hot dog. Его можно трактовать как горячую (по каким-то причинам) собаку, так и как уличную еду.
Красиво, сочно и грустно, если вы хотели увидеть собаку. Дополним запрос и укажем, что хотим животное.
Теперь мы видим животное, которое является частью еды. Ай-яй-яй! Явно зададим в запросе, что не хотим видеть никакой еды при генерации. Для этого после набора слова необходимо поставить два двоеточия и задать «вес» этой последовательности. Отрицательный вес означает ваше нежелание видеть это на генерации. Например:
hot dog::1 food::-1 animal
Горячей собаке даем вес 1, а у еды, наоборот, отнимаем. Главное требование такого подхода: сумма всех указанных весов не может быть отрицательной.
Вуаля, никакой еды. К сожалению, это работает не всегда, но об этом мы поговорим далее.
Изображение в качестве запроса
В качестве запроса можно указать прямую ссылку на изображение и указать запрос, как изменить картинку. Текстовый запрос обязателен, так как Midjourney использует картинку в качестве образца, из которого подбираются основные детали и композиция. При этом на выходе получается полностью новое изображение.
На момент написания статьи можно указывать более одной картинки, но картинкам нельзя задавать веса.
Запрос: (ссылка) man notebook cyberpunk —ar 3:2
Как вам Гарольд, который скрывает боль в 2077? Согласен, возможно, это не самый удачный пример. Тем не менее, можно генерировать картинки и объединять их. Например, сгенерируем неонового котика и абстрактный рисунок.
neon cat data streams colourful beautiful. | pattern heart red repeating. |
Итоговый результат:
Запрос: (ссылка 1) (ссылка 2) neon cat
Этот красавец — третья итерация совмещения неонового котика с абстрактным рисунком.
Запрос: (ссылка) anime style —niji
Обратите внимание, что Midjourney «разбирает» и использует объекты, которые встречаются на изображениях или в текстовом виде. Однако чем более насыщенная на детали оригинальная картинка, тем больше вероятность, что что-то пойдет не так, как вам хочется.
В чатах сервера Midjourney я увидел это и сделал скриншот, чтобы показать коллеге пример того, как люди просят совместить несовместимое. По каким-то причинам поиск на сервере Midjourney не работает, поэтому этот пример остался только в качестве скриншота.
Соответствует ли результат запрошенному? Сложный вопрос. Но в запросе используется интересный параметр для стиля.
Детализация и стилизация
Midjourney позволяет задавать качество детализации генерации с помощью аргумента —q. По умолчанию этот аргумент имеет значение 1, но может изменяться в диапазоне от 0.25 до 5. Этот аргумент является модификатором затрачиваемого времени. Так, —q 2 займет в два раза больше времени на генерацию, а —q 0.25 — в четыре раза меньше.
Запрос: future city —seed 123456
—q 0.25 | —q 1 (по умолчанию) | —q 5 |
—v 3 —q 0.25 | —v 3 —q 1 | —v 3 —q 5 |
Для v4 значения q > 1 никак не влияют на генерацию, а значения меньше изменяют детали. Однако для v3 это буквально множитель времени и детализации: q=5 генерируется около пяти минут.
На видео заметно, как дополнительные итерации проявляют новые детали, а длительность видео возросла с 7 до 36 секунд.
Запрос: future city —seed 123456
—s 0 | —s 500 | —s 1000 |
—v 3 —s 625 | —v 3 —s 2500 (по умолчанию) | —v 3 —s 60000 |
Значительные отличия можно получить с помощью аргумента —s. Для Midjourney v3 этот аргумент принимает значения от 625 до 65000, а для v4 — от 0 до 1000. Чем больше этот параметр для v3, тем больше алгоритм позволит себе отклонений от оригинальной идеи. Для v4 описания нет, но значение изменяет взгляд нейросети при неизменном зерне.
Запрос: future city —seed 123456
—style 4a | —style 4b |
Запрос: neon cat —seed 2325760227
—style 4a | —style 4b |
Хотя я быстро абстрагировался от каналов с людьми и перешел в уютную переписку с ботом, я нередко заходил в каналы технической поддержки. Однажды я заметил там пользователя из категории «раньше было лучше!», который жаловался на изменение визуального стиля в Midjourney. Тогда ему посоветовали запустить генерацию с недокументированным параметром —style. На текущий момент для v4 доступны два стиля: 4a и 4b.
Кажется, мы обговорили основные опции, которые позволяют варьировать изображения. Перейдем к некоторым хорошим и плохим практикам работы с нейросетями.
Мифы и легенды
Нейросети не умеют рисовать конечности
К счастью или сожалению, это не миф, а неотвратимая реальность.
beautiful woman hand with ring | beautiful cat paw |
Даже если сконцентрировать внимание нейросети на необходимости нарисовать руку или лапу, все равно что-то пойдет не так. Неправильное количество пальцев? Легко. Пальцы как будто без костей? Без проблем. Ногти посреди фаланг? Заверните парочку.
Если вы не собираетесь обрабатывать изображение, то по возможности избегайте генерации конечностей живых существ крупным планом. Даже слово beautiful не помогает. А должно ли?
Метки «качества» и количества
Через несколько минут пребывания в любом чате для генераций изображений обязательно встретится человек, запрос которого на 70-80% состоит из слов, призывающих нейросеть к максимальной детализации. И сразу начинаешь верить, что это поможет. Количество бесплатных генераций ограничено, и нет времени на эксперименты!
Основной запрос: woman portrait —seed 2131932819
(без дополнительных слов) | beautiful | beautiful 8k octane unreal realistic |
Слова Octane (Renderer), unreal (engine), realistic и 8k отсылают к желанию сделать изображение более реалистичным, более детализированным и более прекрасным. Несомненно, Midjourney видит эти слова, и они влияют на генерацию. Но каких-то существенных изменений это не вносит. Да и чувство прекрасного у всех разное.
Основной запрос: woman portrait —seed 2131932819
nature | soft sunset light | stars |
Нейросеть не умеет читать ваши мысли и с трудом понимает, что такое beautiful. Зато она понимает уточняющие слова, которые позволяют задать стиль и цветовую гамму.
three apples | nine apples |
Однако с уточняющими словами нужно быть аккуратными. Во-первых, запрос с точным числом объектов на изображении может провалиться, если объектов больше трех. Я чувствую небольшой троллинг в цифрах 9 на яблоках. Во-вторых, нейросеть считает некоторые слова в запросе решительно несовместимыми.
Несовместимые стили
Например: мне нравится неоновый стиль и котики. А котики — это то, что отлично получается у Midjourney.
Я сгенерировал пару десятков таких прекрасных котиков, прежде чем задумался о цвете фона. Я захотел белый фон. Ну или хотя бы белого кота.
cat white | neon cat white |
cat white background | neon cat white background |
Становится очевидно, что если на светлых неоновых котов Midjourney еще как-то согласна, то вот на светлый фон для неоновых котов — нет. И с этим остается только смириться. Я попробовал разные цвета, разное построение предложений, синонимы к слову «background» — все бестолку.
Иногда на изображении появляется текст, а письменную речь, как и руки, Midjourney генерирует плохо. В некоторых случаях даже text::-1 не помогает избавиться от назойливого текста. Особенно актуально, если в запросе есть слово logo.
Когда не можешь справиться с прямым смыслом слов, начинаешь думать про скрытый смысл предложений. А зря.
Фразеологизмы, устойчивые выражения и языки
Как-то в интернете я нашел пост. Мол, вот как нейросети видят русские устойчивые выражения.
жадина-говядина | деловая колбаса | ядрена вошь |
Источник: Telegram-канал «Нейросеть for Fun»
Конечно, такой заголовок привлекает читателя и побуждает поделиться с друзьями. Но на поверку это всего лишь отличный маркетинговый ход.
жадина-говядина | greedy beef |
Какая-никакая говядина появляется только на дословном переводе жадины-говядины — «greedy beef», а в оригинальном написании появится портрет девушки. И то корова с оригинального изображения, скорее всего, появилась не с первого раза и была дополнена различными словами.
Кстати, портрет девушки — это защитная реакция Midjourney, когда она не в силах понять, что от нее хотят. В любой непонятной для нейронной сети ситуации будет нарисован портрет девушки. Даже запрос на английском «nine dots» покажет портрет девушки! Хотя бывают и исключения.
nine dots | суп с котом |
Результат запроса «суп с котом» продемонстрировал наличие кота, хоть и без супа. Но я связываю это с популярностью котов.
Русские крылатые выражения переводятся на английский, и в процессе теряется сакральный смысл. Но это не самая большая проблема, ведь в английском языке тоже есть фразеологизмы — идиомы.
are you pulling my leg | get your ducks in a row | face the music |
И… Midjourney дословно продемонстрировала значение каждой из этих идиом:
- are you pulling my leg — вы меня разыгрываете,
- get your ducks in a row — держать [что-то] в порядке,
- face the music — принять наказание за совершенный проступок.
Я не рассчитывал на понимание идиом, но проверить очень хотелось.
Как лучше использовать Midjourney?
После генерации почти половины тысячи картинок и безуспешных попыток добиться рисунка из своих фантазий я вынес следующие утверждения, которые помогут насладиться взаимодействием с нейросетями.
- Не стоит ставить сложное и детальное ТЗ. С четкими проработанными требованиями нужно обращаться к дизайнеру или художнику.
- Midjourney может творить потрясающие картинки: выберите ключевые слова вашей идеи и комбинируйте их для достижения великолепного результата.
- Если картинка не впечатляет, то есть кнопка повторения с новым зерном, а если не нравится лишь маленькая деталь, то есть кнопка вариаций.
- Midjourney идеально подходит для генерации портретов и крупных планов: можно сделать себе аватарку.
Мой ник странный, но в интернете я видел только одну визуализацию: красную луну. И вот Midjourney по моему нику сгенерировал нечто потрясающее. К сожалению, так работает не со всеми никами — иногда будет портрет девушки. Но добавьте слово logo и все изменится.
Заключение
Midjourney сильно прокачалась, но все еще не может конкурировать с художниками и дизайнерам. Нейронные сети могут сделать эпичную и сочную картинку, но с трудом вплетают сюжет и отсылки к своим кумирам. Когда фотография становилась популярна, художники всерьез забеспокоились, что это конец живописи. Но этого не случилось.
Я никогда не умел рисовать, да и срисовывал плохо. Я умею только писать: код и тексты. И для меня нейросеть Midjourney — это уникальная возможность превратить свой текст в визуальный контент, который радует глаз. Пара ключевых слов превращаются в пейзаж, который может стать источником вдохновения. Плохо ли? Хорошо!
Ссылка на альбом с котиками от MJ →
Если вам нравится читать про нейронки, изучите эти тексты:
→ Сможет ли Midjourney заменить дизайнеров? Тестируем нейронную сеть
→ Баттл «художников»: сравниваем Midjourney, DALL-E 2 и Stable Diffusion
→ Копирайтеры больше не нужны? Просим новую нейросеть Notion AI написать про Python