Skip to content

Latest commit

 

History

History
328 lines (225 loc) · 24.3 KB

README_RU.md

File metadata and controls

328 lines (225 loc) · 24.3 KB
logo

Version

!!! Важные изменения !!!
Не забудьте добавить Нод заново в существующие воркфлоу

Buy Me a Coffee at ko-fi.com


Commit activity Last commit Opened issues Closed issues License

English | Русский

ReActor Node для ComfyUI

Нод (node) для быстрой и простой замены лиц на любых изображениях для работы с ComfyUI, основан на ReActor SD-WebUI Face Swap Extension

Данный Нод идёт без фильтра цензуры (18+, используйте под вашу собственную ответственность)

Поддержать проект на Boosty
Поддержать проект
ReActor Node это расширение для ComfyUI, которое позволяет делать простую и точную замену лиц на изображениях Поддержать проект через PayPal
Помочь проекту
logo

0.4.0 BETA2

  • Возможность сохранять модели лиц напрямую из изображения:
0.4.0-whatsnew-03
  • Оба входа теперь опциональны, присоедините один из них в соответствии с вашим воркфлоу; если присоеденены оба - вход image имеет приоритет.

0.4.0 BETA1

  • Вход "input_image" теперь идёт первым, это даёт возможность корректного байпаса, а также это правильно с точки зрения расположения входов (главный вход - первый);
  • Теперь можно сохранять модели лиц в качестве файлов "safetensors" (ComfyUI\models\reactor\faces) и загружать их в ReActor, реализуя разные сценарии использования, а также храня супер легкие модели лиц, которые вы чаще всего используете:
0.4.0-whatsnew-01 0.4.0-whatsnew-02
  • Различные исправления, делающие это расширение лучше.

Спасибо всем, кто находит ошибки, предлагает новые функции и поддерживает данный проект!

SD WebUI: AUTOMATIC1111 или SD.Next
  1. Закройте (остановите) SD-WebUI Сервер, если запущен
  2. (Для пользователей Windows):
    • Установите Visual Studio 2022 (Например, версию Community - этот шаг нужен для правильной компиляции библиотеки Insightface)
    • ИЛИ только VS C++ Build Tools, выберите "Desktop Development with C++" в разделе "Workloads -> Desktop & Mobile"
    • ИЛИ если же вы не хотите устанавливать что-либо из вышеуказанного - выполните данные шаги (раздел. I)
  3. Перейдите в extensions\sd-webui-comfyui\ComfyUI\custom_nodes
  4. Откройте Консоль или Терминал и выполните git clone https://github.com/Gourieff/comfyui-reactor-node
  5. Перейдите в корневую директорию SD WebUI, откройте Консоль или Терминал и выполните (для пользователей Windows).\venv\Scripts\activate или (для пользователей Linux/MacOS)venv/bin/activate
  6. python -m pip install -U pip
  7. cd extensions\sd-webui-comfyui\ComfyUI\custom_nodes\comfyui-reactor-node
  8. python install.py
  9. Пожалуйста, дождитесь полного завершения установки
  10. (Начиная с версии 0.3.0) Скачайте модели восстановления лиц (по ссылкам ниже) и сохраните их в папку extensions\sd-webui-comfyui\ComfyUI\custom_nodes\comfyui-reactor-node\models\facerestore_models:
  11. Запустите SD WebUI и проверьте консоль на сообщение, что ReActor Node работает:
console_status_running
  1. Перейдите во вкладку ComfyUI и найдите там ReActor Node внутри меню ReActor или через поиск:
webui-demo webui-demo
Портативная версия ComfyUI для Windows
  1. Сделайте следующее:
    • Установите Visual Studio 2022 (Например, версию Community - этот шаг нужен для правильной компиляции библиотеки Insightface)
    • ИЛИ только VS C++ Build Tools, выберите "Desktop Development with C++" в разделе "Workloads -> Desktop & Mobile"
    • ИЛИ если же вы не хотите устанавливать что-либо из вышеуказанного - выполните данные шаги (раздел. I)
  2. Перейдите в ComfyUI\custom_nodes
  3. Откройте Консоль и выполните git clone https://github.com/Gourieff/comfyui-reactor-node
  4. Запустите install.bat, дождитесь окончание установки
  5. (Начиная с версии 0.3.0) Скачайте модели восстановления лиц (по ссылкам ниже) и сохраните их в папку ComfyUI\models\facerestore_models:
  6. Запустите ComfyUI и найдите ReActor Node внутри меню ReActor или через поиск

