Как стать тянкой в реальном времени — PersonaLive AI

Мега нейронка для становления тянкой (и не только) в реальном времени, позволить пользоваться которой смогут только настоящие шейхи с мощным компом... Да, оперативка подорожала именно ради этого

Что вообще такое PersonaLive?

PersonaLive — это фреймворк на основе диффузионных моделей, предназначенный для создания анимированных аватаров из одной фотографии и управляющего "видео"

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

Из преимуществ, можно выделить, что она довольно быстро всё обрабатывает. Задержка выходного видео всего 0,25 секунды, что позволяет её использовать для стримов
Так же умеет в долгую, т.е через 10-15 и даже 30 минут, изображение должно оставаться таким же качественным как и при первой генерации

Так как эта нейронка, пока что, является исследовательским проектом, инсталлятора (как .exe файла) у него нет, установка производится через командную строку (терминал)

Системные требования

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

  • Видимокарта NVIDIA RTX 3090, 4090 с большим объемом видеопамяти (желательно от 16-24 ГБ)
    На более слабых картах (8-12 ГБ) работа так же возможна, однако скорость будет ниже реального времени
  • Linux (рекомендуется Ubuntu 20.04/22.04) или Windows с установленным WSL2

  • Так же должны по софту у нас тут Python 3.10, Conda и Git

Из-за таких мощнучих системок, ставить эту нейронку себе на комп я не стал, так как сильно сомневаюсь что ноутбучная 4060 и 16 гб ддр4 потянут всю эту прелесть...

Че качать, как устанавливать

Для начала скачаем код
Открываем терминал (или консоль Anaconda) и выполните команды:

git clone https://github.com/GVCLab/PersonaLive cd PersonaLive

Настроем окружение

Чтобы ничего не сломать в системе, создаём изолированную среду Python 3.10

conda create -n personalive python=3.10 conda activate personalive

Далее устанавливаем зависимости

pip install -r requirements_base.txt

Далее скачиваем сами модели
Скрипт сам скачает все нужные файлы (около 10-15 ГБ) с Hugging Face или Google Drive. Запустите

python tools/download_weights.py

(Если вдруг, чуть что, как то так, скачивание не начнётся, то вот ссылка на эти же файлы на гугл диске)

Чтобы нейросеть работала быстро (в реальном времени), разработчики настоятельно советуют конвертировать модель в формат TensorRT. Это касается даже владельцев мощных карт, как RTX 5090/4090/3090

Установите библиотеки для ускорения

pip install -r requirements_trt.txt

Если возникнет ошибка с установкой pycuda, выполните: conda install -c conda-forge pycuda "numpy<2.0"

Сконвертируйте модель (это займет несколько минут)

python torch2trt.py

Так ну вроде всё. Че, сложно было? Нет? Ну вот и отлично) а если возникли какие то сложности, то не пишите мне коменатарии с вопросом "А почему у меня тут ошибка, как исправить и тд?", потому что я сам не ебу как его это самое делать всё. Я не ставил модельку себе на компик. По сути я вам пересказываю че сам прочитал и посмотрел про эту модельку и подробненько описываю каждый шажок
Извините меня за мою немпетентность, но по мне так лучше так, чем вообще никак
Люблю вас, пупсики мои ;)

ЗАПУСКАЕМ МАШИНУ

И так, у нас есть два режима работы: онлайн (стрим с веб-камеры) и оффлайн (обработка готового видео)

Вариент 1: стрим онлайн с вебки

Запускаем на:

# Если вы сделали ускорение (шаг выше): python inference_online.py --acceleration tensorrt # Если ускорение не делали (будет медленнее): python inference_online.py --acceleration xformers

Для владельцев RTX 50-й серии (Blackwell) используйте --acceleration none

Далее открываем браузер и переходим по адресу: http://127.0.0.1:7860 (или http://0.0.0.0:7860)

Откроется простенький интерфейс, где можно всё настроить и начать пользоваться моделькой

  • Upload Image: Загрузите фото тянки

  • Fuse Reference: Нажмите кнопку, чтобы нейросеть обработала фотку

  • Разрешите доступ к веб-камере

  • Start Animation: Нажмите и двигайте головой — персонаж будет повторять за вами

Вариант 2: обработка видева

хз зачем оно вам надо, если есть суперкачественный Wan2.2 animate, но ок

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

python inference_offline.py \ --source_image "assets/ваше_фото.jpg" \ --driving_video "assets/ваше_видео.mp4" \ --output_path "result.mp4"

Вроде всё, но вот вам езё в догонку пару советов

Задержка: если персонаж сильно отстает от ваших движений, то...

  • В веб-интерфейсе уменьшите параметр "Driving FPS"
  • Увеличьте множитель кадров (multiplier), чтобы синхронизировать скорость генерации с вашей камерой

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

PyCUDA: Если при установке ускорения вылетает ошибка "Failed to build wheel for pycuda", установите его вручную через conda (команда указана в разделе Ускорение)

Так же все необходимые ссылки и файлы находятся в репозитории

Ну что, мои скуфы и скуфихи, почитали да? Заплакали от системных требований? Понимаю вас
А те кто не заплакали, уважение вам, жду от вас посты в ответ к этому посту с вашими результатами!

111
24
21
8
7
5
3
3
1
1
1
235 комментариев