AI-vs-Deepfake-vs-Real-Siglip2

AI-vs-Deepfake-vs-Real-Siglip2 is an image classification vision-language encoder model fine-tuned from google/siglip2-base-patch16-224 for a single-label classification task. It is designed to distinguish AI-generated images, deepfake images, and real images using the SiglipForImageClassification architecture.

The model categorizes images into three classes:

  • Class 0: "AI" – The image is fully AI-generated, created by machine learning models.
  • Class 1: "Deepfake" – The image is a manipulated deepfake, where real content has been altered.
  • Class 2: "Real" – The image is an authentic, unaltered photograph.

Run with Transformers🤗

!pip install -q transformers torch pillow gradio
import gradio as gr
from transformers import AutoImageProcessor
from transformers import SiglipForImageClassification
from transformers.image_utils import load_image
from PIL import Image
import torch

# Load model and processor
model_name = "prithivMLmods/AI-vs-Deepfake-vs-Real-Siglip2"
model = SiglipForImageClassification.from_pretrained(model_name)
processor = AutoImageProcessor.from_pretrained(model_name)

def image_classification(image):
    """Classifies an image as AI-generated, deepfake, or real."""
    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()
    
    labels = model.config.id2label
    predictions = {labels[i]: round(probs[i], 3) for i in range(len(probs))}
    
    return predictions

# Create Gradio interface
iface = gr.Interface(
    fn=image_classification,
    inputs=gr.Image(type="numpy"),
    outputs=gr.Label(label="Classification Result"),
    title="AI vs Deepfake vs Real Image Classification",
    description="Upload an image to determine whether it is AI-generated, a deepfake, or a real image."
)

# Launch the app
if __name__ == "__main__":
    iface.launch()
Classification report:

              precision    recall  f1-score   support

          AI     0.9794    0.9955    0.9874      1334
    Deepfake     0.9931    0.9782    0.9856      1333
        Real     0.9992    0.9977    0.9985      1333

    accuracy                         0.9905      4000
   macro avg     0.9906    0.9905    0.9905      4000
weighted avg     0.9906    0.9905    0.9905      4000

Intended Use:

The AI-vs-Deepfake-vs-Real-Siglip2 model is designed to classify images into three categories: AI-generated, deepfake, or real. It helps in identifying whether an image is fully synthetic, altered through deepfake techniques, or an unaltered real image.

Potential Use Cases:

  • Deepfake Detection: Identifying manipulated deepfake content in media.
  • AI-Generated Image Identification: Distinguishing AI-generated images from real or deepfake images.
  • Content Verification: Supporting fact-checking and digital forensics in assessing image authenticity.
  • Social Media and News Filtering: Helping platforms flag AI-generated or deepfake content.
Downloads last month
0
Safetensors
Model size
92.9M params
Tensor type
F32
·
Inference Providers NEW
This model is not currently available via any of the supported Inference Providers.

Model tree for prithivMLmods/AI-vs-Deepfake-vs-Real-Siglip2

Finetuned
(5)
this model

Space using prithivMLmods/AI-vs-Deepfake-vs-Real-Siglip2 1

Collection including prithivMLmods/AI-vs-Deepfake-vs-Real-Siglip2