Faceswap V2

Take a picture/gif and replace the face in it with a face of your choice. You only need one image of the desired face. No dataset, no training


API

If you're looking for an API, you can choose from your desired programming language.

POST
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 import requests import base64 # Use this function to convert an image file from the filesystem to base64 def image_file_to_base64(image_path): with open(image_path, 'rb') as f: image_data = f.read() return base64.b64encode(image_data).decode('utf-8') # Use this function to fetch an image from a URL and convert it to base64 def image_url_to_base64(image_url): response = requests.get(image_url) image_data = response.content return base64.b64encode(image_data).decode('utf-8') api_key = "YOUR_API_KEY" url = "https://api.segmind.com/v1/faceswap-v2" # Request payload data = { "source_img": image_url_to_base64("https://segmind-sd-models.s3.us-east-1.amazonaws.com/elon.jpg"), # Or use image_file_to_base64("IMAGE_PATH") "target_img": image_url_to_base64("https://segmind-sd-models.s3.amazonaws.com/display_images/faceswapv2_target.jpg"), # Or use image_file_to_base64("IMAGE_PATH") "input_faces_index": 0, "source_faces_index": 0, "face_restore": "codeformer-v0.1.0.pth", "base64": False } headers = {'x-api-key': api_key} response = requests.post(url, json=data, headers=headers) print(response.content) # The response is the generated image
RESPONSE
image/jpeg
HTTP Response Codes
200 - OKImage Generated
401 - UnauthorizedUser authentication failed
404 - Not FoundThe requested URL does not exist
405 - Method Not AllowedThe requested HTTP method is not allowed
406 - Not AcceptableNot enough credits
500 - Server ErrorServer had some issue with processing

Attributes


source_imgimage *

Your face goes here. A closeup shot would be ideal.(image url/base64)


target_imgimage *

The face you want to swap with.(image url/base64)


input_faces_indexstr ( default: 0 )

Index of the input faces: By default the model detects faces in images from 'large' to 'small'.Index of the first detected face is 0. Multiple faces can be selected using a comma (,)

min : 0,

max : 5


source_faces_indexstr ( default: 0 )

Index of the source faces: By default the model detects faces in images from 'large' to 'small'.Index of the first detected face is 0. Multiple faces can be selected using a comma (,)

min : 0,

max : 5


face_restoreenum:str ( default: codeformer-v0.1.0.pth )

which face restore model to use

Allowed values:


base64boolean ( default: 1 )

Base64 encoding of the output image.

To keep track of your credit usage, you can inspect the response headers of each API call. The x-remaining-credits property will indicate the number of remaining credits in your account. Ensure you monitor this value to avoid any disruptions in your API usage.

Faceswap V2

Faceswap v2 based on ReActor, takes an image of a face and replaces it with the face of your choice. ReActor acts as an intermediary, using its understanding of faces to bridge the gap between the source face and the target image, resulting in a seemingly natural face swap. This model is an improvement over the Faceswap model which is based on Roop.

Key Components of Faceswap V2

ReActor leverages pre-existing deep learning models, which are likely pre-trained on extensive datasets of faces. These models have the capability to recognize, analyze, and manipulate facial features.

Utilizing its face detection capabilities, ReActor identifies all faces in the target image, assigning a unique number to each detected face. Once the faces are identified, ReActor creates a mask around each one, effectively isolating the facial region for subsequent manipulation.

The pre-trained models are then put to work to analyze the source face image, extracting key facial features and characteristics. The extracted facial features from the source face are seamlessly blended onto the corresponding masked area in the target image.

The model takes into account factors such as lighting, pose, and perspective to create a final image that is both realistic and cohesive. Furthermore, ReActor offers options for refining the face swap result. This involves tools to correct and enhance facial details and adjust the level of detail or sharpness in the swapped face. This ensures the final result is as accurate and natural-looking as possible.

How to use Faceswap V2

  1. Target face image: This is the image where you want to replace a face.

  2. Source face image: This contains the face you want to swap in.

  3. Face restore: Adjust the face restore parameter to control the sharpness of the final image output. You can choose between Codeformer or GFPGAN for further enhancing the face in the image output.

*Please note, this model does not support GIF or Video, therefore the target face image should be a static image only.