roop
Roop, the bare-bones face swap — and why you'll probably want the Improved one
- image
- reference_image
- IMAGE
This roop node is the stripped-down half of the ComfyUI roop pack: just the face-swap inputs from the original A1111 script, nothing else. Feed it an image, feed it a reference face, and it copies the reference identity onto the target face as a post-process step - the same pixel-level swap that made roop a household name in this hobby. It's not generative like InstantID or PuLID; it doesn't influence how the image is drawn, it fixes the face afterward. That makes it fast, dead simple, and great for stamping a consistent likeness across a whole batch of frames.
What's actually on the node
- image - the target whose face gets replaced.
- reference_image - the face to swap in.
- swap_model - dropdown of
.onnx/.pthmodels in the pack'smodels/roopfolder (after install,inswapper_128.onnx). - faces_index - which target face(s) to swap, comma-separated from 0 (
"0,1"). - reference_faces_index - which face in the reference to use.
- console_logging_level - 0 to 2; set to 2 to see what the detector is finding.
Output: one IMAGE, same batch size as the input, ready for VAE decode or save.
The honest take
RoopImproved is a strict superset of this node - same engine, same inputs, plus the face_order / reverse_order controls that decide how faces get numbered when there's more than one. This minimal version hardcodes that to left-to-right. So honestly? Just use RoopImproved. The only reasons to reach for plain roop are replicating a tutorial exactly or preferring the tiniest possible interface. Neither is a strong reason.
Install and gotchas
Same as its big sibling - this is one pack. ComfyUI Manager (search "ComfyUI roop") or:
cd ComfyUI/custom_nodes
git clone https://github.com/ssitu/ComfyUI_roop
python install.py # or install.bat on Windows portable
Then restart. Expect ~850 MB of model downloads (the inswapper plus InsightFace's buffalo_l), and on Windows the README calls for Visual Studio C++ Build Tools because insightface==0.7.3 predates the version that dropped the build requirement. If a swap silently does nothing, no face was detected - set logging to 2 and watch the console. If you want a maintained, more capable successor with face restore and upscaling, the community's moved on to ReActor. But the original roop still works, and if all you need is one clean face swap, it'll do it before you finish reading this sentence.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| reference_image | IMAGE | — | |
| swap_model | COMBO | 0 options: | |
| faces_index | STRING | 0 | — |
| reference_faces_index | STRING | 0 | — |
| console_logging_level | COMBO | 3 options: 0, 1, 2 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |