Downloads · 30 days
0
viktorahnstrom/xade-deepfake-detector
xade-deepfake-detector is a machine learning model from viktorahnstrom. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as mit.
EfficientNet-B4 model trained for deepfake detection as part of the XADE (eXplainable Automated Deepfake Evaluation) thesis project at Jönköping University, 2026.
Downloads · 30 days
0
Access
Public
Updated Mar 31, 2026
Repo size
383 MB
Likes
0
Public
Click a slice to open those files.
.pt192 MB · 100%
From the Hugging Face model README
EfficientNet-B4 model trained for deepfake detection as part of the XADE (eXplainable Automated Deepfake Evaluation) thesis project at Jönköping University, 2026.
| Dataset | Manipulation Type | AUC |
|---|---|---|
| 140k Real-Fake (training dist.) | GAN / StyleGAN synthesis | 0.9992 |
| Fake-Vs-Real Hard | StyleGAN2 harder cases | 0.8948 |
| FF++ derived | Neural face swap | 0.8789 |
| CIPLAB | Photoshop manipulation | 0.7563 |
| Celeb-DF v2 | High-quality face swap | 0.8049 |
EfficientNet-B4 (ImageNet pretrained, last 30% unfrozen)
└── Custom classifier head:
Dropout(0.5)
Linear(in_features → 512)
ReLU
BatchNorm1d(512)
Dropout(0.4)
Linear(512 → 2)
import torch
from huggingface_hub import hf_hub_download
from torchvision.models import efficientnet_b4
import torch.nn as nn
# Download model
model_path = hf_hub_download(
repo_id="viktorahnstrom/xade-deepfake-detector",
filename="best_model.pt"
)
# Load checkpoint
checkpoint = torch.load(model_path, map_location="cpu", weights_only=False)
print(f"Trained for {checkpoint['epoch']} epochs")
print(f"Classes: {checkpoint['class_names']}") # ['fake', 'real']
@misc{xade2026,
author = {Viktor Ahnström and Viktor Carlsson},
title = {XADE: Cross-Platform Explainable Deepfake Detection
Using Vision-Language Models},
year = {2026},
institution = {Jönköping University},
howpublished = {\url{https://huggingface.co/viktorahnstrom/xade-deepfake-detector}}
}