Найти в Дзене

Цифровой ИИ Аватар

С приходом открытых нейронных видео моделей наступает новая эра цифровых аватаров. До недавнего времени они были доступны только в платных сервисах, очень ограничены в плане творчества и постановки событий внутри кадра. А главное, очень дорогие в производстве. Небольшая наработка ИИ Аватара собранная за один вечер. Результат не идеальный, но впечатляющий и вариативный. Я начал эту разработку в апреле этого года с полного нуля, с нулевым опытом в нейросетях. Однако последние шесть лет я много проработал в 3д визуализатором. Работал в программах 3DsMax, Blender, Unreal Engine, Houdini. И во всех этих программах всегда нужно было создавать различные логики при помощи узлов (ноды), поэтому работа с ComfyUI и сборка рабочих процессов далась мне очень легко. Однако в ComfyUI сложность составляет именно его установка. Большую часть времени занимала именно установка различных дополнений и работа с их ошибками. За 8 месяцев я изучил Python на базовом уровне, разобрался с виртуальными простра

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

Небольшая наработка ИИ Аватара собранная за один вечер. Результат не идеальный, но впечатляющий и вариативный.

Я начал эту разработку в апреле этого года с полного нуля, с нулевым опытом в нейросетях. Однако последние шесть лет я много проработал в 3д визуализатором. Работал в программах 3DsMax, Blender, Unreal Engine, Houdini. И во всех этих программах всегда нужно было создавать различные логики при помощи узлов (ноды), поэтому работа с ComfyUI и сборка рабочих процессов далась мне очень легко.

-2

Однако в ComfyUI сложность составляет именно его установка. Большую часть времени занимала именно установка различных дополнений и работа с их ошибками. За 8 месяцев я изучил Python на базовом уровне, разобрался с виртуальными пространствами, а так же перебрал море различных технологий.

Сейчас создание ИИ Аватара происходит всего в три рабочих процесса, и я хочу показать их вам.

Workflow #1 - Создание образа аватара на базе диффузионных моделей Stable Diffusion XL и Улучшения качества на базе Flux

Рабочий процесс FACEGOD
Рабочий процесс FACEGOD

Процесс полностью автоматизирован, нужно просто загрузить референс, фото лица и запустить процесс. Сам процесс происходит в пять шагов:

Шаг 1: Автопромптинг

-4

Перепробовал множество вариантов. Этот самый простой и лучший.

  • Описание изображения с помощью Florence2Run
  • Захват стиля и композиции с помощью IPadapter

Была идея дополнить промптами типа score_9, high detailed и так далее. Смысла никакого нет, так как ipadapter + prompt переносят изображение почти на 100%.

Захватили референс, переходим к следующему шагу.

Шаг 2: Набросок

-5

Раз этот трюк называется FaceSwap, то лицо аватара нам надо куда то свапать, по этому создаётся набросок для переноса лица на основе подсказки и шума из предыдущего шага. Была подключена одна LoRA, чтобы изображение не "рассыпалось" в некоторых моментах.

Сделали набросок, переходим к следующему шагу.

Шаг 3: FaceSwap

-6

Так же было перепробовано много способов, остановился на InstantID так как он даёт самую высокую точность при свапе.

Между вторым и третьим шагом очень важно настроить значение CFG, на это значение ушло больше всего времени при создании этого рабочего процесса.

Как визуализатор хочу отметить, что человеческий мозг идеально различает человеческие лица, когда человек смотрит на свой нейропортрет и он похож только на 95% и ниже, то мозг выдаёт "False" и человек получает дискомфорт. Это основная проблема нейропортретов. За это время я переделал их тысячи, и видел довольно разные эмоции и отклики. Однако аватар на скриншотах так же сгенерирован в этом же процессе и взят из наброска.

Свапнули лицо, теперь изображение нужно улучшить. Детализировать глаза, губы, зубы, если на изображении есть руки, то руки.

Если просто поставить в последний шаг эти изображения, то он изменит лицо и мы получим даже не 90% точности, а 30%, что приведёт к абсолютно другому образу, поэтому лицо нужно замаскировать.

Шаг 4: Маски

-7

Небольшая простая математика, Sam модели создают маски заданным элементам (лицо, глаза, губы) последнее нужно если аватар улыбается для улучшения зубов. Потом маски складываются по разному типу наложения и создаётся общая маска. Идея доработать всё изображение вокруг лица, не трогая его черты.

Создали маску, дорабатываем изображение

