Face swapSelf-hosted InsightFace API. Runs locally; images are processed in memory and not stored.

Checking server…

Source face

Drop a photo of the personThe face in this photo is copied onto the target.

Target photo

Drop the photo to editFaces here are replaced with the source face.

Result

The result appears here. Drag across it to compare with the original.

Same request with curl updates as you change options

curl -X POST http://localhost:8000/v1/swap \
  -F [email protected] \
  -F [email protected] \
  -F source_face_index=0 \
  -F target_face_index=-1 \
  -o result.jpg

Endpoints OpenAPI docs

GET /v1/healthModel status and execution provider.
POST /v1/detectField image. Returns faces with bbox, score, age, gender. Add ?draw=true for an annotated JPEG.
POST /v1/swapFields source, target, optional source_face_index, target_face_index (-1 = all), format (jpeg or json).
AuthIf the server has API_KEY set, send X-API-Key on every request.