Downloads · 30 days
482
0% of all-time downloads
prithivMLmods/open-deepfake-detection
open-deepfake-detection is a image classification model from prithivMLmods. Use it when you need a label for an image. It is set up for transformers. The card lists the license as apache-2.0.
Downloads · 30 days
482
0% of all-time downloads
All-time downloads
108K
Public
Parameters
92.9M
2.1 GB on disk
Likes
8
Public
Click a slice to open those files.
.pt1.4 GB · 55%
From the Hugging Face model README

[!warning] ⚠️ Model Deprecated: model component is no longer recommended for use because it's outdated
open-deepfake-detection is a vision-language encoder model fine-tuned from
siglip2-base-patch16-512for binary image classification. It is trained to detect whether an image is fake or real using the OpenDeepfake-Preview dataset. The model uses theSiglipForImageClassificationarchitecture.
[!note] SigLIP 2: Multilingual Vision-Language Encoders with Improved Semantic Understanding, Localization, and Dense Features https://arxiv.org/pdf/2502.14786
[!important] Experimental Model
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 either:
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/open-deepfake-detection" # Updated model name
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 Detection"),
title="open-deepfake-detection",
description="Upload an image to detect whether it is AI-generated (Fake) or a real photograph (Real), using the OpenDeepfake-Preview dataset."
)
if __name__ == "__main__":
iface.launch()
[!warning] real

[!warning] fake

open-deepfake-detection is designed for: