This article is written to provide a review for anyone reading my article: Swapping Images Realtime In-Browser (Firefox) with ComfyUI. My plan is to go over just the most basic parts of a reactor face swap workflow in ComfyUI so it can be used in the more complicated integration with Firefox.
Needed Nodes
The only custom node need for Reactor Face Swapping is the ComfyUI-ReActor node itself that can be installed directly from the ComfyUI manager:

Needed Models
There are four different models you need to run this, and I can't recall if any of them download automatically. I list them here and put the folder where they are on my system. If there are any you don't have, google the exact model name and then grab one of the huggingface results and put it in the subfolder of models (create the folder if you have to):
inswapper_128.onnx (models/insightface)
GPEN-BFR-512.onnx (models/facerestore_models)
face_yolov8s.pt (models/ultralytics/bbox)
sam_vit_b_01ec64.pth (models/sams)If you were missing any nodes or models, you will need to restart ComfyUI before you can proceed.
Simple Workflow
Getting the face swap to run requires only 5 nodes and is lightning fast. Here is the workflow:

The two nodes on the left are input images. The bottom, which plugs into the "source_image" input of the Reactor Fast Face Swap node is the face you want to use. I chose a picture of Sean Connery from the internet. The top, which plugs into the "input_image" is the image where you want the face to end up. I chose this nice picture of a guy sitting on a bench.
This isn't a detailed description of all the different settings in ReActor, but I'll show what works for me. I used two nodes, the "ReActor Fast Face Swap" node and the "ReActor Masking Helper" node. Here are the settings I used for each (and you can see where each of the models we discussed earlier appears):


It is incredibly fast, and within about 2 seconds you will get a feel for how cinematic history would look had there been one small casting change in the past...

Saving Face (Models)
One last thing that helps simplify stuff is to save your face models. It's not necessary because ReActor is so fast, but if you get into doing things like merging faces (you can make a blend of Tom Hanks and Sean Connery and swap it onto other bodies), or using multiple sources of the same face for better fidelity, saving the model can greatly simplify things for you. It will also help in the Firefox image swap we are preparing for, so I will include it here. Fortunately, it is incredibly easy.
The absolute easiest way to save it, is to just add a "Save Face Model ReActor" node right into the workflow above. As you can see, the face swap node had a "Face_Model" output that we ignored, but now we can connect that to the "Save Face Model ReActor" node, give it a name on the second line (I chose "Sean Connery"), and the next time we run it, the model will be saved for us.


Load and Using Face Models
Using a saved face model is easy, simply replace the node that loaded the face image with the "Load Face Model ReActor" one. There will a drop down list of your saved Face Models. You will need to refresh the browser page (but not restart the server) to see any you just saved:


And that's it! I have attached the three workflows in regular form. The last is also included in API form, which is what we will need for the Firefox image swap that I discuss in the main article:

