Spaces:
Running
Running
import gradio as gr | |
import torch | |
import torch.nn.functional as F | |
from facenet_pytorch import MTCNN, InceptionResnetV1 | |
import os | |
import numpy as np | |
from PIL import Image | |
import zipfile | |
import cv2 | |
from pytorch_grad_cam import GradCAM | |
from pytorch_grad_cam.utils.model_targets import ClassifierOutputTarget | |
from pytorch_grad_cam.utils.image import show_cam_on_image | |
from transformers import pipeline | |
with zipfile.ZipFile("examples.zip","r") as zip_ref: | |
zip_ref.extractall(".") | |
pipe = pipeline(model="not-lain/deepfake",trust_remote_code=True) | |
EXAMPLES_FOLDER = 'examples' | |
examples_names = os.listdir(EXAMPLES_FOLDER) | |
examples = [] | |
for example_name in examples_names: | |
example_path = os.path.join(EXAMPLES_FOLDER, example_name) | |
label = example_name.split('_')[0] | |
example = { | |
'path': example_path, | |
'label': label | |
} | |
examples.append(example) | |
np.random.shuffle(examples) # shuffle | |
def predict(input_image:Image.Image, true_label:str): | |
out = pipe.predict(input_image) | |
confidences,face_with_mask = out["confidences"], out["face_with_mask"] | |
return confidences, true_label, face_with_mask | |
interface = gr.Interface( | |
fn=predict, | |
inputs=[ | |
gr.Image(label="Input Image", type="filepath"), | |
"text" | |
], | |
outputs=[ | |
gr.Label(label="Class"), | |
"text", | |
gr.Image(label="Face with Explainability") | |
], | |
examples=[[examples[i]["path"], examples[i]["label"]] for i in range(10)] | |
).launch() |