Шаг 5: Доработка

-8

Тут происходит img2img процесс с использованием маски, доработка деталей.

На выходе всегда получаем хорошие глаза, часто хорошие руки, более логичные детали, хорошие татуировки и так далее.

Процесс полностью автоматизирован и работает довольно быстро. Пока я это писал можно было создать больше сотни пободных портретов.

Так же хорошо работает для арт работ, поскольку IPadapter хорошо забирает стиль

-9

-10

-11

Создали образ. Дальше самое интересное. Анимируем этот образ!

Предисловие: был проделан титанический труд по перебору различных видеомоделей для реализации этого метода. CogVideoX, Hunyuan, Pyramydflow на данный момент показывают очень долгие результаты генерации и требуют очень высоких мощностей. Что не позволяет создать аватара в короткие сроки, и очень далеки от реализации реалтайма.

Уже опустив руки, случайно наткнулся на модель LTXV. Многие покрутили эту модель и она выдавала сильное мыло и глюки, но я увидел в ней потенциал и понял что её можно приручить максимально. И при хорошей настроенной системе она генерирует 25 кадров быстрее, чем воспроизводит эти кадры, а значит приводит к реалтайму.

Рабочий процесс построен по системе img2vid. Это намного проще чем работать с промптами, а так же имеет преимущество по ряду причин и имеет очень широкое применение.

Workflow #2 - IMG2VID

LTX CTG img2vid
LTX CTG img2vid

Принцип работы простой. Закидываем входящее изображение и жмём queue prompt. Есть несколько регуляторов для контроля видео. Об этом будет рассказано в последнем шаге.

После загрузки входного изображения процесс делится на 4 шага.

Шаг 1: Захват промпта входящего изображения и редактирование промпта под видеомодель

-13

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

Мне не нравится эта идея, я сейчас создаю другую сборку видеопромптера. У Florence2Run нету системного и входящего промпта, а на них можно построить целую киностудию ботов, которые буду обсуждать входящее изображение и подберут максимально точный промпт, наработка уже есть, работает на Llama. Просто нету времени доделать.

Создали промпт, двигаем дальше

Шаг 2: Оптимизация входящего изображения под разрешение видео модели

-14

Не совсем понимаю как это работает, но это работает. Основная особенность что изображение подгоняется под одно целое число. Заданное в последнем шаге. По максимальной длине.

По умолчание значение 768, и если изображение вертикальное, то это значение сохраняется по вертикали, если горизонтальное, то по горизонтали.

Огромная экономия времени.

Всё подготовили, следующий шаг

Шаг 3: Генерация

-15

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

Шаг 4: Работа с результатом

-16

Как известно генерации не всегда выходят удачно, важно быстро понять где это можно исправить. И тут для этого всего пара важных настроек:

  • Длина видео - до 10 секунд, что довольно много
  • Коэфицент динамики внутри кадра - скорость движения можно немного контролировать, как это было с SVD
  • Сэмплы - по умолчанию 30. Можно поставить хоть 200, всё равно отрисует, нужно регулировать если глаза аватара очень маленькие (аватар в полный рост и т.д) К сожалению я погрешил этим в первом видео, и получил размытие на многих кадрах

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

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

-17

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

-18

Bandlab отлично выполняет эту задачу.

Workflow #3 - LypSync

-19

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

Результат ролика.

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

Это мой 2024. На этом пути я потерял много людей, а конкретно всех тех кто меня тормозил в этом, и приобрёл верных друзей.

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

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

  • Улучшение визуального качества аватара (доработки первого этапа)
  • Оптимизация моделей до реалтайма (TensorRT, Cuda и другие методы оптимизации)
  • Контроль эмоций внутри генерации видео (решаемо, причём довольно сильно, есть опенсорсные технологии наглядно показывающие как это реализовать)
  • Внедрение Lypsync прямо в сгенерированный кадр (так же решаемо, просто нужно время это реализовать
  • Продуктовый дизайн и реклама через аватара. Аватар может держать в руках предметы и рекламировать их (пример первое видео, новогодний подарок в руках и шар, точно так же только с продуктами), тоже решаемо путём создания лор на flux

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

Это точно моё, я просто обожаю своё дело, горю и живу этим. В данный момент я даю консультации на тему нейросетей на канале ELPA School

И мой личный контакт в телеграмм Pavel Elpa

Пишите, обращайтесь, буду рад пообщаться на данную тему. Спасибо за внимание😌