Вы можете найти ноды ReActor внутри меню ReActor или через поиск (достаточно ввести "ReActor" в поисковой строке)

Список нодов:

  • ReActorFaceSwap (Основной нод)
  • ReActorLoadFaceModel (Load Face Model)
  • ReActorSaveFaceModel (Save Face Model)

Соедините все необходимые слоты (slots) и запустите очередь (query).

Входы основного Нода

  • input_image - это изображение, на котором надо поменять лицо или лица (целевое изображение, аналог "target image" в версии для SD WebUI);
    • Поддерживаемые ноды: "Load Image", "Load Video" или любые другие ноды предоставляющие изображение в качестве выхода;
  • source_image - это изображение с лицом или лицами для замены (изображение-источник, аналог "source image" в версии для SD WebUI);
    • Поддерживаемые ноды: "Load Image";
  • face_model - это вход для выхода с нода "Load Face Model" или другого нода ReActor для загрузки модели лица (face model или face embedding), которое вы создали ранее через нод "Save Face Model";
    • Поддерживаемые ноды: "Load Face Model";

Выходы основного Нода

  • IMAGE - выход с готовым изображением (результатом);
    • Поддерживаемые ноды: любые ноды с изображением на входе;
  • FACE_MODEL - выход, предоставляющий модель лица, построенную в ходе замены;
    • Поддерживаемые ноды: "Save Face Model", "ReActor";

Восстановление лиц

Начиная с версии 0.3.0 ReActor Node имеет встроенное восстановление лиц.
Скачайте нужные вам модели (см. инструкцию по Установке) и выберите одну из них, чтобы улучшить качество финального лица.

Индексы Лиц (Face Indexes)

ReActor определяет лица на изображении в следующей последовательности:
слева-направо, сверху-вниз.

Если вам нужно заменить определенное лицо, вы можете указать индекс для исходного (source, с лицом) и входного (input, где будет замена лица) изображений.

Индекс первого обнаруженного лица - 0.

Вы можете задать индексы в том порядке, который вам нужен.
Например: 0,1,2 (для Source); 1,0,2 (для Input).
Это означает, что: второе лицо из Input (индекс = 1) будет заменено первым лицом из Source (индекс = 0) и так далее.

Определение Пола

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

Модели Лиц

Начиная с версии 0.4.0, вы можете сохранять модели лиц как файлы "safetensors" (хранятся в папке ComfyUI\models\reactor\faces) и загружать их в ReActor, реализуя разные сценарии использования, а также храня супер легкие модели лиц, которые вы чаще всего используете.

Чтобы новые модели появились в списке моделей нода "Load Face Model" - обновите страницу of с ComfyUI.
(Рекомендую использовать ComfyUI Manager - иначе ваше воркфлоу может быть потеряно после перезагрузки страницы, если вы не сохранили его).

  1. (ComfyUI Portable) Находясь в корневой директории, проверьте версию Python:
    запустите CMD и выполните python_embeded\python.exe -V
    Вы должны увидеть версию или 3.10, или 3.11
  2. Скачайте готовый пакет Insightface для версии 3.10 или для 3.11 (если на предыдущем шаге вы увидели 3.11) и сохраните его в корневую директорию stable-diffusion-webui (A1111 или SD.Next) - туда, где лежит файл "webui-user.bat" -ИЛИ- в корневую директорию ComfyUI, если вы используете ComfyUI Portable
  3. Из корневой директории запустите:
    • (SD WebUI) CMD и .\venv\Scripts\activate
    • (ComfyUI Portable) CMD
  4. Обновите PIP:
    • (SD WebUI) python -m pip install -U pip
    • (ComfyUI Portable) python_embeded\python.exe -m pip install -U pip
  5. Затем установите Insightface:
    • (SD WebUI) pip install insightface-0.7.3-cp310-cp310-win_amd64.whl (для 3.10) или pip install insightface-0.7.3-cp311-cp311-win_amd64.whl (для 3.11)
    • (ComfyUI Portable) python_embeded\python.exe -m pip install insightface-0.7.3-cp310-cp310-win_amd64.whl (для 3.10) или python_embeded\python.exe -m pip install insightface-0.7.3-cp311-cp311-win_amd64.whl (для 3.11)
  6. Готово!

