!!! Важные изменения !!!
Не забудьте добавить Нод заново в существующие воркфлоу
Поддержать проект
English | Русский
Нод (node) для быстрой и простой замены лиц на любых изображениях для работы с ComfyUI, основан на ReActor SD-WebUI Face Swap Extension
Данный Нод идёт без фильтра цензуры (18+, используйте под вашу собственную ответственность)
Что нового | Установка | Использование | Устранение проблем | Обновление | Ответственность | Благодарности | Заметка
- По многочисленным просьбам появилась возможность строить смешанные модели лиц и в ComfyUI тоже и использовать их с нодом "Load Face Model" Node или в SD WebUI;
Экспериментируйте и создавайте новые лица или совмещайте разные лица нужного вам персонажа, чтобы добиться лучшей точности и схожести с оригиналом!
Достаточно добавить нод "Make Image Batch" (ImpactPack) на вход нового нода РеАктора и загрузить в пачку необходимые вам изображения для построения смешанной модели:
Пример результата (на основе лиц 4-х актрис создано новое лицо):
Базовый воркфлоу 💾
- Поддержка CUDA 12 - не забудьте запустить (Windows)
install.bat
или (Linux/MacOS)install.py
для используемого Python окружения или попробуйте установить ORT-GPU для CU12 вручную (https://onnxruntime.ai/docs/install/#install-onnx-runtime-gpu-cuda-12x) - Исправление Issue Gourieff#173
- Отдельный Нод для восстаноления лиц (FR Gourieff#191), располагается внутри меню ReActor (нод RestoreFace)
- (Windows) Установка зависимостей теперь может быть выполнена в Python из PATH ОС
- Разные исправления и улучшения
- Face Restore Visibility и CodeFormer Weight (Fidelity) теперь доступны; не забудьте заново добавить Нод в ваших существующих воркфлоу
- Вход "input_image" теперь идёт первым, это даёт возможность корректного байпаса, а также это правильно с точки зрения расположения входов (главный вход - первый);
- Теперь можно сохранять модели лиц в качестве файлов "safetensors" (
ComfyUI\models\reactor\faces
) и загружать их в ReActor, реализуя разные сценарии использования, а также храня супер легкие модели лиц, которые вы чаще всего используете:
- Возможность сохранять модели лиц напрямую из изображения:
- Оба входа опциональны, присоедините один из них в соответствии с вашим воркфлоу; если присоеденены оба - вход
image
имеет приоритет. - Различные исправления, делающие это расширение лучше.
Спасибо всем, кто находит ошибки, предлагает новые функции и поддерживает данный проект!
SD WebUI: AUTOMATIC1111 или SD.Next
- Закройте (остановите) SD-WebUI Сервер, если запущен
- (Для пользователей Windows):
- Установите Visual Studio 2022 (Например, версию Community - этот шаг нужен для правильной компиляции библиотеки Insightface)
- ИЛИ только VS C++ Build Tools, выберите "Desktop Development with C++" в разделе "Workloads -> Desktop & Mobile"
- ИЛИ если же вы не хотите устанавливать что-либо из вышеуказанного - выполните данные шаги (раздел. I)
- Перейдите в
extensions\sd-webui-comfyui\ComfyUI\custom_nodes
- Откройте Консоль или Терминал и выполните
git clone https://github.com/Gourieff/comfyui-reactor-node
- Перейдите в корневую директорию SD WebUI, откройте Консоль или Терминал и выполните (для пользователей Windows)
.\venv\Scripts\activate
или (для пользователей Linux/MacOS)venv/bin/activate
python -m pip install -U pip
cd extensions\sd-webui-comfyui\ComfyUI\custom_nodes\comfyui-reactor-node
python install.py
- Пожалуйста, дождитесь полного завершения установки
- (Начиная с версии 0.3.0) Скачайте модели восстановления лиц (по ссылкам ниже) и сохраните их в папку
extensions\sd-webui-comfyui\ComfyUI\custom_nodes\comfyui-reactor-node\models\facerestore_models
: - Запустите SD WebUI и проверьте консоль на сообщение, что ReActor Node работает:
- Перейдите во вкладку ComfyUI и найдите там ReActor Node внутри меню
ReActor
или через поиск:
Портативная версия ComfyUI для Windows
- Сделайте следующее:
- Установите Visual Studio 2022 (Например, версию Community - этот шаг нужен для правильной компиляции библиотеки Insightface)
- ИЛИ только VS C++ Build Tools, выберите "Desktop Development with C++" в разделе "Workloads -> Desktop & Mobile"
- ИЛИ если же вы не хотите устанавливать что-либо из вышеуказанного - выполните данные шаги (раздел. I)
- Перейдите в
ComfyUI\custom_nodes
- Откройте Консоль и выполните
git clone https://github.com/Gourieff/comfyui-reactor-node
- Запустите
install.bat
, дождитесь окончание установки - (Начиная с версии 0.3.0) Скачайте модели восстановления лиц (по ссылкам ниже) и сохраните их в папку
ComfyUI\models\facerestore_models
: - Запустите 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 имеет встроенное восстановление лиц.
Скачайте нужные вам модели (см. инструкцию по Установке) и выберите одну из них, чтобы улучшить качество финального лица.
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 - иначе ваше воркфлоу может быть потеряно после перезагрузки страницы, если вы не сохранили его).
I. (Для пользователей Windows) Если вы до сих пор не можете установить пакет Insightface по каким-то причинам или же просто не желаете устанавливать Visual Studio или VS C++ Build Tools - сделайте следующее:
- (ComfyUI Portable) Находясь в корневой директории, проверьте версию Python:
запустите CMD и выполнитеpython_embeded\python.exe -V
Вы должны увидеть версию или 3.10, или 3.11, или 3.12 - Скачайте готовый пакет Insightface для версии 3.10 или для 3.11 (если на предыдущем шаге вы увидели 3.11) или для 3.12 (если на предыдущем шаге вы увидели 3.12) и сохраните его в корневую директорию stable-diffusion-webui (A1111 или SD.Next) - туда, где лежит файл "webui-user.bat" -ИЛИ- в корневую директорию ComfyUI, если вы используете ComfyUI Portable
- Из корневой директории запустите:
- (SD WebUI) CMD и
.\venv\Scripts\activate
- (ComfyUI Portable) CMD
- (SD WebUI) CMD и
- Обновите PIP:
- (SD WebUI)
python -m pip install -U pip
- (ComfyUI Portable)
python_embeded\python.exe -m pip install -U pip
- (SD WebUI)
- Затем установите 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) илиpip install insightface-0.7.3-cp312-cp312-win_amd64.whl
(for 3.12) - (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) илиpython_embeded\python.exe -m pip install insightface-0.7.3-cp312-cp312-win_amd64.whl
(for 3.12)
- (SD WebUI)
- Готово!
Эта ошибка появляется, если что-то не так с файлом модели inswapper_128.onnx
Скачайте вручную по ссылке отсюда
и сохраните в директорию ComfyUI\models\insightface
, заменив имеющийся файл
Это означает, что поменялось обозначение входных точек (input points) всвязи с последним обновлением
Удалите из вашего рабочего пространства имеющийся ReActor Node и добавьте его снова
- Закройте или остановите ComfyUI сервер, если он запущен
- Перейдите в корневую папку 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
- Готово!
V. "ModuleNotFoundError: No module named 'basicsr'" или "subprocess-exited-with-error" при установке пакета future-0.18.3
-
Скачайте https://github.com/Gourieff/Assets/raw/main/comfyui-reactor-node/future-0.18.3-py3-none-any.whl
-
Скопируйте файл в корневую папку ComfyUI и выполните в консоли:
python_embeded\python.exe -m pip install future-0.18.3-py3-none-any.whl
-
Затем:
python_embeded\python.exe -m pip install basicsr
Попробуйте клонировать репозиторий с параметром --depth=1
(только последний коммит):
git clone --depth=1 https://github.com/Gourieff/comfyui-reactor-node
Затем вытяните оставшееся (если требуется):
git fetch --unshallow
Положите .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
Пожалуйста, сравните хэш, если вы скачиваете данные модели из непроверенных источников
Нажмите, чтобы посмотреть
файл | источник | лицензия |
---|---|---|
buffalo_l.zip | DeepInsight | |
codeformer-v0.1.0.pth | sczhou | |
GFPGANv1.3.pth | TencentARC | |
GFPGANv1.4.pth | TencentARC | |
inswapper_128.onnx | DeepInsight | |
inswapper_128_fp16.onnx | Hillobar |
BasicSR - @XPixelGroup
facexlib - @xinntao
@s0md3v, @henryruhs - оригинальное приложение Roop
@ssitu - первая версия расширения с поддержкой ComfyUI ComfyUI_roop
Если у вас возникли какие-либо ошибки при очередном использовании Нода ReActor - не торопитесь открывать Issue, для начала попробуйте удалить текущий Нод из вашего рабочего пространства и добавить его снова
ReActor Node периодически получает обновления, появляются новые функции, из-за чего имеющийся Нод может работать с ошибками или не работать вовсе