Гайд: как я создаю трехмерные иконки для сайтов на прозрачном фоне с помощью нейронной сети

Гайд: как я создаю трехмерные иконки для сайтов на прозрачном фоне с помощью нейронной сети

Очень редко хороший дизайн обходится без иллюстраций: иконки или изображения объектов помогают передать уникальный стиль и настроение бренда, выстроить правильные ассоциации для клиентов и передать контекст. В этой статье-руководстве я хочу поделиться подходом, который я использую для создания красивых трехмерных иллюстраций любых объектов на прозрачном фоне с тенью.

Это одна из статей-руководств, в которых я рассказываю более детально о процессе своей работы. Больше кейсов и заметок о разработке и программировании читайте в моем Telegram-блоге «Код без тайн».

Алексей Иванов
Фулстек веб-разработчик

Последнее время компании часто в своих дизайнах используют трехмерные иллюстрации различных объектов: календарь для расписания, звездочку для акции и т.п.

Недавно, одно агентство маркетинга обратилось ко мне с небольшим заказом по верстке на Tilda для своего клиента. Однако, помимо самой верстки необходимо было обновить иллюстрацию для одного из блоков.

Обычно, такие иллюстрации создаются 3D-художником — человеком, который может не только правильно воссоздать форму объекта, но и выстроить композицию, настроить материалы и свет.

Например, для того, чтобы передать эффект металлической поверхности нужны одни настройки материалов, в то время как пластика или гипса — другие.

В результате, чтобы создать даже простую иллюстрацию календарика требуется довольно внушительный опыт и усилия.

Генерация иллюстраций с помощью нейронной сети

С появлением нейронных сетей Stable Diffusion, Midjourney и DALL•E создавать уникальные изображения в высоком качестве стало проще. Можно просто «попросить» нарисовать картинку того или иного объекта, указать какого цвета, формы и т.д. должны быть детали.

