This is a fine-tuned Vision Transformer (ViT) model for binary image classification to detect deepfake images. The model is based on google/vit-base-patch16-224-in21k and has been fine-tuned on the OpenForensics dataset to distinguish between real and fake (AI-generated/manipulated) images.
Images were preprocessed and transformed using ViTImageProcessor with standard normalization.
1Training Arguments:
2- Batch Size: 24 per device
3- Gradient Accumulation Steps: 1
4- Mixed Precision: FP16
5- Number of Epochs: 10
6- Learning Rate: 3e-5
7- Weight Decay: 0.02
8- Warmup Ratio: 0.08
9- LR Scheduler: Cosine
10- Label Smoothing: 0.05
11- Optimizer: AdamW (default)
1from transformers import ViTImageProcessor, ViTForImageClassification
2from PIL import Image
3import torch
4
5# Load model and processor
6model = ViTForImageClassification.from_pretrained("YOUR_USERNAME/vit-deepfake-detector")
7processor = ViTImageProcessor.from_pretrained("YOUR_USERNAME/vit-deepfake-detector")
8
9# Load and preprocess image
10image = Image.open("path_to_image.jpg")
11inputs = processor(images=image, return_tensors="pt")
12
13# Make prediction
14with torch.no_grad():
15 outputs = model(**inputs)
16 logits = outputs.logits
17 predicted_class = logits.argmax(-1).item()
18
19# Get label
20labels = {0: "real", 1: "fake"}
21print(f"Prediction: {labels[predicted_class]}")
22
23# Get confidence scores
24probabilities = torch.nn.functional.softmax(logits, dim=-1)
25confidence = probabilities[0][predicted_class].item()
26print(f"Confidence: {confidence:.2%}")
1from transformers import pipeline
2
3# Create classification pipeline
4classifier = pipeline("image-classification", model="YOUR_USERNAME/vit-deepfake-detector")
5
6# Predict on single image
7result = classifier("path_to_image.jpg")
8print(result)
9
10# Predict on multiple images
11images = ["image1.jpg", "image2.jpg", "image3.jpg"]
12results = classifier(images)
13for img, result in zip(images, results):
14 print(f"{img}: {result}")
1@misc{vit-deepfake-detector,
2 author = {YOUR_NAME},
3 title = {ViT Deepfake Detection Model},
4 year = {2024},
5 publisher = {HuggingFace},
6 howpublished = {\url{https://huggingface.co/YOUR_USERNAME/vit-deepfake-detector}}
7}
his model is provided for research and educational purposes. Users are responsible for ensuring compliance with applicable laws and ethical guidelines when deploying this model.