1.png

AIorNot-SigLIP2

AIorNot-SigLIP2 is a vision-language encoder model fine-tuned from google/siglip2-base-patch16-224 for binary image classification. It is trained to detect whether an image is generated by AI or is a real photograph using the SiglipForImageClassification architecture.

SigLIP 2: Multilingual Vision-Language Encoders with Improved Semantic Understanding, Localization, and Dense Features https://arxiv.org/pdf/2502.14786

Classification Report:
              precision    recall  f1-score   support

        Real     0.9215    0.8842    0.9025      8288
          AI     0.9100    0.9396    0.9246     10330

    accuracy                         0.9149     18618
   macro avg     0.9158    0.9119    0.9135     18618
weighted avg     0.9151    0.9149    0.9147     18618

download (2).png


Label Space: 2 Classes

The model classifies an image as either:

Class 0: Real
Class 1: AI

Install Dependencies

pip install -q transformers torch pillow gradio hf_xet

Inference Code

import gradio as gr
from transformers import AutoImageProcessor, SiglipForImageClassification
from PIL import Image
import torch

# Load model and processor
model_name = "prithivMLmods/AIorNot-SigLIP2"  # Replace with your model path
model = SiglipForImageClassification.from_pretrained(model_name)
processor = AutoImageProcessor.from_pretrained(model_name)

# Label mapping
id2label = {
    "0": "Real",
    "1": "AI"
}

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="AI or Real Detection"),
    title="AIorNot-SigLIP2",
    description="Upload an image to classify whether it is AI-generated or Real."
)

if __name__ == "__main__":
    iface.launch()

Intended Use

AIorNot-SigLIP2 is useful in scenarios such as:

  • AI Content Detection – Identify AI-generated images for social platforms or media verification.
  • Digital Media Forensics – Assist in distinguishing synthetic from real-world imagery.
  • Dataset Filtering – Clean datasets by separating real photographs from AI-synthesized ones.
  • Research & Development – Benchmark performance of image authenticity detectors.
Downloads last month
5
Safetensors
Model size
92.9M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for prithivMLmods/AIorNot-SigLIP2

Finetuned
(90)
this model

Dataset used to train prithivMLmods/AIorNot-SigLIP2

Collection including prithivMLmods/AIorNot-SigLIP2