Nodes/SpicyAPI/Face Swap · Image Editing
ComfyUI Node

Face Swap · Image Editing

The thirteen-cent swap, and what it won't do

By spicyapi-ai·Created 21 days ago·Updated 2 days ago· 2
Face Swap · Image Editing
  • image_url
  • reference_image_url
  • images
  • task id
◄face_mapping►
◄stylerealistic►
◄face_enhancefalse►
◄seed0►

The one you'll actually run most

At $0.013 per image this is the default face swap of the three SpicyAPI ships - the same price as Head Swap, and twelve times cheaper than Plus or Pro. It transfers only the facial features from a reference photo onto a target image, and it deliberately keeps the target's head shape, hair, pose and background. That's the correct division of labour for the common job: you like the photo, you want a different face in it.

It's also the most controllable of the three. Where Pro hard-codes one good answer and Plus adds a skin-tone pass, v1 gives you a style selector, a multi-face mapping field and a seed - which makes it the right node when you're iterating rather than delivering.

How it works

Two image sockets go up, the pack uploads them, spicyapi/face-swap-v1/edit returns the swapped image, and you get a ComfyUI IMAGE plus a task id. Under the hood this is the ArcFace-embedding family of techniques - the same recognition backbone that sits under IP-Adapter FaceID, InstantID, PuLID and ReActor locally - delivered as a black box. Locally that stack means InsightFace plus a swapper and a pile of dependency archaeology; here it's two sockets and a cent and a bit.

Inputs

image_url (IMAGE) - the target. The face of the person in this image is the one replaced.

reference_image_url (IMAGE) - the reference face. Facial features are transferred from here onto the target.

style - realistic (default), beautify, lossless. Honest reading: realistic keeps natural skin tone and texture and is right almost always; beautify smooths and brightens, which is what you want for social output and what you'll curse if you wanted texture; lossless holds on to the most facial detail, and is the one to try when a swap looks slightly mushy.

face_mapping (JSON) - multi-person swaps. A list of objects with "reference_face_index" and "target_face_index", 0-based in detection order. Leave it empty to swap a single face. In practice you run a swap once, look at the result, and only reach for this when it picked the wrong person of four.

face_enhance (default off) - an extra sharpening/detail pass on the swapped face. Same trade as everywhere: useful on soft targets, texture-destroying on clean ones.

seed - fixed by default, with control after generate.

Outputs: images (IMAGE), task id (STRING).

Install

Manager → search SpicyAPI, or:

cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi

Restart; nothing else to do. No dependency install, no checkpoint download, no GPU - the pack's dependency list is empty and everything executes on SpicyAPI's servers. Needs Python 3.10+ and a ComfyUI with the V3 node API. Paste a key into Settings > SpicyAPI (or export SPICY_API_KEY), restart once so the node list mirrors your account, and set a Max cost per run ceiling.

What it won't do

  • Change the head, hair or lighting. That's by design - and it's why Head Swap exists as a separate node at the same price. If the hair needs to match the new face, you want that one.
  • Fix a skin-tone mismatch. A pale reference on a deeply tanned target can look pasted. That's exactly what Face Swap Plus is for, at $0.16.
  • Read your mind about which face. With multiple people in frame, verify with the preview or use face_mapping.
  • Guarantee a repeat. The seed helps; it isn't a promise of bit-identical pixels across provider updates.
  • Make it legal. Likeness rights and the platform rules that follow them are a separate problem from the node, and there's no consent check built into any of these endpoints.
CategorySpicyAPI/Image/Tools

Inputs (6)

NameTypeDefaultDescription
image_urlIMAGETarget image. The face of the person in this image is the one that gets replaced.
reference_image_urlIMAGEReference face image. The facial features from this image are transferred onto the target.
face_mappingSTRINGMulti-person swap: which face in the reference image goes onto which face in the target, one entry per face. Faces are numbered from 0 in detection order. Leave it out to swap a single face. JSON. A list of objects with "reference_face_index", "target_face_index".
styleCOMBOrealisticFinish applied to the swapped face: realistic keeps natural skin tone and texture, beautify smooths and brightens the skin, lossless holds on to the most facial detail.
face_enhanceBOOLEANfalseRun a face-enhancement pass on the swapped face for a sharper, more detailed result.
seedINT00–2147483647Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed.

Outputs (2)

NameTypeDescription
imagesIMAGE—
task idSTRINGThe SpicyAPI task id, for the console logs or support.