Пример фотореалистичного изображения, созданного с помощью Midjourney (Источник: <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fpetapixel.com%2F2023%2F03%2F17%2Fmidjourney-v5-creates-photorealistic-images-and-even-does-hands-correctly%2F&postId=1722997" rel="nofollow noreferrer noopener" target="_blank">Julie Wieland</a>)
Пример фотореалистичного изображения, созданного с помощью Midjourney (Источник: Julie Wieland)

И хотя настоящий фурор в сфере генерации фотореалистичных изображений в свое время произвела нейронная сеть Midjourney, другие инструменты также не отстают.

В частности, принято считать, что разные модели подходят для разных задач: какие-то больше для создания фотографий, в то время как другие — для иллюстраций.

Именно поэтому для целей создания иллюстраций я выбрал DALL•E 3 от OpenAI. К тому же ей можно воспользоваться бесплатно через Microsoft Copilot.

Использование DALL•E 3

Основной способ, которым происходит взаимодействие с подобными нейронными сетями — поле ввода для текстового запроса. Можно отправить искусственному интеллекту сообщение, в ответ на которое он вернет картинку.

У такого подхода есть как плюсы, так и минусы: с одной стороны, текст позволяет очень гибко описать желаемый результат, с другой — нейронная сеть может не правильно «понять» запрос и придумать лишнего. Кроме того, не всегда удается словами передать идею точно как она представляется у нас в воображении.

В результате происходит обмен сообщениями с нейронной сетью, где в каждом сообщении мы пытаемся все лучше и лучше передать идею того, что мы хотим увидеть.

Далее я покажу процесс того, как я создаю запрос (промпт) для нейронной сети на примере Microsoft Copilot.

Вначале я формулирую грубое описание того, что мне нужно.

Например:

Нарисуй разноцветную минималистичную 3D иконку, изображающую календарь расписания с фиолетовой галочкой

Получился интересный результат, но он не подходит под мою задачу.

Первая попытка
Первая попытка

Дополним запрос, добавив примечание о том, что иллюстрация должна быть похожа на фотографию:

Вторая попытка
Вторая попытка

Это уже больше похоже на то, что мне нужно, однако, календарь выглядит слишком пластилиновым. Да и деревья в данном случае не к чему. Но стоит отметить, что уже на данном этапе иллюстрация выглядит довольно хорошо, просто она не подходит для моего случая.

Вот таким образом, пробуя разные запросы (иногда по несколько раз) мы постепенно можем прийти к желаемому результату:

Финальная версия иллюстрации, примерно 10-я версия
Финальная версия иллюстрации, примерно 10-я версия

В итоге я получил то, что мне нужно: пластиковый календарь, который выглядит немного реалистично, но не через чур. В иллюстрации присутствуют различные материалы: пластик и металл, используются подходящие мне цвета — фиолетовый и он отбрасывает тень в нужном мне направлении.

Теперь, когда у меня есть иллюстрация, можно приступить к ее обработке: удалению фона и обработке тени.

Обработка изображения и удаление заднего фона

Для обработки изображения удобнее всего использовать Adobe Photoshop. Поскольку я не занимаюсь дизайном профессионально, то вместо него я буду использовать бесплатный онлайн аналог — Photopea.

По функционалу он практически полностью копирует Photoshop и в нем есть все необходимые инструменты для удаления фона.

Вот так выглядит редактор Photopea
Вот так выглядит редактор Photopea

Ударение фона состоит из двух этапов:

  1. Вырезания объекта по контуру
  2. Изолирование тени и комбинирования ее с вырезанным объектом

Для первого этапа можно воспользоваться инструментом «лассо», однако быстрее и проще здесь тоже использовать искусственный интеллект — я использую бесплатную версию Clipdrop для удаления фона изображения. Это намного быстрее и проще ручной обработки:

Вжух — и фона нет

Теперь, когда был получен объект без фона, останется изолировать тень. Для этого можно применить небольшую хитрость: взять за основу один из цветных каналов и использовать его для управления тенью. Подробно данный подход показан в этом видео:

Инструкция по использованию цветовых канал для создания маски (Источник: Photoshop Training Channel)

В нашем случае слой для синего цвета имеет самый высокую констрастность, поэтому выбираем его:

Гайд: как я создаю трехмерные иконки для сайтов на прозрачном фоне с помощью нейронной сети

Воспользовавшись информацией этого цветового канала создадим маску для тени. На данном этапе можно скорректировать яркость маски так, чтобы более точно изолировать тень:

Лишние участки слоя с тенью убрать довольно легко кистью с высокой степенью размытия. В итоге получим только тень, которую можно скомбинировать с объектом на прозрачном фоне:

Последним штрихом я дополнительно произвел цветокоррекцию, чтобы иллюстрация сочеталась с уже существующим дизайном сайта — сделал ее менее насыщенной и более яркой.

В итоге, весь процесс состоит из четырех этапов:

  1. Создание исходной черно-белой маски на основе одного из цветных каналов исходного изображения;
  2. Модификация яркости и контраста маски для более четкого выражения тени;
  3. Комбинирование элемента на прозрачном фоне со слоем тени;
  4. Дополнительная цветокоррекция / балансировка насыщенности.

Результат — красивая иллюстрация, сгенерированная под индивидуальные требования, которая располагается на прозрачном фоне с тенью.

Итоговое изображение на прозрачном фоне с тенью
Итоговое изображение на прозрачном фоне с тенью

Если вам понравилась эта статья, буду благодарен, если поставите лайк 🔥 и напишите комментарий — так я пойму, что на подобные темы стоит писать больше.

Также я веду свой Telegram-блог «Код без тайн», в котором пишу о веб-разработке, информатике и других технологиях:

1616
реклама
разместить
12 комментариев

Интересно, как Вы достигаете повторяемости стиля для серии иконок? Иконки по одной не плавают.

1

Хороший вопрос!

Обычно, это достигается двумя способами: либо очень детальным промптом, либо специально настроенной моделью. В моем случае т.к. я использую DALL-E 3, то конкретно у этой модели специфический стиль для "минималистичных 3д иконок" - то есть я просто это закладываю в промпт.

Альтернативный подход, с использованием моделей Stable Diffusion - LoRA. Это аналог fine-tuning, т.е. дообучения модели на конкретном стиле. Вот тут подробнее про такой подход написано: https://stable-diffusion-art.com/lora/

2

Сайты скоро РИП. Будут одни ГПТ чаты

1

И как часто на Копилоте такое ?

Попробуйте зайти с впн

1

Да, проблема в том, что он доступен только через впн 🙃

плагин в фигме remove background от Icon8 удаляет фон за секунды

не благодарите