Доброго времени суток, «Хабр»!
Не так давно я рассказывал про промты для нейросетей, которые способны генерировать фотографии и видео. Да и можно вспомнить, что у меня выходили статьи про Krea AI и Playground AI, которые тоже являются инструментами для работы с изображениями. В этой статье мной было принято решение немного углубиться в части генерации фотографий и рассмотреть одну из более популярных моделей, предназначенных для этого, — Midjourney. Точнее как, сегодня мы поговорим о некой конкретике и изюминке в промтах для этой нейросети, а также узнаем (а некоторые вспомнят), как их грамотно составлять.
Итак, присаживаемся поудобнее, достаем свои кисточки, кхм, точнее достаем вкусняшки, ну а я перехожу к своему повествованию.

Небольшое отступление
Перед переходом к основной части статьи хочу сказать, что Midjourney взят с агрегатора нейросетей BotHub. Там, кстати, после регистрации можно получить 100 000 капсов для собственных экспериментов.
Что такое Midjourney?
Конечно, сама по себе статья должна быть исключительно про промты, но я подумал-подумал, пораскинул мозгами (да, есть запасные) и решил вкратце ответить на вопрос: «Что такое Midjourney?». Понятное дело, многие уже знакомы с этой моделью, но найдутся и те, кто о ней не слышал. Поэтому этот раздел будет специально для них, так сказать чтоб ввести в быстрый экскурс.
Итак, Midjourney — модель, которая создает изображения исходя из поставленных пользователем условий (т. е. промта). Основана она на архитектуре типа трансформер.
Midjourney была выпущена одноименной компанией, а ближе к середине июля 2022 года стала доступной для пользователей по всему миру. В 2024 году разработчики запустили официальный сайт, который до этого находился в режиме бета-тестирования.
В принципе, на этом краткий экскурс и подошел к концу, а теперь пройдемся по промту для этой модели.
Промты для Midjourney
Наконец мы перешли к ключевой информации, собственно тому, о чем статья и должна быть. Сейчас мы будем говорить о промтах для Midjourney, и здесь все будет разделено на две категории: основные инструкции и дополнительные.
Основные инструкции будут включать в себя обыкновенные советы для промта, а вот дополнительные заберут на себя более тонкую настройку, которой обладает Midjourney.
Основная часть
Рекомендация для работы с моделью
Начну, пожалуй, с рекомендации, которой, собственно, я буду пользоваться в примерах, пока веду рассказ об управлении Midjourney. Лучше всего модель поймет вас на английском языке, конечно при условии, что и сам промт у вас будет более-менее адекватный.

A dark gray wolf with purple eyes looking at the camera
План для успешной генерации
Оглашу некоторые шаги, следуя которым можно будет получить хороший промт для постановки нужной вам задачи. Конечно, не всегда будут использоваться все из них, но чем больше, тем лучше результат.
Главный объект. Определитесь с действующим лицом или предметом на переднем плане. Проще говоря, ответьте на вопрос: кто или что вы фотографируете?
Желательно задать объект кристально понятно, грубо говоря без лишней мудрености. Если обратим внимание на пример генерации выше, то объектом выступит волк.Детали. Достаточно важный аспект, который нужно контролировать для более точной генерации. Чтобы выполнить этот шаг по созданию промта, нужно ответить на вопрос: какие черты есть у объекта?
Опять же, обратим внимание на пример выше, чертами являются: цвет волка, его глаза.Действие/состояние. Что происходит с объектом? В каком он положении? Конечно, в промте выше я не указал этот параметр, поэтому модель сгенерировала позу на свое усмотрение. Мой Тузик принял лежачее положение.
Окружение. Где находится ваш объект? Опишите окружение, опять же модель в примере решила расположить Тузика между двух деревьев.
Стиль. В каком стиле должно быть сделано изображение? Пример сгенерирован в реализме, однако вы вольны выбирать стиль, который будет вам по душе.
Техническая настройка. В примере ее я не рассматривал, да и сейчас она будет идти просто как часть плана. Более подробно о ней вы узнаете в дополнительном разделе, который в целом и будет посвящен ей. Кстати, именно этот пункт всегда должен идти в конце промта, иначе модель просто забьет на него.
Конечно, я произведу генерацию в соответствии со всеми шагами, ну кроме последнего, но в конце статьи и о нем не забудем.

