Giter VIP home page Giter VIP logo

faceswap_gl's Introduction

faceswap_gl

Face swap using Python + OpenGL

Demo gif

This implementation finds facial landmarks on both the source and destination images, and generates a texture to be used on a 3D model of the face. This Model is then positioned over the destination image using the landmarks.

Source Destination Texture 3D face Result
Source image Destination image Texture generated from source image Texture applied to 3D model positioned according to the face on the destination image Face swap result

Installation

Clone the repo

git clone https://github.com/ibonn/faceswap_gl.git

Install required modules

cd faceswap_gl/
pip install -r requirements.txt

Usage

Basic usage

python swap.py -s <SRC_PATH> -d <DST_PATH> -o <OUT_PATH>

More options:

  • -s/--src: Path to the source image
  • -d/--dst: Path to the destination image/video
  • -o/--output: Output path
  • -t/--texture: Size of the texture. The lower the value the faster the program starts (but the source face resolution is lower). Defaults to 256px
  • -b/--border: Padding size. Not implemented yet
  • -m/--mask: Output a video with the mask

Example:

python swap.py -s tomhanks.jpg -d dicaprio.mp4 -o out.mp4 -t 1024

faceswap_gl's People

Contributors

ibonn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

faceswap_gl's Issues

Convert to opengl es for android

Hi, do you have any idea to translate your logic into opengl es ( for porting your work into android)

I understand that your logic contains of 4 main parts

  1. Extract landmarks from src image
  2. Warp src face into src texture using opencv affine transform
  3. Extract landmark from dst image and using opengl to convert src texture into dst texture
  4. Blend dst texture to dst image on face region Using opencv clone

The main step of using opengl is step 3 and it used opengl not opengl es
The similar issue was here
https://stackoverflow.com/questions/22288215/porting-opengl-glbegin-to-opengl-es

Do you have any idea to do this task. I am the beginer of opengl, and I am trying to understand simple filter with opengl es on 2d image. But here are the logic with 3d texture

If there are two face target ?

Hello sorry if this conatins any mistake

Is there way to replace in this case?
In the src video i have two faces

how to set the target?

thanks

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.