За время существования Midjourney пользователи сгенерировали петабайты изображений. Сколько из них действительно качественные — открытый вопрос. Машинное обучение интересно свей непредсказуемостью: часто генеративные нейросети коверкают иллюстрации, придумывают новые объекты, рисуют франкенштейнов — в общем, странно самовыражаются.
Часть багов разработчики Midjourney пофиксили, но некоторые существуют и сейчас. Мы потратили целый день, чтобы уговорить нейросеть заменить человека на картинке, но ничего не вышло. Смотрите, что создает Midjourney, когда ошибается, и угадывайте, какие баги мы зашифровали в обложке.
Что такое Midjourney и как она генерирует картинки
Midjourney — это нейросеть, которая создает картинки по запросу пользователя. Ей можно описать замысел словами — такой запрос называется промт, или дать референсы для объединения. Нейросеть обработает и выдаст коллаж из четырех релевантных изображений.
Например, здесь мы написали запрос «собака читает книгу при свечах».
Midjourney существует с 2022 года, сейчас пользователи генерируют картинки уже в пятой версии. Нейросеть обучается на основе огромных массивов изображений с описаниями, которые ей «скармливают» разработчики. Программа сопоставляет текст и изображение и запоминает, как выглядят предметы и явления.
Запросы в нейросеть делают с помощью мессенджера Discord — для этого используют чаты с ботом Midjourney. Обычно промты пишут на английском языке, дополнительно используют аргументы. Например, частицу –no
, после которой пишут, чего не должно быть на картинке. В ответ на запрос Midjourney выдает картинки.
С каждой версией нейросеть генерирует все более качественные иллюстрации. Но иногда можно встретить в программе интересные баги. Мы собрали некоторые из них за все время существования нейросети.
Используйте навигацию, если не хотите читать статью целиком:
→ Рисует больше пальцев
→ Добавляет котиков, когда в запросе их нет
→ Не может угадать возраст
→ Думает, что люди — это селфи в зеркале
→ Фантазирует о региональных промыслах
→ Придумывает собственную валюту
→ Плохо понимает сложные промты
→ Не умеет заменять части изображения
Рисует больше пальцев
Изображая руки, Midjourney часто ошибается в количестве пальцев или рисует положение кисти неестественно. Это самый известный в интернете баг нейросети.
Возможно, здесь нейросеть ориентировалась на жест peace, но нарисовать его правильно не смогла.
На форумах дизайнеров мы нашли гипотезы, почему эта ошибка возникает.
Стандартная: при обучении у нейросети было слишком мало картинок с пальцами и руками, поэтому ей сложно нарисовать их детально.
«Теория заговора»: разработчики специально настроили Midjourney так, чтобы она выдавала ошибки, которые будет легко заметить, — например, с пальцами. Это сделано для того, чтобы люди не боялись искусственного интеллекта и нейросетей, которые все делают идеально и могут заменить «живых» специалистов.
Ноги — тоже не сильная сторона Midjourney. На запросы изобразить сидящего человека программа может выдать странные рисунки.
На иллюстрации одна нога исчезла, зато рука получилась почти человеческая 🙂
Добавляет котиков, когда в запросе их нет
Midjourney любит котиков. На некоторые промты со словом cute (милый) нейросеть выдает изображения с котами, даже если в запросе домашний питомец не упоминался.
Здесь мы попросили нарисовать милого дракона — и получили две картинки с котами.
Есть предположение, что коты в иллюстрациях связаны с процессом обучения нейросети. Возможно, когда Midjourney «скармливали» изображения, многие картинки с четвероногими содержали в описании слово cute — и нейросеть запомнила это сопоставление.
Не может угадать возраст
Нейросеть иногда ошибается с возрастом. Например, на промт «девушка 30 лет» Midjourney может нарисовать молодую, но полностью седую женщину.
У девушки в левом нижнем углу нет морщин — скорее всего, нейросеть не соотносит седину и возраст.
Ошибку можно объяснить особенностями обучения нейросети. Когда Midjourney изучала фото людей, она составила из изображений среднестатистический образ человека с любым оттенком волос. Программа не соотносит седину и возраст, поэтому к блондинкам, рыжим и брюнеткам добавляет седую девушку.
Думает, что люди — это селфи в зеркале
Если попросить нейросеть показать позы для фотографий, результат будет на первый взгляд странным — лицо и спина в одной плоскости.
Здесь мы попросили нейросеть помочь с позами для фотографий.
Это происходит потому, что в интернете много зеркальных селфи: девушки часто фотографируются так, чтобы и лицо, и аппетитные формы попали в кадр. Midjourney обучается на этом материале и выдает по запросу такие «удачные» ракурсы.
Интересна тема статьи?
Присоединяйтесь к нашему Telegram-сообществу «MLечный путь». Там мы вместе обсуждаем проблемы и лучшие практики организации production ML-сервисов, а также делимся собственным опытом. А еще там раз в неделю выходят дайджесты по DataOps и MLOps.
Фантазирует о региональных промыслах
Когда пользователи просят Midjourney нарисовать предметы декоративно-прикладного искусства из разных регионов, нейросеть дает изображения, которые вообще не подходят под запрос. Хотя популярные у туристов предметы искусства, например портрет Моны Лизы, программа генерирует корректно.
Слева — тюменская роспись. Но, по мнению Midjourney, узоры должны быть побогаче 🙂
Это связано с тем, что информации о региональных промыслах мало. А значит, Midjourney сложно научиться генерировать картинки по таким запросам.
Придумывает собственную валюту
Если написать в запросе конкретную валюту, нейросеть нарисует купюры, которых не существует в реальности. Мы просили Midjourney совместить две валюты в одной и тестировали разные варианты (рубль и доллар, евро и доллар, доллар и юань). Чаще всего, если в паре был доллар, именно его Midjourney брала за основу.
Интересно, что означают надписи и цифры по углам, по мнению нейросети.
А эта валюта похожа и на евро, и на рубли.
Этот баг тоже можно объяснить. Суть Midjourney — генерировать изображения, то есть создавать новые образы, а не копировать то, что уже существует.
Поэтому программа не может просто перенести картинку из базы иллюстраций и создает валюту с нуля.
Плохо понимает сложные промты
Нейросеть плохо воспринимает комплексные запросы. Например, мы попросили программу нарисовать удивленного подростка с бабочкой из лего на лице. Midjourney не смогла справиться с этим запросом: в нем много параметров и, скорее всего, мало соответствий в базе иллюстраций, на которой обучалась нейросеть.
Нейросеть решила нарисовать всю картинку в лего-стиле.
В отличие от человека, нейросеть может не понимать сложные запросы, поэтому необходимо четко формулировать промты, а также использовать аргументы.
Не умеет заменять части изображения
Midjourney неправильно считывает просьбу поменять часть иллюстрации. Например, если до этого программа рисовала старика на лошади, то на запрос «замени на девушку» можно получить странный результат.
С запросом «старик на белой лошади» Midjourney справилась не очень хорошо. А с просьбой «замени на девушку» еще хуже.
Чем полнее и детальнее будет промт, тем точнее нейросеть справится с задачей.
Это самые интересные баги, которые мы нашли у нейросети за время ее существования. Разработчики Midjourney постоянно ее улучшают, поэтому, скорее всего, таких же багов вы уже не встретите.
Если замечали другие баги — смело делитесь в комментариях. Скоро опубликуем еще несколько интересных экспериментов, связанных с работой нейросетей. Следите за обновлениями в нашем блоге на Хабре!