Open-source project
Gourieff/ComfyUI-ReActor avatar
Gourieff/ComfyUI-ReActor

ComfyUI-ReActor for SFW Face Swaps

Fast and Simple Face Swap Extension Node for ComfyUI (SFW)

1,383 stars246 forksPythonGPL-3.0

At a glance

What is it?
ComfyUI-ReActor adds face swapping, restoration, similarity checks, and related image-processing nodes to ComfyUI. It targets users who want a node-based workflow that no longer requires InsightFace or C++ Build Tools.
Who is it for?
ComfyUI-ReActor is appropriate for ComfyUI users building SFW face-swap workflows who can supply the required models and accept changed output between core versions. It is a poor fit for users seeking documented non-Windows installation commands, automated rollback, or support for every optional enhancement node on any hardware.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 8 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What ComfyUI-ReActor Adds to ComfyUI

ComfyUI-ReActor addresses a specific gap in ComfyUI: it supplies nodes for changing the face in an image while keeping the work inside a node graph. The project describes itself as an SFW-friendly extension and says that it includes a nudity detector intended to reduce use with 18+ content. That scope matters for adoption. It is not a general-purpose image editor, and the README does not document an API, command-line interface, or separate web application. The intended user is someone already working in ComfyUI who wants face replacement as part of a larger generation or post-processing workflow.

The available node set extends beyond the central swap operation. The project lists face restoration, advanced restoration with filtering, face-model loading, face similarity, mask helper behavior, and image enhancement options. Recent changes include a Cinematic Enhancer node for effects such as grain, vignette, blur, color correction, HDR, and LUT application. Version 0.7.1 also introduces a DLSS5 Frame Enhancer node, but that node has stricter documented requirements than the face-swap core. Installing the extension does not mean every optional node is supported on every machine.

The project also supports multiple face-swap model families. The README specifically mentions Inswapper, Reswapper, and HyperSwap models. HyperSwap model files are named as hyperswap_1a_256.onnx, hyperswap_1b_256.onnx, and hyperswap_1c_256.onnx, and the documented destination is ComfyUI\models\hyperswap. The repository layout includes reactor_core, reactor_utils.py, r_facelib, r_modules, r_nodes, and related r_* directories. Based on that layout, the extension is implemented as ComfyUI node code backed by a dedicated face-processing core rather than as a standalone editor.

The ReActor Core and Model Data Flow

The most consequential change is documented for version 0.7.0: the new ReActor Core no longer requires InsightFace or C++ Build Tools. The README also states that installation is easier, NumPy 2.x and 1.x are supported, and the swap result is slightly different from the previous implementation. This is a compatibility change, not a promise of identical output. Users who need reproducible images should review their workflow after upgrading.

A typical node graph needs an input image, a face source, and a ReActor swap node. The README excerpt does not expose the node's complete input schema, so exact socket names and option labels cannot be confirmed. It does confirm that face models are loaded through a Load Face Model node and that a FACE_MODEL_NAME output was added in 0.6.2. The workflow therefore treats model selection as an explicit graph operation rather than relying on one implicit model file.

The model itself is not part of the Python package. The repository declares onnx, opencv-python, numpy, segment_anything, albumentations, ultralytics, and colour-science as dependencies. The README identifies ONNX model files for HyperSwap and gives their directory, while earlier release notes refer to Inswapper and Reswapper. This points to a model-driven design in which Python nodes connect image input, face processing, model execution, and output. The exact tensor-level sequence is not documented, so claims about blending masks, landmarks, or embedding internals would exceed what the README confirms.

The Face Similarity node provides a post-swap check based on face likeness. The README does not explain its score range, threshold, or whether it is intended as an automated acceptance criterion. Treat it as a node that reports a similarity result, not as a documented quality guarantee. Restoration is also presented as affecting only swapped faces, which separates processing of the replaced region from the rest of the image.

Installing ReActor and Preparing the First Workflow

