Друзья, всем привет, вышла в свет новая удивительная технология, на гите она подписана как 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
Мы будем использовать онлайн демо 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 круто изменяет угол лица и оно все еще остается узнаваемым!
Но ведь использовать второе изображение не обязательно, если вы запустите генерацию без референсного изображения, то композиция будет такая же, как на фото с вашим лицом. Вот пример по запросу выше, но уже без референса в виде девушки астронавта.
Т.е. правильно выбирая фотку под вашу художественную задумку вы можете влиять на генерацию, была б у меня тут на голове кастрюля, шлем получился бы лучше 😂
Или вот еще крутой пример девушка викинг, мы не девушка, но вполне себе хотим быть викингом, поменяем запрос:
High quality, Very highly detailed, a muscle male barbarian, digital illustration, aesthetic beauty, perfect anatomy, perfect face, abstract beauty, beautiful, centered, looking at the camera, approaching perfection, dynamic, moonlight, highly detailed, digital painting, art station, concept art, smooth, sharp focus, illustration, art by Carne Griffiths and Wadim Kashin, awesome full color
По моему отлично. Двигаемся дальше.
А что если взять что-то более художественное, вот картинка с девочкой-оленем, претендующая на художественность, получится ли у меня сделать такое же изображение с собой?
mythical fantasy creature living in the iridescent forest, a hybrid creature reindeer and male god, wonderful, stunningly beautiful, Jean Baptiste Monge, Carne Griffiths, Edward Hopper, Surrealism, Dark Art by James Jean, Takato Yamamoto, Carne Griffiths, Michael Garmash, Seb Mckinnon, complicated details, very detailed, multicolored, very detailed, hyperrealistic, 8k, best quality, masterpiece, elegance, fantastical, behance contest winner, featured on unsplash, Vector Art
Ву-аля, картина Король Оленей, со мной в главной роли, по моему очень круто получилось. Не забудь пошутить про рога в комментарии.
Разобрались с тем, где брать крутые запросы и референсы, теперь можно посмотреть и на встроенные стили. Я сделал сетку из всех стилей и генерировал по простому запросу Portrait of man, 35 y.o, blue-grey eyes.
Стили интересные и могут пригодится не только, если лень придумывать свой сюжет, но и чтобы превратить какой-то уже готовый сюжет во что-то другое, например снова возьмем референс и запрос девочку с оленем, только на этот раз включим стиль Neon.
Получился очень яркий и праздничный олень король оленей, хотя неона совсем не появилось. Смело комбинируйте стили с вашими промптами и интересными референсами. Попробуем пример с фактурой и сложной текстурой, нарисованная черно-белая девушка.
Немного меняем запрос:
a drawing of a man, portrait, lookin at the camera, black and white, hints of oil painting style, hints of watercolor style, brush strokes, negative white space, captivating beauty, crisp, sharp, textured collage, layered fibers, post-impressionist, hyper-realism
И вот такой результат получился у меня
Еще один классный пример, на этот раз с брызгами краски. Немного меняю запрос:
Portrait of a man, splashed with vivid hues of paint across him, channelling the artistic styles of modern Europeans like Sandra Chevrier and Martin Ansin, rendered on a sprawling canvas, incorporating elements of ochre tones in the color scheme, thoughtful intricate detailing, enhanced by Nicolas Delort inspired imagery, indulging in ink painting qualities, presenting a perfect balance between realism and fantasy, the paint appearing to drip and meld on her face, reminiscent of a dynamic album cover
И вот такой результат получился у меня, по моему очень круто.
Если покрутить ползунки IdentityNet strength (for fedility) и Image adapter strength (for detail), можно либо усилить первое фото, либо второе, с первого соответственно вы усилите свои черты внешности, а со второго позу и стиль из изображения референса. По умолчанию значения 0.8 достаточно.
Ну и последний пример на сегодня, девушка робот на свалке.
Cyberpunk,sci-fi,dark-fantasy,kodak portrait 400,8k,soft light,volumetric lighting,highly detailed,photo of a broken ruined cyborg man in a landfill + face, grey-blue eyes, body is broken with scares and holes,half the face is android,laying on the ground,missing legs,raining,night,intricate,elegant,highly detailed,2D motifs detailed dark fantasy digital painting,artstation,concept art,smooth,sharp focus,illustration,reflector light in backfront,dirty wt skin,holes on the body,art by Otomo Katsuhiro and ShirÅ Masamune and Oshii Mamoru,
Вот что вышло у меня, по моему очень круто.
Но это еще не конец, ведь вы можете улучшить полученное изображение через Fooocus, сделать апскейл, а потом еще и до инпеинтить некоторые части и довести изображение вот до такого уровня детализации.
Согласитесь, после доработки совсем другой уровень.
Если вы гордый обладатель жирной современной видеокарты, желательно от 16гб видеопамяти и только Nvidia, то можете запустить локальную версию. Но ту версию которая указана на гите разработчиком как рабочая под Windows, мне не удалось развернуть, как я не пытался. Потому мы решили сделать свою портативную версию с моим товарищем Flutty Proger, если вдруг знаете его, передайте привет 😎. Портативка еще в разработке, скажу лишь что в ней будет поддержка LCM, чтобы сэкономить ресурсы и возможность указать домашнюю папку с моделями, чтобы на лету между ними переключаться.
В наличии есть два пайплайна для ComfyUI ZHO-ZHO-ZHO/ComfyUI-InstantID и huxiuhan/ComfyUI-InstantID. Если попробуете, то отпишитесь какой лучше работает, я в комфи не запускал.
А на этом у меня все, вы познакомились с новой крутой технологией и теперь сможете бесплатно наделать себе и друзья кучу классных аватарок, вы знаете как это работает, где искать запросы и референсы. Скидывайте то что у вас получается в комментарии и в наш чатик нейро-операторов или заходите если что-то не получится.
Я рассказываю больше про нейросети у себя на YouTube, в Телеграм и на Бусти, подпишитесь чтобы не пропустить выход портативной версии InstantID, которую мы с Flutty Proger в ближайшее время представим.