Rope реализует модель inswapper_128 для работы с библиотекой InsightFace с помощью графического интерфейса (GUI).
Я рекомендую выполнить полное переустановку, так как некоторые имена файлов были изменены. Я обновил инструкции по установке ниже. Обратите внимание, что появился новый файл onnx...
- Изменен файл inswapper.onnx для повышения скорости работы (13 мс -> 9 мс на обмен на моем 3090)
- Добавлен CLIP (txt2mask) для указания зон с маскировкой и без нее вокруг лица
- Кнопка записи - нажмите запись, и все, что вы воспроизводите, будет записано в видеофайл (хорошо подходит для записи отрезков)
- Указание каталога для сохранения видео
- Обновленный GUI
- Обновлена логика создания видео для исправления ошибки
- Исправлены неправильные цвета в скине и GFPGAN
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.
- В общем случае всегда остановите видео перед изменением чего-либо. В противном случае его работа может быть нарушена. Переназначение лиц допустимо
- Если что-то пошло не так, перезагрузите видео (кликните на него снова). Если это не помогает, вам нужно будет перезапустить