Чтобы начать генерировать изображения из текста c нейросетью Midjourney, вам нужен аккаунт на Discord. Создатели выбрали его в качестве фронтэнд решения (а не стали пилить апп). Впрочем сайт с пользовательскими аккаунтами и фидом у них тоже есть. Про Discord мы уже рассказывали, он классный: что-то среднее между мессенджером и площадкой для аппов (дискорд-ботов). Здесь все заточено не для продвижения отдельных каналов, а во имя взаимодействия и сотрудничества пользователей. Конечно, главные площадки для экспериментов с нейросетями и в т.ч text-to-image, это ноутбуки в Google Collab и репозитории Github. Но давайте оставим это на продвинутый уровень и курс, а пока сосредоточимся на Midjourney и ее возможностях.
Пользователю предлагается путешествовать между ботом на Discord, в котором вы будете создавать изображения, и многопользовательским web-интерфейсом, в котором хранится его архив, а так же доступен поиск по архивам и профилям других юзеров.
1. Логин с регистрационными данными Discord в web-интерфейс — midjourney.com
2. Вход в канал Discord — discord.gg/midjourney
Web-версия midjourney ( июль 2022). В ней пока нельзя общаться с нейросетью, но можно смотреть на свои и чужие работы и делать поиск по картинкам и промптам:
Наш мем "Кнопка шедевр” больше не мем. Она существует! Только не кнопка, а скорее волшебные слова: prompt, которыми автор описывает для AI идею изображения.
Структуру prompt мы опишем так:
Или еще короче:
Новички, для которых в канале mj на Discord есть отдельные комнаты (rooms), начинают просто с описания объекта, и тоже норм получается.
*У других участников процесса, включая собственно искусственный интеллект, может быть совсем иное мнение о структуре промпта.
Итак, вы в канале midjourney и вы знаете как описать объект, его положение и окружение: “На диване лежит Маша, одетая, как обычно, в черное” (Здесь и далее “Три сестры”, А.П. Чехов)
On the sofa Masha is lying, dressed as usual in black
Маша одета по всем правилам сообщества, это хорошо. И вы сообщили цвет — это тоже хорошо. А вот “как обычно/as usual” и всякие темпоральности — это странный запрос для AI, генерирующего статичное изображение. Мы попробуем и с ним и без него, для этого обратимся к боту дважды:
/Imagine prompt: On the sofa Masha is lying dressed as usual in black
нажимаем ввод, изображение улетает боту. И во второй раз:
/Imagine prompt: On the sofa Masha is lying, dressed in black
Желтой стрелочкой на картинке выше показано, где у вас в Discord вся личная переписка с ботом. Берите обязательно! Пригодится, чтоб не крутить ленту бесконечно, ведь в канале вы создаете изображения параллельно с другими пользователями и их результаты вам тоже видны. Засекретить свои результаты можно, но это стоит отдельных денег. Здорово то, что вы можете видеть, как работают другие, как устроены их промпты, и даже лучше — можете брать сделанные ими изображения и докручивать их самостоятельно;
Перед вами 4 варианта будущего изображения c набором команд. Можно масштабировать( U — upscale) избранные, или запросить новых версий (V — versions). Мы попросили увеличить первое и сделать варианты 4-го (U1 и V4).
Формат изображений по умолчанию 1:1, если нужно поменять aspect ratio, то в самом конце промпта нужно добавить _две коротких черточки без пробела_ и отношение сторон "--ar 3:4"
Горизонтальный/вертикальный снимок: --ar 16:9, --ar 9:16
- - -
Так можно развлекаться довольно долго (проверено), но можно развивать свой словарь для общения с mj дальше. Вы еще с нами? Маша ждет.
Если взять ссылку на изображение, .jpg или .png, и сделать ее частью текстового prompt, то можно получить любопытные результаты. Текстовый промпт не будет вести себя как фильтр по отношению к загружаемой картинке. Скорее он рассматривает такую картинку как источник стиля, а не наоборот.
Для теста Image Prompt мы добавили к Маше вот эту розовую картинку, ее нейросеть создала нам днем ранее.
--iw (image weight) это насколько подгруженный .png или .jpg референс повлияет на результат. По умолчанию оно 0.25, мы берем больше.
И вот что получилось:
Нейросеть обучена понимать не только язык команд, но и обычный текст. Это называется NLP - Natural Language Processing. В нашем случае получилось, что диван, стоящий в промпте на первом месте буквально заслонил собой Машу. Поэтому мы поменяли их местами и уточнили prompt:
Дальше начинаются метания: Может быть что диван Маши находится в лесу? Запросто. А можем мы представить, что он залит утренним светом? Конечно. И еще можем сообщить ему стиль, имя художника, эпоху. И это орая часть prompt-задания, которую пока умеет писать относительно небольшая группа людей, и вы сейчас войдете в число этих немногих.
Как поскорее заговорить на языке ai, чтобы уболтать его делать то, что вам хочется? Очевидно, есть пути длинною в жизнь- разобраться в параметрах и операторах (об этом будет ниже, и да, длинно), пробовать, ошибаться, и подсматривать за тем, как формулируют свои промпты пользователи, работы которых вам нравятся (Это можно делать через фид). Но есть еще один способ, который может вам пригодиться - начать с использования бесплатных сторонних ассистентов/переводчиков, чтобы побыстрее набрать словарный запас и привыкнуть к синтаксису.
Пока работают два варианта -
1. Помощник на минималках Prompt helper - midjourney-prompt-helper.netlify.app. Сделан под первый релиз mj, не учитывает огромного количество возможностей, но зато меньше шансов в них запутаться.
2. Навороченная Promptomania - promptomania.com/prompt-builder Огромный выбор настроек, есть визуализации свойств и слов. (Но у нас почему-то с ним такая ерунда получается, что простенький Helper хочется рекомендовать даже больше, чем этот маниакальный комбайн.
Постарайтесь не выбирать слишком много параметров, и оставлять себе и Маше пространство для итераций. Мы вот набрали, да еще от жадности добавили второе событие (пожар) и Маша с диваном исчезли. Хотя красиво конечно:
Кто придумал дурацкие названия вроде “octane render” или “v-ray” сказать невозможно — просто разный софт создавался, развивался, а потом по изображениям, созданным с его помощью, и их мета-данным учили нейросети. В итоге вышло так, что AI понимает многие слова, которых живой человек не знает или не помнит. Например, параметры хранящиеся в exif. Посмотрите на этот величайший из читсетов, — он показывает как реагируют на разные волшебные слова нейросетевые модели CLIP и VQGAN.
Если пользоваться этими словами, можно получить что-нибудь удивительное. Здесь мы попросили mj включить параметры рендера из 3d редактора Maya:
Следующий эксперимент, — рендер 3d редактора Z-brush, но добавив к этому Прерафаэлитов, чтобы изображение наверняка получилось цветным:
Сохранять картинки из профиля одним кликом поможет сценарий к браузерному расширению Tampermonkey. Соответственно работает он не в дискорде, а в браузерной части - midjourney.com/app
Библия успешных переговоров с mj доступна на github. Списки раскрываются, и к каждому слову есть сфера-пример, что частично позволяет предсказать (правда совсем немного), как это сработает на вашей картинке:
Если вы фотографируете, то попробуйте говорить с mj на языке фотографии. Марки фотоаппаратов и параметры пленки, настройки камеры и объектива, - mj во всем разбирается, хоть и своеобразно;
Позиции камеры mj понимает лучше, чем фокусное расстояние. Используйте extreme close up / close up / medium shot / long shot / extreme long shot / bird view || Фокусное расстояние: focal length --14mm (wide angle), --500 mm (narrow angle), лучшие кадры, все же -- 35mm || Zoom out: --q 0.25 Zoom in: --q 1.25 . Если не нужно зерно, не нужно идти выше, чем --ISO200 . А здесь - исследование влияния скорости затвора.
Коллекция тестов фотографических параметров на GitHub - github.com/Midjourney-Photography и ее Tips and tricks (eng)
На языке mj вам нужно запомнить всего два знака, это двойное двоеточие
::
и двойное короткое тире без пробела
--
У частей промпта есть веса, — сила с которой слово или несколько слов будут влиять на результат. Записывать их можно поставив :: в конце логической части и сразу за ним, без пробела, числовое значение веса. Если число не добавлять, то :: будет прочитан как смысловой разделитель, и вес распределится поровну, как на первой картинке.
После него встречаются разные числовые параметры:
--ar 9:16 — уже знакомый вам aspect ratio;
--h и --w (высота и ширина, можно использовать один параметр)
--iw5 (image weight) вес фотографии референса, который по умолчанию 0.25. К фотографии нельзя добавить обычный значок веса :: - тк тогда сломается ссылка на фотографию;
--120mm (фокусное расстояние)
--s - стилизация и -q -качество. По умолчанию --s2000, предельные значения до 60000 , а качество --q1 и до пяти. Наглядно тут и тут (фотоаппарат Kodak)
Но иногда его используют и вместо разделителя с весом*, например в --no (например --no people = people::-0.5 ) поди пойми --no dof — запретить глубину (depth of field); -- no blur попросить не блюрить;
Классное исследование начатое художником и инженером Рексом Вонгом (Rex Wang), вклад в которое внесли уже многие энтузиасты. На очень простом примере — деревянном чайнике — Рекс и компания испытывают разные свойства промптов. Если нет времени всему научиться на собственных ошибках, вам точно сюда: https://rexwang8.github.io/resource/ai/teapot
(В частности, здесь наглядно про weights, aspect ratio and seed )
На чайнике действительно гораздо понятнее, чем на нативных примерах со сферами:
Заметно, что если вы задали цвет объекта, то высока вероятность, что все окружение будет тоже подкрашено этим цветом.
Но все изменится, если вместо этого взять флуоресцентные параметры фотосъемки:
Да, считается, что тогда AI склоняется к фотореализму. Как по нам, так скорее к ранним фильтрам в Instagram и Hipstamatic:
Возвращаемся к структуре промпта.
Итак, параметры можно определять самыми разными художественными стилями и техниками, параметрами освещения, моделями камеры, названиями софта для рендера и графических редакторов и даже названия популярных ресурсов и библиотек (behance, art station, etc). И даже можно задавать им числовые значения с помощью операторов -- и ::. В заключительной части еще несколько слов о том, как можно сотрудничать с Midjourney (Частично переведены с сайта разработчика и еще не проверены в бою).
- Exel-Список художников, которых знает нейросеть, с референсами по стилю.
- Wiki-Названия художественных жанров и стилей.
Не только художники
Верхний ряд 1.-3.</imagine prompt: pink horse in stranger things, dark sky, lightning, octane render, 8k, extreme detail> 4. </imagine prompt: upside down trailer from stranger things, slimy vines, dark sky, lightning, octane render, 8k, extreme detail>
Нижний ряд 1.-4</imagine prompt: pink horse in stranger things>
Вдогонку: