import gradio as gr from transformers import ViTForImageClassification, ViTImageProcessor from PIL import Image import torch MODEL_NAME = "prithivMLmods/Deep-Fake-Detector-v2-Model" processor = ViTImageProcessor.from_pretrained(MODEL_NAME) model = ViTForImageClassification.from_pretrained(MODEL_NAME) def classify_image(image): image = Image.fromarray(image).convert("RGB") inputs = processor(images=image, return_tensors="pt") with torch.no_grad(): outputs = model(**inputs) probs = torch.nn.functional.softmax(outputs.logits, dim=-1)[0] labels = model.config.id2label return { labels[i]: float(probs[i]) for i in range(len(probs)) } demo = gr.Interface( fn=classify_image, inputs=gr.Image(type="numpy"), outputs=gr.Label(num_top_classes=2, label="Prediction (Real vs Deepfake)"), title="Deepfake Detector (ViT)", description="Upload an image — model classifies it as Real or Deepfake." ) if __name__ == "__main__": demo.launch()