Главная

Sunday, 12 November 2023

Расширения для face swap в Automatic1111.

Всем привет.

Для выполнения операции по замене лиц (face swap) в Automatic1111 популярными плагинами на сегодня являются три:

  1. ROOP
  2. FaceSwapLab
  3. ReActor.

ROOP был пионером, но автор его развитие забросил, FaceSwapLab очень функционален, а ReActor молод, развивается и весьма прост в общении.

А теперь про детали. 

Говорить что кто-то из них лучше или хуже можно только в плане интерфейса для пользователя ибо для обнаружения лиц они все используют одну и ту же библиотеку inswapper_128.onnx.

Сегодня на слуху у всех ReActor. Ну что ж, ReActor устанавливается аналогично Roop и FaceSwapLab:

git clone https://github.com/Gourieff/sd-webui-reactor

или штатно из Automatic1111. После настоятельно рекомендую перегрузить сервер Automatic1111, а не просто его GUI.

При первой загрузке ReActor может написать нам что-то врoде "RELOAD SERVER...", но тем менее будет загружаться дальше и даже откроет GUI Automatic1111. Сами понимаете что нормально работать ReActor после этого точно не будет. Хотя автор ReActor-а и утверждает что ReActor все ему необходимое доинсталлирует сам, на практике этого не происходит.

Дело в том что если мы ранее использовали что-то на тему faceswap в Automatic1111 (а мы активно пользуемся расширениями RООР и FaceSwapLab), то ReActor требует onnxruntime библиотеку версии 1.14.0 и выше. Вполне вероятно что наша версия ниже.

Поэтому активируем venv и деинсталлируем ее:

..\python\python.exe -m pip uninstall -y onnxruntime onnxruntime-gpu

После опять запускаем Automatic1111 в процессе которого ReActor (или FaceSwapLab) доинсталлирует более свежую версию onnxruntime.

В итоге ReActor для себя создаст следующую копилку моделей:

в D:\SDportable\models\insightface

inswapper_128.onnx

и

в D:\SDportable\models\insightface\models\buffalo_l

1k3d68.onnx

2d106det.onnx

det_10g.onnx

genderage.onnx

w600k_r50.onnx

FaceSwapLab имеет тот же набор моделей, но хранит их в другом месте.)

Ok, теперь наш ReActor работает. Из вкусного могу сказать что в консоли он пишет  приблизительный возраст человека лицо которого меняет и того на кого меняет, так вот могу утверждать что угадывает он плюс-минус в диапазоне 5-ти лет! Еще что замечательно так это то что ReActor работает с расширением AnimateDiff, в отличие от FaceSwapLab которая просто падает с ошибкой.

Я ничего не говорю про расширение ROOP, так как оно после установки ReActor-а у меня не работает, что-то они там не поделили в Automatic1111-е, поэтому я к нему уже и не возвращался.

Вот такие пироги на сегодня.

Успехов.

No comments:

Post a Comment

А что вы думаете по этому поводу?