Skip to content

AndreyRGW/Rope-neurogen

 
 

Repository files navigation

Rope реализует модель inswapper_128 для работы с библиотекой InsightFace с помощью графического интерфейса (GUI).

Ссылка на Discord:

Discord

Изменения:

Я рекомендую выполнить полное переустановку, так как некоторые имена файлов были изменены. Я обновил инструкции по установке ниже. Обратите внимание, что появился новый файл onnx...

  • Изменен файл inswapper.onnx для повышения скорости работы (13 мс -> 9 мс на обмен на моем 3090)
  • Добавлен CLIP (txt2mask) для указания зон с маскировкой и без нее вокруг лица
  • Кнопка записи - нажмите запись, и все, что вы воспроизводите, будет записано в видеофайл (хорошо подходит для записи отрезков)
  • Указание каталога для сохранения видео
  • Обновленный GUI
  • Обновлена логика создания видео для исправления ошибки
  • Исправлены неправильные цвета в скине и GFPGAN

Превью:

Screenshot 2023-07-22 143839

Новая функция CLIP:

Screenshot 2023-07-21 145531

Отказ от ответственности:

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

Функции:

  • Воспроизведение видео в реальном времени
  • Оптимизированные пути моделей (фпс >30 с GFPGAN на 3090Ti)
  • Изменяемое окно
  • Загрузка, просмотр и выбор исходных видео и исходных лиц из указанных папок
  • Идентификация целевых лиц в текущем кадре
  • Привязка нескольких исходных лиц к нескольким целевым лицам
  • GFPGAN с смешиванием
  • Diffing с смешиванием
  • Изменение границ лица, чтобы совпадало с исходными и целевыми лицами, с смешиванием
  • Установка потоков
  • Установка порога сопоставления лиц
  • Создание видео с текущими настройками
  • Использование звукового сопровождения и сжатие видео

Установка:

Примечание: Настроено только для CUDA (Nvidia)

  • Создайте локальное виртуальное окружение (venv)
    • python.exe -m venv venv
  • Активируйте новое виртуальное окружение
    • .\venv\Scripts\activate
  • Установите необходимые пакеты
    • .\venv\Scripts\pip.exe install -r .\requirements.txt
  • Разместите файлы GFPGANv1.4.onnx и inswapper_128_fp16.onnx в корневой каталог
  • Если вы никогда не устанавливали roop или другие средства выполнения onnx:
    • Установите CUDA Toolkit 11.8
    • Установите зависимости:
    • pip uninstall onnxruntime onnxruntime-gpu
    • pip install onnxruntime-gpu==1.15.1
  • Дважды щелкните по файлу Rope.bat!

Использование:

  • Запустите Rope.bat
  • Установите целевое видео, исходные лица и папку вывода видео
    • Кнопки станут золотыми, если они не установлены
    • Допустимы только видео и изображения в соответствующих папках. Другие файлы могут вызвать ошибку
    • Rope создает JSON-файл для запоминания последних установленных путей
    • Я предпочитаю ограничивать количество файлов в папках не более 20. Это помогает в организации и уменьшает время загрузки
  • Щелкните кнопку Load Models для инициализации Rope
  • Выберите видео для его загрузки в плеер
  • Найдите целевые лица
    • Добавляет все лица в текущем кадре в панель Found Faces
    • Если лицо уже найдено и находится в панели, оно не будет добавлено повторно
  • Щелкните на исходное лицо
    • Появится номер исходного лица
  • Выберите целевое лицо
    • Целевые лица будут показывать номер привязанного исходного лица
    • Переключение целевого лица отменяет выбор и переназначает текущему выбранному исходному лицу
  • Продолжайте выбирать другие исходные лица и назначать их целевым лицам
  • Нажмите SWAP, чтобы включить обмен лицами
  • Нажмите PLAY для воспроизведения
  • Нажмите REC для запуска записи
    • Нажмите PLAY для начала записи с использованием текущих настроек
    • Нажмите PLAY еще раз, чтобы остановить запись, иначе она будет продолжаться до конца целевого видео
  • Переключайте GFPGAN, регулируйте количество смешивания
  • Переключайте Diffing, регулируйте количество смешивания
  • Уменьшите порог, если у вас назначено несколько исходных лиц и они прыгают. Также можно попробовать очистить и найти новые целевые лица (сначала отключите SWAP)
  • Измените границы маскировки
  • Используйте CLIP для определения объектов для замены или сохранения (например, Pos: лицо, голова; Neg: волосы, рука), регулируйте уровень воздействия слов и устанавливайте уровень размытия вокруг объектов
  • Измените количество потоков в соответствии с доступной памятью вашей графической карты (24 ГБ ~9 потоков с активированным GFPGAN, больше потоков при его отключении)
    • Начните с наименьшего количества потоков, которое вы считаете подходящим, и следите за использованием памяти графической карты.
    • После выделения памяти, увеличивая количество потоков, вы не сможете уменьшить его, уменьшив количество потоков. Вам придется перезапустить Rope.
  • В общем случае всегда остановите видео перед изменением чего-либо. В противном случае его работа может быть нарушена. Переназначение лиц допустимо
  • Если что-то пошло не так, перезагрузите видео (кликните на него снова). Если это не помогает, вам нужно будет перезапустить

About

GUI-focused roop

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%