This is a fork of inswapper project by haofanwang modified to my needs.
- Moved CodeFormer to a Git submodule. No need to clone it separately.
- Added Bye-lemon's for ok py-lmdb. No more
Building py-lmdb from source on Windows requires the "patch-ng" python module
error on newer python versions.
git clone https://github.com/tinytengu/inswapper.git
cd inswapper
python3 -m venv venv
source venv/bin/activate
pip install ./py-lmdb/
pip install -r CodeFormer/requirements.txt
pip install -r requirements.txt
pip install onnxruntime-gpu
Inswapper requires a Face Swap Model to run. You can download it from the release page. To obtain better result, it is highly recommended to improve image quality with face restoration model. Here, we use CodeFormer. You can finish all as following, required models will be downloaded automatically when you first run the inference.
wget -O ./checkpoints/inswapper_128.onnx https://github.com/facefusion/facefusion-assets/releases/download/models/inswapper_128.onnx
from swapper import *
source_img = [Image.open("./data/man1.jpeg"),Image.open("./data/man2.jpeg")]
target_img = Image.open("./data/mans1.jpeg")
model = "./checkpoints/inswapper_128.onnx"
result_image = process(source_img, target_img, -1, -1, model)
result_image.save("result.png")
To improve to quality of face, we can further do face restoration as shown in the full script.
python swapper.py \
--source_img="./data/man1.jpeg;./data/man2.jpeg" \
--target_img "./data/mans1.jpeg" \
--face_restore \
--background_enhance \
--face_upsample \
--upscale=2 \
--codeformer_fidelity=0.5
You will obtain the exact result as above.