Недавно я задался вопросом, а могут ли помочь нейросети в создании мультфильмов? И ответ - безусловно, да! Более того, нейросети явно способны на большее. Сегодня мы сделаем лже-объемную анимацию при помощи Midjourney и других бесплатных нейросетей.
Нам понадобиться:
Если вы не знаете, как пользоваться Midjourney бесплатно, посмотрите это видео. В нём я наглядно показал, как можно обойти ограничение в 25 бесплатных картинок.
Шаг 1. Генерируем фон
Итак, идем в Midjourney и генерируем фон. Сделать это можно по видео, на которое я сослался выше. Можно использовать один из этих запросов:
А. Для создания аллеи идущей вдаль:
/imagine prompt: city alleyway vanishing point in middle, cantral :: low-poly style, hi detailed, cool colors, blender render :: --ar 3:2 --no people --ar 16:9
Б. Для создания комнаты:
/imagine prompt: an empty room :: cartoon Studio Ghibli style, cartoon drawing comic, minimalistic, chieldish, watercolar style, by hayao miyazaki, pastel colors :: --ar 3:2 --no boy --no people
Я прогнал запрос через Midjourney несколько раз. Из того, что получилось, выбрал вот эту комнату:
Далее, я воспользовался кнопочкой "Upscale Redo", чтобы получить наибольшее разрешение картинки в Midjourney. Открыл в браузере и сохранил полученную картинку.
Но и этого показалось недостаточно, так как мне нужно было самое большое разрешение, которого я смогу добиться.
Шаг 2. Увеличиваем разрешение картинки
Я попробовал три бесплатные нейросети по увеличению разрешения:
Лучше и быстрее всего (на мой взгляд) с нарисованной картинкой справилась ImageUpscaler, однако если вы увеличиваете фото, результат может быть иным.
В целом, я не стал страдать перфекционизмом и перешел на следующий этап.
Шаг 3. Создание глубины
Способ «А» — простой
Тут нужно заметить, что есть несколько способов сделать глубину в такой "комнате". Самый простой из них, просто загрузить изображение сюда. Эта нейросеть Leiapix, которая моментально сделает вам забавную лже-3д анимацию из вашей картинки.
И всё, что нужно - это только регистрация. Пробная версия бесплатна:
Уже наша картинка как-будто бы стала объемной. Однако, в этом сервисе мы не сможем управлять камерой так, как захотим. Настройки весьма ограничены. И всё, что мы можем - это скачать "карту глубины" типа такой:
Аналогичную карту можно сделать, например, в нейросети MiDaS. Такие карты делаются, чтобы объяснить 3D программам, где нужно "продавить" плоскую картинку, чтобы она казалась объемной.
Я же избрал другой способ, так мне хотелось ещё больше контролировать происходящее на картинке.
Способ «Б» — упоротый
Я скачал приложение fspy, а также его плагин для Блендера. На сайте есть подробная инструкция по установке, не буду вас грузить. Само приложение после загрузки выглядит так:
В это окошко нужно перетянуть созданную нами ранее картинку и показать программе, где у нас верх, а где низ.
Я показал этой программе, границы пола (при помощи зеленых линий оси Y) и высоту задней стенки (при помощи синих линий оси Z). Можно проверить себя включив слева "сетку" и "расстелив" её на полу комнаты.
Когда я убедился, что всё хорошо, я сохранил файл (File → Save As) с разрешением *.fspy. В Блендере же установил и активировал одноименный плагин с их же сайта.
Шаг 4. Делаем псевдо 3D сцену
Теперь открываем в Blender наш файлик, созданный программой FSpy.
На скриншотах выше я показал, что именно делал. Открыв пустую сцену в Блендере и удалив всё лишнее: базовый куб, камеру и свет, я приступил к созданию объема. Последовательность примерно такая:
- Загрузил файлик с разрешением .fspy и переключился на вид из камеры
- Создал новую плоскость (Shift+A → Mesh → Plane)
- Достроил из этой плоскости "коробку", похожую на мою комнату (Edit mode → E → G+Z и потом соединил потолок и заднюю стену при помощи F). Коробка теперь состоит из 3-х стен, пола и потолка.
- Наложил текстуру на вкладке Shading: создал для "коробки" новый материал, удалил стандартный Principled BDSF и нажал Ctrl+T (чтобы вызвать Node Wragler) и открыл нашу текстуру из Midjourney.
- Добавил два модификатора: Subdivision (Simple, 5, 5) и UVProject (UVMap, Aspect ratio - разрешение нашей картинки, Object - наш файлик *.fspy). А также поменял в настройках текстуры "Repeat" на "Clip".
- Дублировал камеру (Shift+D) и назначил её основной (Правый клик → Set active camera). Предварительно заблокировав старую, чтобы она не двигалась и не вращалась.
- Теперь я могу переключаться между камерой и сценой через NumPad 0. Выглядит круто!
Если перечисленные выше 7 пунктов для вас - лишь набор непонятных слов, приглашаю вас пройти мой курс "Блендер для художников". После этого, вы легко проделаете все эти шаги в этой программе.
А нам осталось лишь довести до идеала нашу 3D-сцену. Вернее лже-три-дэ сцену 😀
Шаг 5. Убираем лишние объекты
Этот шаг совсем не обязателен, но меня раздражали объекты, "размазанные" по стенам комнаты. Например, мне не нравится как выглядит горшок с деревом в левом дальнем углу.
Я просто выделю объект Фотошопом (Selection Tool сделает это быстрее всего) и сохраню, как отдельную PNG-картинку. То же сделаю с телевизором и хламом слева.
В общем, я загрузил эти объекты отдельными плоскостями в Блендер. При помощи аддона "Image as planes". Получилось так:
Осталось убрать "размазанные" копии объектов со стен. Взгляните на телевизор: Когда поворачиваешь камеру, видно, что он просто "нарисован" на стене (картинка выше). Поэтому мы заменим его на плоскую картинку перед камерой, а со стены сотрём.
Для этого я воспользовался нейросетью RunWay, а конкретно её функцией "Erase and Replace", которая позволяет вырезать объекты с любого фото или рисунка.
Я взял нашу исходную картинку и, один за одним, стёр объекты ластиком. В описании можно попросить нейросеть заменить объект на другой, но я лишь убрал не нужное. Например, я написал "пустой угол комнаты" вместо деревца.
В ответ нейронка предложила мне 4 варианта, как может выглядеть пустой угол комнаты. Я выбрал 4-й и нажал "применить".
Тоже самое проделал с остальными ненужными объектами. Сервис дает 25 бесплатных генераций, чего хватило мне с головой. Затем я скачал полученную картинку и обновил текстуру в Blender'е.
Предметы идеально встали на свои места, но на этот раз уже плоскостями и чуть ближе к камере. Теперь если смотреть "из камеры", они уже не кажутся "нарисованными на стенах". И это создает прикольный эффект, когда камера движется.
Собственно, любой нормальный человек на этом бы и остановился. Но где вы видите тут нормальных? Продолжаем!
Шаг 6. Анимация и финальный штрих
Последнее, что мне захотелось сделать - это добавить какой-то объект в нашу сцену. Ведь кроме фона, должно быть ещё и действующее лицо.
В данном случае, я разместил в середине комнаты пианино и небольшую улитку на его клавишах. Пусть она хоть что-то делает.
Можно ещё навалить эффекты на вкладке Compositing и размыть фон (сфокусировать камеру, например, на улитке). Но это уже вкусовщина. В целом, результат и так прекрасен.
Шаг 7. Кайфуем
Наша 3D сценка готова! Все объекты на ней созданы нейросетью в 2D. Хотя создается полная иллюзия объема.
На создание такой сцены у меня ушло пара часов. Рисуя фон в настоящем 3D (с текстурами, объектами и освещением) - ушла бы пара дней, если не неделя. Посему, правомерным считаю просить поставить лайк за экономию вашего времени.
Вот и прошу 🙃
А ещё от души приглашаю изучить:
- Курс Blender для художников — чтобы рисовать и анимировать в 3D.
- Курс мультфильм за 7 дней — чтобы создавать мультфильмы.
- Книгу Как соблазнять картинками — чтобы быть в курсе современных инструментов в иллюстрации и заработка на ней.
Приходите, подписывайтесь и всё такое.
Прекрасных вам анимаций!
Ваш, Кир Ященко.
PS. - Ну и конечно, жду умных вопросов в комментариях.