You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
3.7 KiB
Markdown
120 lines
3.7 KiB
Markdown
---
|
|
layout: page
|
|
title: Features
|
|
permalink: /features/
|
|
---
|
|
|
|
+ **Face Unit Concept**: Similar to controlNet, the program introduces the concept of a face unit. You can configure up to 10 units (3 units are the default setting) in the program settings (sd).
|
|
|
|

|
|
|
|
+ **Vladmantic and a1111 Support**
|
|
|
|
+ **Batch Processing**
|
|
|
|
+ **Inpainting**: supports "only masked" and mask inpainting.
|
|
|
|
+ **Performance Improvements**: The overall performance of the software has been enhanced.
|
|
|
|
+ **FaceSwapLab Tab** providing various tools.
|
|
|
|

|
|
|
|
+ **FaceSwapLab Settings**: FaceSwapLab settings are now part of the sd settings. To access them, navigate to the sd settings section.
|
|
|
|

|
|
|
|
+ **Face Reuse Via Checkpoints**: The FaceTools tab now allows creating checkpoints, which facilitate face reuse. When a checkpoint is used, it takes precedence over the reference image, and the reference source image is discarded.
|
|
|
|

|
|

|
|
|
|
+ **Gender Detection**: The program can now detect gender based on faces.
|
|
|
|

|
|
|
|
+ **Face Combination (Blending)**: Multiple versions of a face can be combined to enhance the swapping result. This blending happens during checkpoint creation.
|
|
|
|

|
|

|
|
|
|
+ **Preserve Original Images**: You can opt to keep original images before the swapping process.
|
|
|
|

|
|
|
|
+ **Multiple Face Versions for Replacement**: The program allows the use of multiple versions of the same face for replacement.
|
|
|
|

|
|
|
|
+ **Face Similarity and Filtering**: You can compare faces against the reference and/or source images.
|
|
|
|

|
|
|
|
+ **Face Comparison**: face comparison feature.
|
|
|
|

|
|
|
|
+ **Face Extraction**: face extraction with or without upscaling.
|
|
|
|

|
|
|
|
+ **Improved Post-Processing**: codeformer, gfpgan, upscaling.
|
|
|
|

|
|
|
|
+ **Post Inpainting**: This feature allows the application of image-to-image inpainting specifically to faces.
|
|
|
|

|
|

|
|
|
|
+ **Upscaled Inswapper**: The program now includes an upscaled inswapper option, which improves results by incorporating upsampling, sharpness adjustment, and color correction before face is merged to the original image.
|
|
|
|

|
|
|
|
|
|
+ **API with typing support** :
|
|
|
|
```python
|
|
import base64
|
|
import io
|
|
import requests
|
|
from PIL import Image
|
|
from client_utils import FaceSwapRequest, FaceSwapUnit, PostProcessingOptions, FaceSwapResponse, pil_to_base64
|
|
|
|
address = 'http:/127.0.0.1:7860'
|
|
|
|
# First face unit :
|
|
unit1 = FaceSwapUnit(
|
|
source_img=pil_to_base64("../../references/man.png"), # The face you want to use
|
|
faces_index=(0,) # Replace first face
|
|
)
|
|
|
|
# Second face unit :
|
|
unit2 = FaceSwapUnit(
|
|
source_img=pil_to_base64("../../references/woman.png"), # The face you want to use
|
|
same_gender=True,
|
|
faces_index=(0,) # Replace first woman since same gender is on
|
|
)
|
|
|
|
# Post-processing config :
|
|
pp = PostProcessingOptions(
|
|
face_restorer_name="CodeFormer",
|
|
codeformer_weight=0.5,
|
|
restorer_visibility= 1)
|
|
|
|
# Prepare the request
|
|
request = FaceSwapRequest (
|
|
image = pil_to_base64("test_image.png"),
|
|
units= [unit1, unit2],
|
|
postprocessing=pp
|
|
)
|
|
|
|
|
|
result = requests.post(url=f'{address}/faceswaplab/swap_face', data=request.json(), headers={"Content-Type": "application/json; charset=utf-8"})
|
|
response = FaceSwapResponse.parse_obj(result.json())
|
|
|
|
for img, info in zip(response.pil_images, response.infos):
|
|
img.show(title = info)
|
|
|
|
|
|
``` |