|
!pip install insightface |
|
------------------------------- |
|
|
|
|
|
from huggingface_hub import loggin |
|
|
|
loggin(token="") |
|
----------------------------------------------- |
|
|
|
|
|
from huggingface_hub import hf_hub_download |
|
|
|
repo_id = "AshanGimhana/NewFWModelV1" |
|
model_filename = "inswapperFTV1Model.onnx" |
|
|
|
-------------------------------------------------- |
|
|
|
|
|
model_path = hf_hub_download(repo_id=repo_id, filename=model_filename) |
|
|
|
---------------------------------------------------------------------------- |
|
|
|
|
|
model = "copy path and paste" |
|
|
|
---------------------------------------------------------------------------- |
|
|
|
from matplotlib import pyplot as plt |
|
import cv2 |
|
import insightface |
|
import numpy as np |
|
----------------------------------------------------------------------------- |
|
|
|
providers = ["CPUExecutionProvider"] |
|
----------------------------------------------------------------------------- |
|
|
|
target_frame = cv2.imread('Enter reference image path') |
|
src_frame = cv2.imread("Enter user image path") |
|
fig = plt.figure() |
|
ax1 = fig.add_subplot(1,2,1) |
|
ax1.imshow(cv2.cvtColor(src_frame, cv2.COLOR_BGR2RGB)) |
|
ax2 = fig.add_subplot(1,2,2) |
|
ax2.imshow(cv2.cvtColor(target_frame, cv2.COLOR_BGR2RGB)) |
|
plt.show() |
|
------------------------------------------------------------------------------ |
|
|
|
FACE_ANALYSER = insightface.app.FaceAnalysis( |
|
name="buffalo_l", |
|
root=".", providers=providers,allowed_modules=["landmark_3d_68", "landmark_2d_106","detection","recognition"] |
|
) |
|
FACE_ANALYSER.prepare( |
|
ctx_id=0, |
|
det_size=(640, 640), |
|
) |
|
---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
|
src_faces = FACE_ANALYSER.get(src_frame) |
|
target_faces = FACE_ANALYSER.get(target_frame) |
|
fig = plt.figure() |
|
ax1 = fig.add_subplot(1,2,1) |
|
rimg = FACE_ANALYSER.draw_on(src_frame,src_faces) |
|
ax1.imshow(cv2.cvtColor(rimg, cv2.COLOR_BGR2RGB)) |
|
ax1 = fig.add_subplot(1,2,2) |
|
rimg = FACE_ANALYSER.draw_on(target_frame,target_faces) |
|
ax1.imshow(cv2.cvtColor(rimg, cv2.COLOR_BGR2RGB)) |
|
plt.show() |
|
|
|
---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
|
model_swap_insightface = insightface.model_zoo.get_model(model, providers=providers) |
|
|
|
---------------------------------------------------------------------------------------------------- |
|
|
|
img_fake = model_swap_insightface.get(img = target_frame, target_face=FACE_ANALYSER.get(target_frame)[0], source_face=src_faces[0], paste_back=True) |
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
|
plt.imshow(cv2.cvtColor(img_fake, cv2.COLOR_BGR2RGB)) |
|
|
|
------------------------------------------------------------------------ |