Привет, чемпионы!
AI решение, про которое я расскажу в этой статье, после запуска в телеграм органически привлекло 70 000 новых пользователей за месяц, а всего было произведено 400 000 генераций. Погнали!
Предыстория. В один момент Я поймал себя на мысли, что у нескольких моих коллег есть навязчивая идея сделать стартап в сфере Fashion tech. Говорят, у каждого в жизни бывает, что встаешь утром, собираешься на работу и не понимаешь, что надеть кроме домашней пижамы на первый рабочий созвон. Время сокращается, а шанс собрать классный лук уменьшается. Что ж, давайте решать эту проблему и реализовать раздевание переодевание!
Формализуем задачу:
На вход: подаем утреннее фото и текстовое описание, с каким стилем мы сегодня выйдем в люди
На выходе: получаем готовый образ (или несколько) с качественной генерацией (чтобы не было странных фоток)
Готовые AI решения на рынке
? Fotor AI — неплохой выбор. Вы можете легко изменить цвет, узор и стиль одежды, не будучи экспертом по редактированию или гуру Photoshop.
? PicsArt AI — одно из лучших приложений для смены одежды с ИИ на рынке. Picsart может создавать реалистичные результаты. Он идеально интегрирует измененные элементы в свою среду.
? LightX AI replace — еще одна отличная альтернатива с широким набором функций.
? Runway — инструмент для простой смены одежды с помощью ИИ, хотя качество чуть хуже аналогов.
? Phot.ai — менее мощный инструмент, в целом функционал 3 из 5 .
Есть еще StyleDN, Get Outfit и многие другие.
Допустим, вы не хотите пользоваться готовыми платными решениями, а хотите свою модель, окей!
Делаем все сами. Собираем первую версию.
Какие можно придумать варианты решений?
Берем Stable Diffusion, подаем свое фото и пишем: "переодень меня в фиолетовый худи". Такое решение не очень хорошее, т.к у модели могут возникнуть галлюцинации, и результат нам не понравится. Так что сразу познакомимся с техникой - inpainting!
Inpainting модели вида text-to-image принимают на вход:
изображение,
маску
,промпт
. Особенность таких диффузионных моделей в том, что они изменяют не все изображение, а только объекты внутри маски согласно промпту. Для нас это идеальное решение, так как нам не надо перекрашивать шкаф на фоне в деловой стиль и у модели будет меньше шансов ошибиться в генерации. Для примера возьмем SD Inpainting
То есть на вход мы подаем исходное изображение + маска + текстовое описание:
Немного поиграемся и получим кучу лавочек с разными персонажами.
А что если вместо лавочки будете вы, а вместо собаки одежда?! Давайте тогда применим этот подход и для наших задач. Переоденем меня в новый худи и не только. Вот, что у меня получилось:
Вау, работает неплохо! Радуемся результату! Правда я пропустил элемент, как сделать маску. Сперва нарисовал примерную универсальную маску руками в редакторе, но тогда при смене картинки надо рисовать заново. Поэтому пришлось научиться генерировать маску автоматически. Для этого я взял модель автоматической сегментации. Результатом этой модели являются полигоны элементов. Нам интересны те, что отвечают за верхнюю и нижнюю части тела (body down и body above). Либо, если хочется попроще, то можно взять модель для маскирования одежды.
Идем дальше и включаем фантазию!
Переодевать попробовали. Пробуем теперь раздевать! Ниже примеры, которые сгенерировал с модельными фотографами из поисковика. Работает тоже отлично!
Кажется, что качество приятное. Я поместил свой пайплайн из приведенных выше моделей в телеграм бот. Можете попробовать переодеть там своих коллег тоже!
Заключение
Мы рассмотрели новую технологию Inpainting и применили ее для конкретной задачи. Такой же подход применяется и в новых AI редакторах фото: убрать объект с фото, дорисовать область(Out-paintning) и другое. Код пайплана на python выложил на GitHub. Про другие подходы рассказал в своем тг-канале, где делюсь новостями из мира Data Science и личными кейсами работ. Присоединяйтесь! Будем делать больше крутых AI проектов!
А так же кидайте в комментарии фотографии для генерации. Буду переодевать их в худи!
cosheimil
А надо ли в маску включать руки человека? Stable diffusion может сделать из меня шестипалого стилягу
И надо будет посоветовать жене, а то по утрам много времени уходит на это. Спасибо за статью!
Aleron75 Автор
Если маской руки закрыть, то будет лучше, да. Для примера взял маскер попроще