Skip to main content

The minimalist face swapping tool that just works.

Project description

TinyFace

Latest version on PyPI Compatible Python versions.

TinyFace is designed as a lightweight Python library with a simplified command-line interface, making it easy for both developers and users to perform face swaps.

Features

  • Minimalist design: Focuses solely on face swapping with optimized speed and minimal dependencies.
  • Easy-to-use API: Integrate face swapping into your own projects with just a few lines of code.
  • Single and multi-face support: Swap a single face or multiple faces in one go.
  • Command-line tool: Easily perform face swaps directly from the terminal.

Installation

Install tinyface with pip:

pip install tinyface

Usage

import cv2

from tinyface import FacePair, TinyFace

# Load input images
input_img = cv2.imread("input.jpg")
reference_img = cv2.imread("reference.jpg")
destination_img = cv2.imread("destination.jpg")

# Initialize the TinyFace instance
tinyface = TinyFace()

# (Optional) Prepare models (downloads automatically if skipped)
tinyface.prepare()

# Detect faces in the images
faces = tinyface.get_many_faces(input_img)
reference_face = tinyface.get_one_face(reference_img)
destination_face = tinyface.get_one_face(destination_img)

# Swap a single face
output_img = tinyface.swap_face(input_img, reference_face, destination_face)

# Swap multiple faces
output_img = tinyface.swap_faces(
    input_img,
    face_pairs=[FacePair(reference=reference_face, destination=destination_face)],
)
cv2.imwrite("out.jpg", output_img)

Commands

usage: tinyface swap [-h] -i INPUT -r REFERENCE -d DESTINATION [-s SAVE] [-w WORKERS]

options:
  -h, --help            Show this help message and exit
  -i INPUT, --input INPUT
                        Path to the input image(s)
  -r REFERENCE, --reference REFERENCE
                        Path to the reference face image(s)
  -d DESTINATION, --destination DESTINATION
                        Path to the destination face image(s)
  -s SAVE, --save SAVE  Save path for output image(s)
  -w WORKERS, --workers WORKERS
                        Number of worker threads for parallel processing

Disclaimer

This software is intended to contribute positively to the AI-generated media field, helping artists with tasks like character animation and clothing model creation.

Please use responsibly. If working with real faces, always obtain consent and label deepfakes clearly when sharing. The developers are not responsible for any misuse or legal consequences.

Credits

This project is built upon @henryruhs's work on facefusion. TinyFace retains only the minimal dependencies required for face swapping, optimizing both speed and size.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Note: TinyFace relies on third-party pre-trained models, each with their own licenses and terms.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tinyface-1.0.0.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

tinyface-1.0.0-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

Details for the file tinyface-1.0.0.tar.gz.

File metadata

  • Download URL: tinyface-1.0.0.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.13.0 Darwin/23.6.0

File hashes

Hashes for tinyface-1.0.0.tar.gz
Algorithm Hash digest
SHA256 0511db996df83479a4c25920795e3c766de5c62c5bd7f00a655e8c4f36b0e15b
MD5 df089a1867d52da380e7d85ebd1c286e
BLAKE2b-256 6f262689f8ca07fb4c9ef1b01eb50f58c70c284b289652118d29bb1b6df88f0c

See more details on using hashes here.

File details

Details for the file tinyface-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: tinyface-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 17.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.13.0 Darwin/23.6.0

File hashes

Hashes for tinyface-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 07554177023dc2072eb6812f4e898ac4bf2635ace13a0273efadee2f53120499
MD5 f8cf475be3f3101368a9a94ef11a426a
BLAKE2b-256 7b5df73e3fe331de2dc0ad161c0dea5f65fa991a7bed24df4edc6a3996cfa4ee

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page