# One-Class Deepfake Detector ## Model Details - **Architecture**: Hybrid CNN + ViT + FFT Frequency Features - **Training Images**: 50,000 real images only - **Final Radius**: 352.6608 - **Final Loss**: 124397.0862 - **Embedding Dim**: 512 ## How It Works This is a **one-class anomaly detector** using DeepSVDD (Deep Support Vector Data Description). It learns a "hypersphere" around real images in embedding space. Images far from this hypersphere are considered anomalous (fake). ## Usage ```python import torch from PIL import Image import torchvision.transforms as transforms # Load model model_data = torch.load('deepfake_detector_model/deepsvdd_model.pth') # Initialize your model and load weights # model.load_state_dict(model_data['model_state_dict']) # Preprocess image transform = transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) image = Image.open('test.jpg').convert('RGB') image_tensor = transform(image).unsqueeze(0) # Get hypersphere distance with torch.no_grad(): embedding = model(image_tensor) distance = model.get_distance(embedding).item() # Compare to threshold threshold = model_data['radius'].item() * 1.5 is_fake = distance > threshold print(f"Distance: {distance:.4f}, Threshold: {threshold:.4f}, Fake: {is_fake}") ``` ## Files - `deepsvdd_model.pth`: Complete model with center and radius - `encoder.pth`: Encoder weights only - `config.json`: Training configuration - `training_history.json`: Training metrics Generated: 2025-11-28 11:22:17