The repository includes install.bat and install.py at its top level. The README refers to install.bat for Windows users and says that it can be run in the ReActor folder, but it does not provide the exact command-line invocation or a complete non-Windows installation sequence. A reproducible command block cannot be supplied without inventing syntax.

For a first use, install the repository according to the project's installation section, start ComfyUI, and add the relevant ReActor nodes to a workflow. Load the model node, select an available model, connect an image input and a face source, and connect the swap output into the rest of the graph. The README excerpt does not document exact socket names, so the UI labels should be taken from the installed node menu rather than copied from an assumed example.

Before running a swap, place model files in the directory required by the selected model family. The README gives this location for HyperSwap:

text
ComfyUI\models\hyperswap

It identifies these files:

text
hyperswap_1a_256.onnx
hyperswap_1b_256.onnx
hyperswap_1c_256.onnx

A first useful result should be checked for three visible properties: whether the face source is detected, whether the target image remains structurally recognizable outside the swapped face, and whether restoration changes only the intended region. The project also provides Face Similarity, which can be placed after the swap when a likeness measurement is useful. Do not interpret that output as a substitute for inspecting the final image because the README does not define a pass threshold.

Model Selection and Restoration Controls

Model choice is part of the workflow rather than a hidden global setting. The Load Face Model node was changed in 0.6.2 to expose FACE_MODEL_NAME, which gives downstream nodes an explicit model reference. That is useful when a graph contains more than one model path or when the user needs to see which model produced a branch. The README does not explain whether cached graphs automatically migrate older model references, so users should inspect node values after changing model directories.

The release history records support for FaceFusion Labs HyperSwap models and describes earlier comparisons among Inswapper, Reswapper, and HyperSwap. A comparison image is linked from the README, but the repository text does not define a scoring procedure or claim that one model is correct for every source and target pair. Models should therefore be treated as alternatives whose results need direct inspection.

Restoration has a deliberately narrower scope. The 0.6.2 notes say that face restoration affects only swapped faces, and the new Restore Face Advanced node can apply restoration to selected faces with a filter. This is useful when an automatic workflow processes several detected faces and only some should be corrected. It does not mean restoration is guaranteed to preserve identity. The README does not document restoration strength controls, processing time, or behavior when no face is detected.

The Face Similarity node offers another signal after generation. It can support an editorial check or a branching graph, but the absence of a documented threshold means that any automated rejection policy would need to be designed by the user. That policy should use the actual node output format from the installed version.

Cinematic Enhancer and DLSS5 Hardware Boundaries

The newest documented feature line is not limited to face replacement. Version 0.7.2 beta introduces Cinematic Enhancer. Its requirements are LUT files in models/luts and the Python package colour-science. The README gives this command:

bash
pip install colour-science

It also says that Windows users can run install.bat in the ReActor folder. The enhancer can apply simple or advanced grain, vignette, blur, color correction, and HDR, then apply a LUT. This is useful when a face-swap result needs controlled image finishing, but it changes the scope of the workflow beyond identity replacement. The README does not provide exact parameter names, so a fixed node recipe would be speculative.

DLSS5 Frame Enhancer has different constraints. The requirements are Windows 10 or 11, an NVIDIA display driver numbered 616.x or higher, and an NVIDIA RTX 40-series or 50-series GPU. Compatibility with older RTX series is explicitly unconfirmed. The README says that the integration operates in an isolated Host mode to eliminate conflicts with ComfyUI's CUDA context. It identifies neuroframe_engine.dll and neuroframe_caller.dll as components of the computational bridge, based on a C++ wrapper credited to another project.

These optional nodes should not be used to judge the core extension. A machine that cannot run DLSS5 Frame Enhancer may still be able to run the face-swap workflow if the core dependencies and models load correctly. Conversely, installing the repository does not guarantee that the DLSS5 files, driver, operating system, and GPU requirements are present.

