Files
Gourieff-ComfyUI-ReActor/README_RU.md
T

42 KiB
Raw Blame History

logo

Version

Поддержать проект на Boosty
Поддержать проект


Commit activity Last commit Opened issues Closed issues License

English | Русский

ReActor Nodes для ComfyUI
-=Безопасно для работы | SFW-Friendly=-

Ноды (nodes) для быстрой и простой замены лиц на любых изображениях для работы с ComfyUI, основан на ранее заблокированном РеАкторе - теперь имеется встроенный NSFW-детектор, исключающий замену лиц на изображениях с контентом 18+

Используя данное ПО, вы понимаете и принимаете ответственность

Что нового в последнем обновлении

0.7.1 BETA1

0.7.0

  • 💥 Важное обновление! ☢ Новое ядро РеАктора!
    ✅ Библиотека Insightface больше не требуется!
    ✅ C++ Build Tools больше не требуются!
    ✅ Более простой процесс установки!
    ✅ Поддержка Numpy 2.x и 1.x!
    ⚠ Результат Свапа теперь слегка отличается. Сложно сказать, хуже или лучше — результат просто чуть-чуть другой. По показателям схожести (оценка косинусного сходства векторов эмбеддингов лиц) результат стал немного лучше (хоть и незначительно), чем с Insightface.
    Подробнее здесь: https://t.me/reactor_faceswap/55
  • Новый узел "Face Similarity" для проверки схожести лиц после свапа
  • Исправление "HyperSwap CPU Float normalization" (спасибо @Buumcode, Issue #183)
  • Исправлено: проблема определения пола и логика индексов лиц (Issue #234)
  • Улучшен install.bat для поддержки запуска установки в Comfy Desktop
  • Прочие улучшение и исправления
Предыдущие версии

0.6.2

  • Добавлена поддержка моделей HyperSwap от команды FaceFusion Labs (спасибо @Buumcode за вариант реализации)
    Модели можно скачать отсюда
    (hyperswap_1a_256.onnx, hyperswap_1b_256.onnx, hyperswap_1c_256.onnx)
    и положить в папку ComfyUI/models/hyperswap
0.6.2-whatsnew-04-3

Сравнение моделей Inswapper, Reswapper, HyperSwap

  • Теперь восстановление лиц затрагивает только заменённые лица
0.6.2-whatsnew-01
  • Новый узел "Restore Face Advanced" с фильтром по лицам, спасибо https://github.com/Buumcode за реализацию "Фильтра восстановления лиц"
    Этот узел помогает применить восстановление именно к нужному лицу или лицам
0.6.2-whatsnew-02
  • Добавлен выход FACE_MODEL_NAME для узла "Load Face Model"
0.6.2-whatsnew-03
  • Исправления и улучшения

0.6.1

  • Улучшенная логика работы с индексами множества лиц при определении пола
  • MaskHelper нод теперь почти вдвое быстрее - пока не идеально, но лучше, чем было ранее
  • Нативный ProgressBar ComfyUI для разных шагов
  • Добавлен выход ORIGINAL_IMAGE для основных нодов
  • Разные исправления и улучшения (https://github.com/Gourieff/ComfyUI-ReActor/issues/25 фикс; временные файлы для NSFW детектора больше не создаются; NSFW детектор стал работать немного быстрее)

0.6.0

  • Новый нод ReActorSetWeight - теперь можно установить силу замены лица для source_image или face_model от 0% до 100% (с шагом 12.5%)
0.6.0-whatsnew-01 0.6.0-whatsnew-02 0.6.0-whatsnew-03

0.5.2

  • Поддержка моделей ReSwapper. Несмотря на то, что Inswapper по-прежнему даёт лучшее сходство, но ReSwapper развивается - спасибо @somanchiu https://github.com/somanchiu/ReSwapper за эти модели и проект ReSwapper! Это хороший шаг для Сообщества в создании альтернативы Инсваппера!
0.5.2-whatsnew-03 0.5.2-whatsnew-04

Скачать модели ReSwapper можно отсюда: https://huggingface.co/datasets/Gourieff/ReActor/tree/main/models Сохраните их в директорию "models/reswapper".

  • NSFW-детектор, чтобы не нарушать правила GitHub
  • Новый нод "Unload ReActor Models" - полезен для сложных воркфлоу, когда вам нужно освободить ОЗУ, занятую РеАктором
0.5.2-whatsnew-01
  • Поддержка ORT CoreML and ROCM EPs, достаточно установить ту версию onnxruntime, которая соответствует вашему GPU
  • Некоторые улучшения скрипта установки для поддержки последней версии ORT-GPU
0.5.2-whatsnew-02
  • Исправления и улучшения

0.5.1

  • Поддержка моделей восстановления лиц GPEN 1024/2048 (доступны в датасете на HF https://huggingface.co/datasets/Gourieff/ReActor/tree/main/models/facerestore_models)
  • Нод ReActorFaceBoost - попытка улучшить качество заменённых лиц. Идея состоит в том, чтобы восстановить и увеличить заменённое лицо (в соответствии с параметром face_size модели реставрации) ДО того, как лицо будет вставлено в целевое изображения (через алгоритмы инсваппера), больше информации здесь (PR#321)
0.5.1-whatsnew-01

Полноразмерное демо-превью

  • Сортировка моделей лиц по алфавиту
  • Множество исправлений и улучшений

0.5.0 BETA4

  • Поддержка библиотеки Spandrel при работе с GFPGAN

0.5.0 BETA3

  • Исправления: "RAM issue", "No detection" для MaskingHelper

0.5.0 BETA2

  • Появилась возможность строить смешанные модели лиц из пачки уже имеющихся моделей - добавьте для этого нод "Make Face Model Batch" в свой воркфлоу и загрузите несколько моделей через ноды "Load Face Model"
  • Огромный буст производительности модуля анализа изображений! 10-кратный прирост скорости! Работа с видео теперь в удовольствие!
0.5.0-whatsnew-05

0.5.0 BETA1

  • Добавлен выход SWAPPED_FACE для нода Masking Helper
  • FIX: Удалён пустой A-канал на выходе IMAGE нода Masking Helper (вызывавший ошибки с некоторым нодами)

0.5.0 ALPHA1

  • Нод ReActorBuildFaceModel получил выход "face_model" для отправки совмещенной модели лиц непосредственно в основной Нод:

Basic workflow 💾

  • Функции маски лица теперь доступна и в версии для Комфи, просто добавьте нод "ReActorMaskHelper" в воркфлоу и соедините узлы, как показано ниже:
0.5.0-whatsnew-01

Если модель "face_yolov8m.pt" у вас отсутствует - можете скачать её отсюда и положить в папку "ComfyUI\models\ultralytics\bbox"
То же самое и с "sam_vit_b_01ec64.pth" - скачайте (если отсутствует) и положите в папку "ComfyUI\models\sams";

Данный нод поможет вам получить куда более аккуратный результат при замене лиц:

0.5.0-whatsnew-02
  • Нод ReActorImageDublicator - полезен тем, кто создает видео, помогает продублировать одиночное изображение в несколько копий, чтобы использовать их, к примеру, с VAE энкодером:
0.5.0-whatsnew-03
  • ReActorFaceSwapOpt (упрощенная версия основного нода) + нод ReActorOptions для установки дополнительных опций, как (новые) "отдельный порядок лиц для input/source". Да! Теперь можно установить любой порядок "чтения" индекса лиц на изображении, в т.ч. от большего к меньшему (по умолчанию)!
0.5.0-whatsnew-04
  • Небольшое улучшение скорости анализа целевых изображений (input)

0.4.2

  • Добавлена поддержка GPEN-BFR-512 и RestoreFormer_Plus_Plus моделей восстановления лиц

Скачать можно здесь: https://huggingface.co/datasets/Gourieff/ReActor/tree/main/models/facerestore_models
Добавьте модели в папку ComfyUI\models\facerestore_models

0.4.2-whatsnew-04
  • По многочисленным просьбам появилась возможность строить смешанные модели лиц и в ComfyUI тоже и использовать их с нодом "Load Face Model" Node или в SD WebUI;

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

Достаточно добавить нод "Make Image Batch" (ImpactPack) на вход нового нода РеАктора и загрузить в пачку необходимые вам изображения для построения смешанной модели:

0.4.2-whatsnew-01

Пример результата (на основе лиц 4-х актрис создано новое лицо):

0.4.2-whatsnew-02

Базовый воркфлоу 💾

0.4.1

  • Поддержка 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 comfyui-reactor-node/issues/173

  • Отдельный Нод для восстаноления лиц (FR comfyui-reactor-node/issues/191), располагается внутри меню ReActor (нод RestoreFace)

  • (Windows) Установка зависимостей теперь может быть выполнена в Python из PATH ОС

  • Разные исправления и улучшения

  • Face Restore Visibility и CodeFormer Weight (Fidelity) теперь доступны; не забудьте заново добавить Нод в ваших существующих воркфлоу

0.4.1-whatsnew-01

0.4.0

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

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

Установка

Портативная версия ComfyUI для Windows

  1. Выберите из двух вариантов:
    • (ComfyUI Manager) Откройте ComfyUI Manager, нажвите "Install Custom Nodes", введите "ReActor" в поле "Search" и далее нажмите "Install". После того, как ComfyUI завершит установку, перезагрузите сервер.
    • (Вручную) Перейдите в ComfyUI\custom_nodes, откройте Консоль и выполните git clone https://github.com/Gourieff/ComfyUI-ReActor
  2. Перейдите ComfyUI\custom_nodes\ComfyUI-ReActor и запустите install.bat, дождитесь окончания установки
  3. Скачайте необходимые модели из Раздела "Модели" ниже
  4. Запустите ComfyUI и найдите ReActor Node внутри меню ReActor или через поиск

Модели

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

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

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

  • ••• Основные •••
    • ReActorFaceSwap (Основной нод)
    • ReActorFaceSwapOpt (Основной нод с доп. входом Options)
    • ReActorOptions (Опции для ReActorFaceSwapOpt)
    • ReActorFaceBoost (Face Booster)
    • ReActorMaskHelper (Masking Helper)
    • ReActorSetWeight (Задать замены лица)
  • ••• Работа с моделями лиц •••
    • ReActorSaveFaceModel (Сохранить модель лица)
    • ReActorLoadFaceModel (Загрузить модель лица)
    • ReActorBuildFaceModel (Построить смешанную модель лица)
    • ReActorMakeFaceModelBatch (Создать пачку моделей лиц)
  • ••• Дополнительные •••
    • ReActorRestoreFace (Восстановление лиц)
    • ReActorRestoreFaceAdvanced (Восстановление лиц продвинутое)
    • ReActorFaceSimilarity (Оценка схожести лиц)
    • ReActorImageDublicator (Сделать из одного изображения несколько дубликатов)
    • ImageRGBA2RGB (Конвертировать RGBA в RGB)
    • ReActorUnload (Выгрузить модели РеАктора из VRAM)
    • DLSS5FrameEnhancer (Улучшение детализации кадра с NVIDIA DLSS 5)

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

Входы основного Узла

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

Выходы основного Узла

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

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

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

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

По умолчанию ReActor определяет лица на изображении в порядке от "большого" к "малому".
Вы можете поменять эту опцию, используя нод ReActorFaceSwapOpt вместе с ReActorOptions.

Если вам нужно заменить определенное лицо, вы можете указать индекс для исходного (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 - иначе ваше воркфлоу может быть потеряно после перезагрузки страницы, если вы не сохранили его).

Masking Helper

Нод доступен с версии 0.5.0, просто добавьте "ReActorMaskHelper" в рабочий процесс и соедините как показано ниже:

0.5.0-whatsnew-01

Если модель "face_yolov8m.pt" отсутствует - скачайте отсюда и положите в папку "ComfyUI\models\ultralytics\bbox"
Также и "sam_vit_b_01ec64.pth" или "sam_vit_l_0b3195.pth" (лучше окклюзия) - скачайте (если не качали ранее) и положите в папку "ComfyUI\models\sams";

Используйте этот нод для улучшенного результата при замене лиц:

0.5.0-whatsnew-02

Сила замены лица

Для входов source_image or face_model можно задать силу замены лица от 0% до 100% (с шагом 12.5%) с помощью нода ReActorSetWeight

0.6.0-whatsnew-01

Устранение проблем

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

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

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

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

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

III. "fatal: fetch-pack: invalid index-pack output" при исполнении команды git clone"

Попробуйте клонировать репозиторий с параметром --depth=1 (только последний коммит):

 git clone --depth=1 https://github.com/Gourieff/ComfyUI-ReActor

Затем вытяните оставшееся (если требуется):

 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 license
codeformer-v0.1.0.pth sczhou license
GFPGANv1.3.pth TencentARC license
GFPGANv1.4.pth TencentARC license
inswapper_128.onnx DeepInsight license
inswapper_128_fp16.onnx Hillobar license

BasicSR - @XPixelGroup
facexlib - @xinntao

@s0md3v, @henryruhs - оригинальное приложение Roop
@ssitu - первая версия расширения с поддержкой ComfyUI ComfyUI_roop

Обратите внимание!

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

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