Я люблю работать с какими то графическими изображениями, как то их обрабатывая. Вообще люблю всё, что связано с изобразительным искусством, правда рисовать толком не умею =). Поэтому конечно и до нейронных сетей (нейросетей) мне пришлось тоже добраться из чистого любопытства. Сегодня поговорим на примере рисования, что они могут, что не могут, что понимают и т.п. Будет такая лёгкая небольшая статейка, чтобы всем было понятно, кто с этим не сталкивался или сталкивался.
Но для начала думаю стоит начать с некоторых определений, чтобы понять, что такое ИИ и нейросеть в целом.
Нейронные сети — вычислительные системы или машины, созданные для моделирования аналитических действий, совершаемых человеческим мозгом. Нейронные сети относятся к направлению искусственного интеллекта (ИИ) и применяются для распознавания скрытых закономерностей в необработанных данных, группировки и классификации, а также решения задач в области ИИ, машинного и глубокого обучения.
Примечание: Работа нейронной сети сравнима с действиями человека: сталкиваясь с незнакомым предметом, он узнает его свойства и делает выводы. Аналогичные процессы происходят в узлах нейросетей, когда решая определенную задачу, они используют полученный опыт для дальнейшего обучения.
Фактически это ИИ (Искуственный Интеллект), который скажем так не способен пока думать на уровне человека, но сегодняшний он (или они) вполне может анализировать данные, чтобы приходить в каких то элементах к хорошему результату через обучение, на основе полученных данных.
Например мы вводим какой то набор слов, нам ИИ рисует изображение. И далее мы помогаем ИИ понять, что он сделал хорошо, а что сделал плохо. Например нам понравилось и мы сохранили изображение и ИИ понял, что это было хорошо, и запомнил это. Если есть возможность редактирования какого то изображения через ИИ, то схема такая же, где ИИ запомнит, что нам понравилось, что мы редактируем, что мы сохранили или удалили, и как ему (ИИ) надо будет это что то правильно отобразить в будущем далее. Но всё равно пока у ИИ есть много непонимания того, как рисовать или состыковывать те или иные элементы. А так же человеку (т.е. нам) надо примерно понимать и учиться на пробах и ошибках ИИ, как правильно (более логично) писать запросы для него, потому что реально это интересный процесс как для нас, так и для ИИ. На примерах ниже мы с вами это всё разберём далее.
Midjourney
Midjourney - на сегодняшний день является одной из самых популярных нейросетей. Работает она через программу Discord, куда собственно зашили этот ИИ и он выполняет команды, которые ему пишет пользователь (человек), т.е. рисует изображения по словам. Кое что я сделал и сохранил. Например по запросу "красивые женщины пожарные" или "красивые женщины полицейские", выдаёт примерно следующее.
Это именно то, что нарисовал сам ИИ. Надо сказать, что изображение довольно качественное, но мы уже тут видим, что всякие нашивки с надписями размыты, т.е. ИИ не понимает пока, что на них надо написать или какой правильный значок полиции отобразить. Хотя на удивление Midjourney неплохо справляется с нарисованными глазами, где у других ИИ пока что большие проблемы.
К сожалению у Midjourney ограниченный лимит попыток бесплатно (где то 25 штук), но есть всякие обходные пути. Я с ними заморачиваться не стал, а пошёл искать что то другое. Пока что с бесплатными версиями данных программ как то очень плоховато дело обстоит. Я перепробовал много разных представленных вариантов, но тем не менее нашёл кое какой неплохой бесплатный ИИ для создания изображений, с рядом ограничений по свойствам. Разберём его далее.
DREAM (dream by wombo)
Неплохой графический ИИ, с НЕограниченным количеством попыток и быстрой обработкой запросов. По количеству слов есть ограничение в 200 символов максимум и за один запрос делается только один вариант картинки, но как я уже сказал, попытки у нас бесконечные. Плюс ко всему есть редактирование созданных изображений, но тут тоже даётся всего лишь две попытки на одну созданную картинку. В любом случае это довольно неплохой вариант для проб и получаются в DREAM действительно интересные вещи, даже с небольшим набором в 200 символов. Плюс ко всему если вы зарегистрируетесь, то ещё сможете сохранять изображения в отдельную галерею на сайте. Сохранил пока аж 500 картинок своих, вроде тут тоже ограничений нет.
Давайте перейдём к интерфейсу и я вам сразу объясню, что тут и чего. Выглядит оформление сайта ИИ очень аккуратненько (изображение ниже).
В графе Enter promt мы должны вводить запросы, т.е. что мы хотим получить в итоге на картинке. Art Style это графические фильтры грубо говоря, но самый так скажем адекватный фильтр, с которым более правильно и интересно работает данный ИИ, это Buliojourney v2.
Далее кнопка Create снизу, это генерация изображения во заданным нами словам. Сверху справа вы наверняка заметили разноцветные шарики, это уже готовое изображение. Картинку любую можно увеличить для просмотра или загрузить себе. Разрешение картинки 1920 на 1080, что вполне неплохо. И кнопка Finalize позволит добавить изображение в свою галерею на сайте, с названием и тегами.
Ну и давайте разбираться в работе. Все слова нужно вводить на английском, потому что других языков пока ИИ не понимает. Опять же по изображению выше вы видите, что в графе я ввёл просто запрос "ball on table - шар на столе" и мне ИИ выдал такую вот картинку, которую он нарисовал сам.
Такой вот любопытный ИИ =). Хотя вы сами можем задать такие команды, как "розовый шар на жёлтом столе". Ну давайте просто ради интереса так и напишем "pink ball on a yellow table".
Т.е. ИИ уже довольно хорошо понимает простые команды и дорисовывает что то своё. Например можно добавить запрос на "круглый" или "квадратный" стол туда же, чтобы ИИ поменьше импровизировал =). Я напомню, что перевод слов можно получить в том же google translate, если вы не знаете английского языка или не помните, как пишется то или иное слово.
Переходим к более сложным вариантам. А теперь давайте введём например имя какой нибудь актрисы. Причём я понял, что надо добавлять к имени и значение данного человека, чтобы ИИ было более понятно, что мне надо конкретно. Ну например попробуем ввести "Кортни Кокс актриса". Это если помните, был шикарный сериал "Друзья" из 90х, да и актриса там неплохая. Короче вводим такой запрос "Courteney Cox actress" и создаём через ИИ картинку. Я так же обозначил, что это актриса, чтобы ИИ искал по актрисам, а не по людям со схожими именами. Хотя ИИ не всегда правильно реагирует даже на это, если к примеру актриса не совсем популярная.
Вылезает сразу ворох проблем на картинке, но тем интереснее экспериментировать с ИИ. Получилось относительно хорошо. Как я уже говорил, вылезла частая проблема с глазами. Т.е. у нас не совсем верные пропорции глаз и они вообще разного цвета, но для ИИ это уже достижение, что он смог даже так. Самое ужасное, что тут сделал ИИ, это пририсовал руку к голове, но если вы умеете редактировать в каких то фоторедакторах сами, но тут просто всё закрыть теми же волосами. Такие ошибки частично вылезают, что говорит скорее о том, что ИИ не может иногда до конца понимать, что такое человек, строение человека и где тут ошибки, хотя он и очень старается, похвалим его за это =). Идём дальше.
Человек и ИИ работаю вместе =).
Тем не менее нам нужен хороший результат. Так что давайте сгенерируем что нибудь с той же актрисой, но с другими дополнениями и повыбираем картинку из рандомных вариантов, пока у ИИ не получится сделать что то интересное. Например сразу введём большое количество слов, но тут стоит учитывать, что ИИ использует не всё и скорее всего у него идут какие то приоритеты на первые слова, по моим личным наблюдениям, а некоторые слова он может откинуть, как ненужные. Т.е. он пытается сделать что то более адекватное на запросы человека, но генерирует только более подходящее по его мнению, хотя и старается использовать всё зачастую. И давайте в качестве бонуса я отредактирую сам новое другое получившееся изображение в Фотошопе уже вручную и мы посмотрим на совместный результат работы человека и ИИ =).
Эксперимент.
- Допустим введём такие слова, как:
woman, Courteney Cox actress, black shoes stiletto, skirt, art, legs, smiling, room, sitting, holding a rose, sun, wimdow, town, day,
- На русском будет звучать так:
женщина, актриса Кортни Кокс, черные туфли на шпильке, юбка, арт, ноги, улыбается, комната, сидит, держит розу, солнце, окно, городок, день
Получается следующее изображение
Не обращайте внимания на огрехи, сейчас всё разберём, но сначала разберёмся со словами.
- Теперь по словам, для чего я вводил определённые слова.
женщина, актриса Кортни Кокс - чтобы ИИ больше понял, что это женщина, а не просто актриса. Хотя он в целом понимает и так, что это женщина. Идея такая, чтобы ИИ придал больше женских черт, возможно это тоже работает и так. Но тут Кортни получилась менее похожей на себя, хотя в чертах лица наблюдаются некоторые схожести.
черные туфли на шпильке, юбка - одеть можете человека на будущем рисунке ИИ в любую одежду и ИИ это поймёт более менее.
арт - чтобы изображение приобрело менее реалистичную структуру (чтобы было меньше огрехов мелких и отрисовка тут будет более проще смотреться) и ИИ это поймёт всё.
держит розу, солнце, городок, день - это я набрал для какого то фона и действия. Хотя например ИИ не отобразил "солнце", но понял, что есть "день на улице". Далее с розами ИИ тоже не совсем понял запрос "держит розу" и разместил их вообще везде, но и в руку женщине не забыл тоже её дать. Хотя ИИ может и вообще розу в руки не дать, но отобразит розу где то в другом месте.
комната, окно - ИИ понял, что должна быть комната, где на фоне есть окно. Это тоже важно, потому что ИИ мог отобразить окно вне помещения отдельно. Ну тут всё логично, но за такие связи забывать не надо.
сидит, улыбается - ну понятно, тут мы выбрали действие и будет отображена сидящая женщина, которая улыбается. С этим ИИ справился.
А теперь переходим к огрехам. Это два одинаковых изображения с огрехами ниже. Я тут пометил основные огрехи, которые сделал ИИ.
Тут у нас лишнее колено, неправильно отображены глаза, лишняя часть ноги, огрехи с носом, огрехи небольшие с волосами и серьгами. Красным цветом я выделил, что буду править, а фиолетовым цветом отметил, что можно ещё отредактировать, но я не буду это трогать. Тут вы видите фиолетовую стрелочку, ИИ ошибся с длинной одной ноги и в итоге это серьёзный недочёт, но если особо не придираться, то в целом и так нормально смотрится. Кстати ещё подобные ИИ плохо работают с пальцами рук. Т.е. вообще очень частых проблем у ИИ две: это пальцы и глаза почти во всех вариантах картинок, особенно если расположение пальцев и глаз далеко. Т.е. пока ИИ тяжело работать с мелкими предметами вдалеке.
Ну а теперь посмотрим, как я отредактировал картинку. Причём тут два изображения будет. Одно - стандартное и другое - лицо покрупнее, с добавленными вариантами редакции.
Ну это грубая такая редакция, просто чтобы показать, что в целом ИИ отлично рисует основу, но при желании, если вам что то уж сильно понравилось, то можно отредактировать. Хотя в целом ИИ выдаёт существенное количество нормальных картинок, с незначительными огрехами, которые тоже можно использовать или не стыдно показать =).
Ну старается, старается, похвалим тоже =). По крайней мере ИИ уже чётко научился понимать, что такое человек и как его отображать. Это прикольно.
Проблемы ИИ. Плюсы и минусы.
Пока что у любых подобных ИИ есть ряд проблем. Как я уже выше говорил, это проблемы с мелкими вещами, когда у ИИ не получается отобразить что то вдалеке. Например то же лицо или пальцы, мелкие украшения на расстоянии и т.п. А ещё я заметил, что например ИИ пока не особо разбирается в тонкостях каких то механических устройств или отображением чего то подобного в целом. Например если попросить его сделать автомат АК47, то он вообще не знает, что это такое и изображает ужасную вещь.
Попросим ИИ изобразить "снайперсую винтовку Драгунова" (Dragunov sniper rifle)
Это очень забавно, что ИИ не может этого сделать вообще даже близко. Но тот же якобы лучший Midjourney тоже не знает, как это сделать, но хотя бы старается, в отличии от того же DREAM. Т.е. у нас тут два разных ИИ, которые обучаются по разному.
Я экспериментировал с разными вещами. Например неплохо получаются музыкальные инструменты. По крайней мере та же гитара похожа на гитару. А вот давайте ради интереса поэкспериментируем с мотоциклом, со спортивным мотоциклом даже. Вещь большая, должна отобразиться легко и я попробую выложить далее хорошее изображение мотоцикла (sport motorbike). Интересно получилось =).
Он мне выдал их сразу два: классический какой то и спортивный. Нет ну выглядит прикольно. Конечно тут видны огрехи, строение каких то деталей нарушено, кривые колёса местами, лампочка в воздухе и т.п., но в целом достаточно годно. И заметьте, что я просил ИИ только про мотоцикл и в итоге он сделал мне мотоцикл, который висит в воздухе, потому что я ему не давал цели делать мотоцикл на земле. Но ИИ мне в двух вариантах сделал по своему и я результатом тоже доволен =). Причём это только по первому запросу он мне выдал неплохой результат.
Давайте что нибудь интересное попросим сделать ещё. Например консоль с геймпадами и телевизором. Sony playstation 1 console with gamepads, tv. Результат достаточно футуристичен =).
А согласитесь, что дизайн прикольный =). Знаете, что мне всё таки нравится в ИИ сегодняшнем? Он реально может комбинировать какие то отдельные вещи (используя свои знания) в какие то интересные конструкции, когда не понимает, что такое оригинальные вещи, но при этом он понимает, что примерно от него хотят. Мне кажется что такая штука была бы полезна в каком то дизайнерстве.
А давайте ка русалку запросим изобразить. Но тут тоже наверно чуть конкретизируем. Например "рускалка Ариель, краб Себастьян, рыбка Флаундер" (Ariel the mermaid, Sebastian the crab, Flounder the fish). Сейчас будет весело =).
Вы посмотрите на эту прекрасную русалочку =). Рыбки лучше бы тут и не было, а вот ИИ превратил краба в какое то растение скорее. Это реально очень весело. А давайте ещё на ту же тему запросим картинку у ИИ. Выложу тут интересный вариант. Это такая интересная развлекалочка =)
Про краба даже не спрашивайте, не знает ИИ толком, что такое крабы видать)). Флаундера нормального он мне так и не отобразил, а вот с русалочкой старается =). Но конечно такие вещи надо более конкретизировать по запросу. Чем больше напишете конкретизирующих слов для ситуации для изображения, тем лучше. Но по крайней мере на данном примере ИИ понимает, что русалочка должна плавать в воде, плюс он дорисовал какие то растения. По цветовой гамме в целом тоже всё неплохо. Но ИИ опять же берёт информацию скорее со старого мультфильма или по каким то рисункам, комиксам, и отображает картинку по запросу в том же стиле.
А что мне ИИ нарисует просто по слову Киберпанк (Cyberpunk), интересно? Ну давайте ему чуть поинтересней задачу поставим, например "женщина, киберпанк, арт, город" (woman, Cyberpunk, art, city). Ну что, в целом довольно неплохие картинки, выложу тут парочку.
ИИ уже такие вещи понимает. Да, тут так же есть совсем мелкие огрехи, но всё равно выглядит интересно. И опять же запомните, чем больше вы дадите для ИИ информации, тем больше добьётесь нужного вам результата.
Итоги наших экспериментов с ИИ
Мне пока нравится идея с ИИ и изображениями. ИИ понимает большинство запросов и рисует достаточно неплохие вещи. Да и вообще это очень весёлое занятие, придумывать задания для ИИ, получая примерно изображения, которые ты хочешь. Вот оно будущее, которое выглядит довольно интересно. И тут можно говорить не только про изображения, но и про много других вещей, которые смогут создавать всякие ИИ в будущем.
Ничего страшного, если у ИИ что то не получается иногда, но он учится, дадим ему шанс. Люди улучшат ещё алгоритмы ИИ со временем, улучшат его оболочку, улучшат обучение и скоро люди разучатся рисовать сами))). Шутка. Пугает только Скайнет. Втора шутка =). Но это действительно круто лично для меня, когда я с одной стороны часто ищу картинки в интернете для чего либо, а тут прям новый какой то экспириенс с ИИ, я тоже получаю что то интересное, но чего уже нет в интернете и других копий не будет. Это на самом деле очень здорово.
Ну и в заключении давайте посмотрим, что мне нарисует ИИ на запрос "Игроманы 90х (Edvard Force)" (Gamers of the 90s, Edvard Force). Я не знаю что это, но выглядит круто =).
Кому интересно попробовать тоже, оставлю ссылку в комментах.
А на этом весёлом моменте всем удачи и доброго =).