A dark gray wolf with purple eyes sits on the plain. Style: Cartoon
Значимые нюансы при работе с моделью
Поговорим немного о нюансах, которые не стоит забывать при обдумывании и создании своего идеального промта.
Лаконичность. Лучше составить промт из пяти точных слов, чем скармливать модели двадцать расплывчатых. В конечном итоге Midjourney просто запутается и не произведет на свет то, что вы хотели бы увидеть.
Без антиподов. При составлении промтов нужно понимать, что модель не поймет противопоставленные по своему значению факторы, нужно следить за сочетаемостью. Грубо говоря, нельзя в реализме сделать огромные мультяшные глаза. Условия создадут конфликт, что помешает успешной генерации.
Неверный результат генерации. Подобное может быть частым затруднением. Решение лежит на поверхности — проблема в промте. Разложите его в обратной последовательности на шаги и найдите слабое звено. Чаще всего загвоздка таится в деталях, которые либо недостаточно конкретны, либо противопоставлены друг другу, как в случае с антиподами.
Дополнительная часть
Настало время информации для людей, у которых есть нужда в более тонкой настройке модели при генерации. Все же то, что я упоминал выше, содержит более простую, обывательскую информацию, а вот сейчас перейду уже к так называемой технической настройке, которая была последним шагом в плане.
На самом деле, этот вид настройки содержит в себе тучу параметров, которые будет трудно описать сразу подробно. Поэтому моим скромным решением станет упомянуть основные (по моему мнению) более подробно, а все остальные в виде таблички.
Параметр --no
Иногда бывают запросы, которые требуют отказаться от какого-либо элемента на фотографии. Допустим, вам нужно убрать все растения, тогда вы ставите параметр с соответствующим указанием --no plants
. Конечно, гарантий, что модель не нарисует где-то куст, не дает даже официальное руководство от Midjourney…

Тузик доволен, он сидит просто в сером пространстве. Конечно, возможно, подобный промт не раскрывает полностью этот параметр, но при этом растений на изображении нет. Хотя при изначальном варианте все четыре фотографии были в лесной местности.
Параметр --seed
Когда изучал этот параметр, еще во времена написания статьи о промтах для графических нейросетей, допустил ошибку в понимании его работы. Midjourney использует начальное число для создания поля визуального шума, похожего на телевизионные помехи, в качестве отправной точки для создания исходных сеток изображений. Исходные числа генерируются случайным образом для каждого изображения, но их можно указать с помощью параметра --seed
. Использование одного и того же начального номера и промта приведет к идентичным конечным изображениям. К сожалению, в наши дни параметр теряет свою актуальность из-за его нестабильности в работе, поэтому нет особого смысла его применять.

Параметр --chaos
С помощью этого параметра можно отрегулировать фантазию модели, грубо говоря насколько она будет додумывать детали.

Пример параметра --chaos
с максимальным и минимальным значением. Невооруженным глазом видно, насколько он влияет на получаемый результат. При первой генерации получилось вообще что-то незадуманное и не входящее в рамки ожидания. С другой стороны, кому-то подобная сверхкреативность может быть нужна.
Таблица параметров
На вышеперечисленном остановлюсь, касаемо более подробной росписи, и перейду сразу к табличке. Вообще, в прошлом значимых параметров для рассмотрения было больше, но сейчас их подрезали или совместили с новыми.
Название параметра |
Значения |
Комментарий |
|
Версия 4a/b: Версия 3: |
Позволяет изменить соотношение сторон |
|
От 0 до 100 |
Регулирование разнообразия результатов |
|
Слово/словосочетание/фраза, описывающее нежелаемый объект |
Позволяет заранее убрать какой-либо объект с изображения |
|
.25, .5, 1, 2 и так далее |
Регулирует количество времени затрачиваемое на рендеринг. Значение по умолчанию — 1 |
|
Целые числа от 0 до 4294967295 |
Позволяет регулировать количество шума на генерируемых изображениях |
|
10…100 |
Позволяет завершить генерацию на полпути. Остановка на более раннем проценте приведёт к более размытым и менее подробным результам |
|
4a, 4b или 4c |
Переключение между версиями Midjourney v4 |
или
|
Целое число |
Позволяет регулировать эстетический стиль Midjourney |
Веса
Технически тоже являются параметром, однако, из-за стилистики их использования, принял решение выделить их после, как отдельный самостоятельный инструмент.
С помощью ::
можно распределить условный вес отдельной части запроса, то есть важность того или иного элемента на изображении.
Вес может быть целым числом (пишется сразу после оператора ::), в том числе и отрицательным, но их суммарное значение должно быть положительным. В противном случае, модель выдаст ошибку.

A dark gray wolf with purple eyes::2 forest::1

A dark gray wolf with purple eyes::1 forest::2
На первом примере можно заметить, что главный план занимает сам волк, а лес отходит назад. На втором примере же лес занял главную часть кадра, помещая Тузика больше вглубь.
Общие ошибки при генерации
Перегрузка деталями. Одна из самых распространенных ошибок. Пытаясь втиснуть в промт волка, дракона, подземное царство, грозу с радугой, можно создать конфликт паттернов. Midjourney попытается найти пересечение этих понятий среди обучающих данных, но в итоге не сможет создать то, что вы задумывали.
Размытые формулировки. Использование таких слов, как
красиво
,интересно
, просто не будет отражать конкретных визуальных признаков в обучающих данных.Игнорирование параметров. Хоть я и говорил, что параметры — вещь более важная для углубленного использования, однако все же во многих случаях она может помочь добиться желаемого результата. Например, выбор версии Midjourney, где каждый из вариантов будет интерпретировать промт по своему.
Итог
Midjourney не зря занимает место в списке популярных моделей для генерации изображений. Конечно, модель — всего лишь инструмент, который нужно правильно направлять для получения желаемого вами результата. Надеюсь, в этой статье мне удалось показать вам, как добиться нужного в своих генерациях с помощью Midjourney.
Благодарю всех за внимание!