File size: 4,122 Bytes
0e09d38
 
8af3596
 
 
 
 
 
 
 
 
 
 
 
 
 
0e09d38
24498f3
 
 
ea29443
 
5de535d
ea29443
 
 
 
 
f65a4c6
 
0e09d38
 
 
 
 
 
 
 
 
 
 
 
 
ea29443
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e85fa60
ea29443
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
---
license: apache-2.0
datasets:
- prithivMLmods/OpenDeepfake-Preview
language:
- en
base_model:
- google/siglip2-base-patch16-512
pipeline_tag: image-classification
library_name: transformers
tags:
- deepfake
- detection
- SigLIP2
- art
- synthetic
---

![1.png](https://cdn-uploads.huggingface.co/production/uploads/65bb837dbfb878f46c77de4c/_04t9LUTuMdTlMqHAONno.png)

# open-deepfake-detection

> open-deepfake-detection is a vision-language encoder model fine-tuned from `siglip2-base-patch16-512` for binary image classification. It is trained to detect whether an image is fake or real using the *OpenDeepfake-Preview* dataset. The model uses the `SiglipForImageClassification` architecture.

> \[!note]
> *SigLIP 2: Multilingual Vision-Language Encoders with Improved Semantic Understanding, Localization, and Dense Features*
> [https://arxiv.org/pdf/2502.14786](https://arxiv.org/pdf/2502.14786)

> \[!important]
Experimental Model 

```py
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
```

![download.png](https://cdn-uploads.huggingface.co/production/uploads/65bb837dbfb878f46c77de4c/KIQGQnaSxrY1F2TQNpRLR.png)

---

## Label Space: 2 Classes

The model classifies an image as either:

```
Class 0: Fake  
Class 1: Real
```

---

## Install Dependencies

```bash
pip install -q transformers torch pillow gradio hf_xet
```

---

## Inference Code

```python
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()
```

---

## Demo Inference

> [!warning]
real

![Screenshot 2025-05-20 at 14-01-01 Deepfake Detection Model.png](https://cdn-uploads.huggingface.co/production/uploads/65bb837dbfb878f46c77de4c/0HPpoJmqIhHMqPo80ZIdc.png)
![Screenshot 2025-05-20 at 14-01-41 Deepfake Detection Model.png](https://cdn-uploads.huggingface.co/production/uploads/65bb837dbfb878f46c77de4c/fHB6TCDTHFI5wI7OBNOPZ.png)

> [!warning]
fake

![Screenshot 2025-05-20 at 14-04-22 Deepfake Detection Model.png](https://cdn-uploads.huggingface.co/production/uploads/65bb837dbfb878f46c77de4c/wNS6sFeGKroHlPvMyDqJe.png)
![Screenshot 2025-05-20 at 14-08-07 Deepfake Detection Model.png](https://cdn-uploads.huggingface.co/production/uploads/65bb837dbfb878f46c77de4c/sKKph7D8MLLhnfjtatnrw.png)

## Intended Use

`open-deepfake-detection` is designed for:

* **Deepfake Detection** – Identify AI-generated or manipulated images.
* **Content Moderation** – Flag synthetic or fake visual content.
* **Dataset Curation** – Remove synthetic samples from mixed datasets.
* **Visual Authenticity Verification** – Check the integrity of visual media.
* **Digital Forensics** – Support image source verification and traceability.