InstantID: Создание персонализированных изображений по одному фото. И лучший бесплатный генератор нейро-аватарок

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Друзья, всем привет, вышла в свет новая удивительная технология, на гите она подписана как InstantID : Zero-shot Identity-Preserving Generation in Seconds. Но по факту это самый крутой генератор аватарок в мире, который по одной лишь вашей фотографии может создать персонализированное изображение с вашим лицом в любом стиле по текстовому запросу используя SDXL модели Stable Diffusion. Так что к концу этой статьи, у вас так же как и у меня будет десяток новых аватарок и совершенно бесплатно.

И так, что же такое InstantID? по сути это эволюция идеи IP-Adapter-FaceID, который в свою очередь был развитием идеи базового IP-Adapter.

И в этом месте аудитория обычно разделяется на две части, одни думают: что ты вообще несешь и что тут происходит? А другие: АВАТАРКИ ДАВАЙ!!!11. Если вы относитесь к первым и вам интересно как это все работает, читайте отсюда, а если ко вторым, то прыгайте на пару абзацев вниз к заголовку ГЕНЕРИРУЕМ АВАТАРКИ!!1.

Что у вас здесь происходит?

Речь в этом материале идет про дополнение к генерирующий изображения по текстовому запросу нейросети Stable Diffusion. Это дополнение ControlNet и служит для того, чтобы задавать строгие рамки для генерации, подробнее про ControlNet я рассказывал в прошлой статье про ControlNet Animal OpenPose, который позволяет скопировать позу с животного и повторить её при следующей генерации. Для этого в ControlNet есть препроцессор, он создает карту на основе изображения, и есть пред обученная модель, которые знает как на основе этой карты влиять на генерацию в Stable Diffusion, например задавать контур или позу.

Птичка-синтетичка
Птичка-синтетичка

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

Схематические изображенный процесс обучения модели
Схематические изображенный процесс обучения модели

Раньше для этого приходилось делать сложные процедуры, обучение моделей или лор, что занимало время, требовало особых знаний, подготовить и разметить дата-сет с собственными лицом. Но ControlNet сделал возможным так называемый Zero-shot подход, работу по одному лишь фото, без дополнительного обучения. О новейшем решении, которое позволяет генерировать персонализированные изображения сегодня и пойдет речь.

InstantID (ImagePrompt-Adapter-FaceID-Plus-InsightFace-Swapper)

ImagePrompt-Adapter-FaceID-Plus-InsightFace-Swapper: Мог бы называться InstantID, потому что по сути наследует из перечисленных технологий что-то. При этом достигая синергии всех технологий.

Я уже рассказывал про FaceSwap в Fooocus, который работает мягко говоря хреново, делая кого-то лишь примерно похожего на вас. Знаем мы и про модели InsightFace которые используются в закрытом нынче roop, и вышедшем ему на замену ReActor и различных дипфейках, как FaceFusion, которые созданы для того, чтобы заменять одно лицо на другое, как это делать я рассказывал в статье Стань героем мемов! Делаем гифки со своим лицом с помощью нейросетей. И работают они в целом великолепно, хорошо натягивая геометрию лица на любое изображение.

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

Совсем не торт
Совсем не торт

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

Ноу-хау же метода InstantID состоит в том, чтобы добавить информацию о лице на этапе генерации через модель antelopev2 из семейства InsightFace, того самого который использовался для дипфейков и в знаменитом roop. Но тут эта модель служит для того, чтобы получить векторное представление лица, эмбединг и на этапе генерации подсунуть это представление в Stable Diffusion через Image Prompt Adapter, чтобы генерился не рандомный 1man или 1girl, а именно вы. Ну чтож, с теорией закончили, время делать АВАТАРКИ!!11

Вот теперь торт
Вот теперь торт

ГЕНЕРИРУЕМ АВАТАРКИ!!1

Мы будем использовать онлайн демо InstantID на huggingface, это совершенно бесплатно, правда оно может быть перегружено и квота на попытки у вас не безлимитная, но в этих ситуациях просто зайдите позднее.

Так же вы можете использовать Google Colab, просто запустите обе ячейки по очереди и дождитесь появления ссылки.

На странице мы видим максимально простой интерфейс, в первое окошко загружаем вашу фотографию с лицом, я использую фото плохого качества сделанное с вебки, кстати фото с вебки можно сделать тут же кликнув на иконку. Если будете использовать качественное (не большое, а именно качественное) фото, то и результат будет лучше.

Во второе окошко вы можете загрузить изображение - референс, с которого будет взята поза и экспрессия. Я например возьму изображение с сайта PromptHero, он кажется не открывается без VPN.

a single muscular man made of Fire and melting ice in space, detailed face, narrow nose, neon, plasma, red and blue, intricate details, hyperrealistic, 4k, symmetric, volumetric lighting, (Masterpiece:1. 5), (best quality:1. 5), (natural skin texture, hyperrealism, soft light, muted colors), background

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

По моему вышло весьма круто, с учетом того, что мы использовали случайный вообще запрос. Судя по коду в этой демке используется модель YamerMIX_v8, просто поищем там какую-нибудь классную картинку и возьмем запрос оттуда, это даст нам еще более интересный результат.

Мне понравилась вот такая картинка с девушкой в скафандре, было было бы круто сделать такую, же только со мной. Просто копируем запрос из поля Prompt и изменяем его, заменив female, на male.

waist-up "male Astronaut in a Jungle" by Syd Mead, broken helmet tangerine cold color palette, muted colors, detailed, 8k,photo r3al,dripping paint,3d toon style,3d style, cyborg style, Movie Still

И вот такой результат получился у меня, не очень нравится шлем, но все равно очень очень круто! Особенно мне нравится как InstantID круто изменяет угол лица и оно все еще остается узнаваемым!

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

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

Источник: https://habr.com/ru/articles/789028/


Интересные статьи

Интересные статьи

С учётом актуальности Multiple Instance Learning (далее: MIL) и, в частности, наличия преимуществ данного метода для анализа гистологических изображений, решил попробовать обучить модели с целью ...
Привет!Вопрос освобождения сотрудников IT и телеком-компаний от призыва в рамках частичной мобилизации сейчас очень актуален. Особенно если учесть, что многие пункты выпускаемых сейчас приказов и всев...
Есть интересный высоковольтный генератор, названный по фамилии своего американского изобретателя "Тесла". Собственно, конструкция там достаточно простая. Высоковольтный открытый трансформатор, где в п...
К старту курса "Machine Learning и Deep Learning" мы решили поделиться переводом обзора AttendSeg — новой архитектуры нейронной сети, разработанной исследователями искусс...
Распознавание изображений (т. е. классификация того, какой объект отображается на изображении) является основной задачей в области компьютерного зрения, так как она позволяет использо...