Upgrade, License, and Documentation Costs

The clearest limitation is documentation coverage. The README does not give a complete install command, a full end-to-end workflow, a rollback procedure, or a compatibility matrix for the core nodes across operating systems and GPUs. Adoption therefore depends on inspecting the repository files and the installed ComfyUI environment. The README is more explicit about optional feature requirements than about core dependency resolution.

The release history implies an upgrade cost. The 0.7.0 core change removed the InsightFace requirement and changed the swap result slightly. Users who maintain saved workflows, cached models, or consistent outputs should review release notes before replacing an older setup. The repository is not archived, and the last push was on 2026-10-15. That is the maintenance fact documented for the repository, not a guarantee about response time or future compatibility.

The project is identified as GPL-3.0, and pyproject.toml points to the repository through its project URLs. A GPL license can affect redistribution and integration, but this review does not provide legal advice. Review the LICENSE file and the terms of your ComfyUI distribution before redistributing modified code or packaging the extension with another application.

ReActor Compared with General ComfyUI Editing Nodes

A useful alternative is to use separate general-purpose ComfyUI image and mask nodes for editing and post-processing rather than adopting ReActor for every identity-related operation. The approaches differ in scope. ReActor concentrates on face swapping, face restoration, face-model loading, face similarity, and related face-processing nodes. General image nodes may be preferable when the task is a localized composite, object replacement, color adjustment, or a mask-driven effect without face replacement.

The choice depends on the workflow's primary operation. ReActor adds a dedicated model and node surface for face work, while a general node graph can keep every operation as an explicitly connected image or mask transformation. ReActor also carries model-file placement requirements and, for Cinematic Enhancer, LUT setup and colour-science installation. A separate editing approach avoids those face-specific prerequisites when identity replacement is not required.

For a ComfyUI user who already has a working image graph, the practical comparison is direct: choose ReActor when the graph needs face swapping or face restoration, and keep general-purpose nodes for edits outside the face. Verify the model source, output expectations, and license boundaries before combining either approach with a distributed workflow.

Editorial conclusion

ComfyUI-ReActor is appropriate for ComfyUI users building SFW face-swap workflows who can supply the required models and accept changed output between core versions. It is a poor fit for users seeking documented non-Windows installation commands, automated rollback, or support for every optional enhancement node on any hardware. Before adopting it, verify the installation entry point, place the selected model in its required directory, and check the operating system and GPU requirements of optional nodes. The first concrete check is whether the new ReActor core loads and produces a swap without requiring InsightFace.

Frequently asked questions

How do I install ComfyUI-ReActor?

The repository includes install.bat and install.py. The README mentions install.bat for Windows users, but it does not provide the complete command sequence or a full non-Windows installation tutorial.

Does ComfyUI-ReActor require InsightFace or C++ Build Tools?

The 0.7.0 release notes state that the new ReActor Core no longer requires InsightFace or C++ Build Tools. They also state that both NumPy 1.x and 2.x are supported.

Where should I put HyperSwap models?

The README says to put HyperSwap models in ComfyUI\models\hyperswap. It names hyperswap_1a_256.onnx, hyperswap_1b_256.onnx, and hyperswap_1c_256.onnx as available model files.

What does the Face Similarity node do?

The README lists Face Similarity as a node for checking face likeness after a swap. It does not document the score format, threshold, or automatic quality decision.

Can DLSS5 Frame Enhancer run on any NVIDIA GPU?

No. The documented requirements are Windows 10 or 11, NVIDIA display driver 616.x or higher, and an NVIDIA RTX 40-series or 50-series GPU. Compatibility with older RTX series is unconfirmed.

Official sources

  1. Gourieff/ComfyUI-ReActor on GitHub
  2. Issues
  3. License: GPL-3.0
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/gourieff-comfyui-reactor.svg)](https://hysenlabs.com/projects/gourieff-comfyui-reactor)

Was this useful?