II. "AttributeError: 'NoneType' object has no attribute 'get'"

Эта ошибка появляется, если что-то не так с файлом модели inswapper_128.onnx

Скачайте вручную по ссылке отсюда и сохраните в директорию ComfyUI\models\insightface, заменив имеющийся файл

III. "reactor.execute() got an unexpected keyword argument 'reference_image'"

Это означает, что поменялось обозначение входных точек (input points) всвязи с последним обновлением
Удалите из вашего рабочего пространства имеющийся ReActor Node и добавьте его снова

IV. ControlNet Aux Node IMPORT failed - при использовании совместно с нодом ReActor

  1. Закройте или остановите ComfyUI сервер, если он запущен
  2. Перейдите в корневую папку ComfyUI, откройте консоль CMD и выполните следующее:
    • python_embeded\python.exe -m pip uninstall -y opencv-python opencv-contrib-python opencv-python-headless
    • python_embeded\python.exe -m pip install opencv-python==4.7.0.72
  3. Готово!

reactor+controlnet

Положите .bat или .sh скрипт из данного репозитория в папку ComfyUI\custom_nodes и запустите, когда желаете обновить ComfyUI и Ноды

Это программное обеспечение призвано стать продуктивным вкладом в быстрорастущую медиаиндустрию на основе генеративных сетей и искусственного интеллекта. Данное ПО поможет художникам в решении таких задач, как анимация собственного персонажа или использование персонажа в качестве модели для одежды и т.д.

Разработчики этого программного обеспечения осведомлены о возможных неэтичных применениях и обязуются принять против этого превентивные меры. Мы продолжим развивать этот проект в позитивном направлении, придерживаясь закона и этики.

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

Используя данное расширение, вы соглашаетесь не создавать материалы, которые:

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

Данное программное обеспечение использует предварительно обученные модели buffalo_l и inswapper_128.onnx, представленные разработчиками InsightFace. Эти модели распространяются при следующих условиях:

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

Пользователи данного программного обеспечения должны строго соблюдать данные условия использования. Разработчики и Со-авторы данного программного продукта не несут ответственности за неправильное использование предварительно обученных моделей InsightFace.

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

Хэш файлов моделей

Безопасные для использования модели имеют следующий хэш:

inswapper_128.onnx

MD5:a3a155b90354160350efd66fed6b3d80
SHA256:e4a3f08c753cb72d04e10aa0f7dbe3deebbf39567d4ead6dce08e98aa49e16af

1k3d68.onnx

MD5:6fb94fcdb0055e3638bf9158e6a108f4
SHA256:df5c06b8a0c12e422b2ed8947b8869faa4105387f199c477af038aa01f9a45cc

2d106det.onnx

MD5:a3613ef9eb3662b4ef88eb90db1fcf26
SHA256:f001b856447c413801ef5c42091ed0cd516fcd21f2d6b79635b1e733a7109dbf

det_10g.onnx

MD5:4c10eef5c9e168357a16fdd580fa8371
SHA256:5838f7fe053675b1c7a08b633df49e7af5495cee0493c7dcf6697200b85b5b91

genderage.onnx

MD5:81c77ba87ab38163b0dec6b26f8e2af2
SHA256:4fde69b1c810857b88c64a335084f1c3fe8f01246c9a191b48c7bb756d6652fb

w600k_r50.onnx

MD5:80248d427976241cbd1343889ed132b3
SHA256:4c06341c33c2ca1f86781dab0e829f88ad5b64be9fba56e56bc9ebdefc619e43

Пожалуйста, сравните хэш, если вы скачиваете данные модели из непроверенных источников

Если у вас возникли какие-либо ошибки при очередном использовании Нода ReActor - не торопитесь открывать Issue, для начала попробуйте удалить текущий Нод из вашего рабочего пространства и добавить его снова

ReActor Node периодически получает обновления, появляются новые функции, из-за чего имеющийся Нод может работать с ошибками или не работать вовсе