Ехали медведи На велосипеде.
А за ними кот Задом наперёд.
А за ним комарики На воздушном шарике.
...
Едут и смеются, Пряники жуют.
Создано при помощи нейросетей Midjourney и Stable Diffusion. Эта работая является продолжением или переосмыслением моей предыдущей, но в этот раз получилась более сложной в исполнении.
Процесс:
Когда я делал иллюстрации для прошлого поста с помощью нейросети Midjorney, мне в одной из попыток был выдан результат который мне понравился по форме, но не подходил по реалистичности.
Запрос по которому я получил это изображение, следующий:
3 bears ride a bike, laugh, eat cookies, bokeh hot sparks, 300mm lens, cinematiС
Далее я решил попробовать его покрутить в midjourney, но варианты все равно были далеко от желаемого изображения.
Выбрав один из вариантов я решил доработать его с помощью другой нейросети Stable Diffusion, за основу взял следующий вариант.
Остальную работу я делал на локальной версии нейросети с помощью визуального интерфейса Stable Diffusion UI на Windows системе. Кроме нейросети я минимально использовал Photoshop.
Так как моя система на видеокарте GTX 1060ti c 4ГБ памяти тянет изображения максимум 1024х 704px или 768х768px, но на этот размер уходит около 6 минут работы. большую часть элементов я делал в размере 512х512px (около 2х минут) или 256х256 (меньше минуты на вариант).
Вначале в Photoshop я вырезал нужный мне фрагмент размером 512х512рх
Затем в Stable Diffusion UI указал на выбранном фрагменте область на которую нужно наложить обработку нейросети.
В настройках Image Size: указываю размер равный размеру моего фрагмента
Number of inference steps: Выставляю на 10, чтобы быстрее получить несколько вариантов Guidance Scale - уровень соответствия запросу.
Prompt Strength - Уровень соответствия исходному изображению.
Эти параметры нужно подбирать для каждого изображения произвольно чтобы получить разные вариации. Варианты которые получились в этих настройках.
Далее, ели меня устраивает какой-то из предложенных вариантов, то повторяю его указав в настройках зерно, и увеличив количество шагов.
Затем, когда получилось более менее приемлемое изображение, его можно использовать за основу, для повторной обработки нейросетью, чтобы сохранить некоторые элементы, например открытый рот медведя, далее повторяя до тех пор, пока не получите желаемый результат. Желательно вносить изменения в текстовый запрос, добавляя нужные детали, цвет, форма, элемент или художественный стиль.
Когда изображение будет готово, просто вставляем его на то место из которого оно было вырезано в Photoshop. Я обвел его белой полоской для наглядности, швов после вставки быть не должно так как края изображения остаются неизменными, потому что нейросеть изменяет только выбранную область.
П такому же принципу обрабатываем все желаемые объекты в сцене. Лучше всего чтобы изменяемый объект вмещался полностью в область обработки нейросетью, тогда мы получаем меньше ошибок, если объект большой, то нужно вырезать его по размеру, доступному в настройках нейросети, например. 320х640px. список поддерживаемых размеров можно увидеть на скриншоте ниже.
Звездочками отмечены варианты которые нейросеть обрабатывает лучше других. То есть результат 256х512 будет лучше чем 320х448.
На этом основной процесс закончен, далее долгий и нудный процесс поиска подходящих текстовых запросов и подходящих к ним Prompt Strength и Guidance Scale.
Выкладываю свои этапы работы над изображением.
Сначала я сделал всех медведей по очереди, затем велосипед и воздушные шарики.
Велосипед как оказалось наиболее сложный элемент для нейросети, на него ушло больше всего времени, вариантов заднего колеса было больше 200.
Затем я снова переделал тех медведей которые были похожи на плюшевые игрушки.
Поле, начал добавлять пряники. Для этого выделял область где планировал добавить пряник и указывал Guidance Scale больше 0.8 чтобы пустое место не сильно влияло на полученное изображение.
В одном из вариантов нейросеть вместе с пряником предложила бутылку молока.
Мне это вариант понравился и я добавил по бутылке молока на каждого медведя. Затем таким же образом добавил кота, ему 2 бутылки молока и комариков.
На последнем этапе снова переделал велосипед и мордочку кота. Из-за того что кот добавлялся отдельно и не был на исходном изображении изначально, освещение у него отличается от освещения на медведях и как я не пытался исправить нейросеть все равно выдавала мне котов с другим освещением, возможно нужно было использовать больший кусочек изображения, но из-за ограничения в вычислительных мощностях, больший размер я не мог запустить, пришлось оставлять кота который получился.
Полностью на всю работу включающую в себя варианты из Midjourney, вырезание и вклеивание квадратиков в photoshop, рендер вариантов в Stable Diffusion у меня ушло более 50 часов работы. И более 2 000 вариантов элементов предложено нейросетью. так как это была работа для обучения взаимодействия с нейросетью, считаю такое количество потраченного времени оправданным. Но понимаю, что опытный иллюстратор выполнил бы подобную работу гораздо быстрее и более качественно.
Бонус.
По такому же принципу сделал еще одну иллюстрацию.
А слониха, вся дрожа, Так и села на ежа.
Спасибо всем, кто дочитал до конца.