prithivMLmods/OpenDeepfake-Preview
Viewer • Updated • 20k • 270 • 3
How to use rahulshendre/deepfake-detector-model-v1 with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("image-classification", model="rahulshendre/deepfake-detector-model-v1")
pipe("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/parrots.png") # Load model directly
from transformers import AutoProcessor, AutoModelForImageClassification
processor = AutoProcessor.from_pretrained("rahulshendre/deepfake-detector-model-v1")
model = AutoModelForImageClassification.from_pretrained("rahulshendre/deepfake-detector-model-v1")
deepfake-detector-model-v1is a vision-language encoder model fine-tuned from google/siglip-base-patch16-512 for binary deepfake image classification. It is trained to detect whether an image is real or generated using synthetic media techniques. The model uses theSiglipForImageClassificationarchitecture.
Experimental
Classification Report:
precision recall f1-score support
Fake 0.9718 0.9155 0.9428 10000
Real 0.9201 0.9734 0.9460 9999
accuracy 0.9444 19999
macro avg 0.9459 0.9444 0.9444 19999
weighted avg 0.9459 0.9444 0.9444 19999
The model classifies an image as one of the following:
Class 0: fake
Class 1: real
pip install -q transformers torch pillow gradio hf_xet
import gradio as gr
from transformers import AutoImageProcessor, SiglipForImageClassification
from PIL import Image
import torch
# Load model and processor
model_name = "prithivMLmods/deepfake-detector-model-v1"
model = SiglipForImageClassification.from_pretrained(model_name)
processor = AutoImageProcessor.from_pretrained(model_name)
# Updated label mapping
id2label = {
"0": "fake",
"1": "real"
}
def classify_image(image):
image = Image.fromarray(image).convert("RGB")
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
probs = torch.nn.functional.softmax(logits, dim=1).squeeze().tolist()
prediction = {
id2label[str(i)]: round(probs[i], 3) for i in range(len(probs))
}
return prediction
# Gradio Interface
iface = gr.Interface(
fn=classify_image,
inputs=gr.Image(type="numpy"),
outputs=gr.Label(num_top_classes=2, label="Deepfake Classification"),
title="deepfake-detector-model",
description="Upload an image to classify whether it is real or fake using a deepfake detection model."
)
if __name__ == "__main__":
iface.launch()
deepfake-detector-model is designed for:
Base model
google/siglip2-base-patch16-512