tinytengu / inswapper

One-click Face Swapper and Restoration powered by insightface 🔥

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

inswapper

This is a fork of inswapper project by haofanwang modified to my needs.

Changes

  • 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.

Installation

0. Clone this repository

git clone https://github.com/tinytengu/inswapper.git
cd inswapper

1. Activate a Python virtual environment

python3 -m venv venv
source venv/bin/activate

2. Install py-lmdb

pip install ./py-lmdb/

3. CodeFormer dependencies

pip install -r CodeFormer/requirements.txt

4. Inswapper dependencies

pip install -r requirements.txt

5. (Optional) Onnxruntime GPU support

pip install onnxruntime-gpu

Download Checkpoints

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

Quick Inference

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.

About

One-click Face Swapper and Restoration powered by insightface 🔥


Languages

Language:Python 100.0%