Deepfake detection across generations: MesoNet to ViT
Nine detectors from 18K-parameter MesoNet variants to fine-tuned Xception and ViT-B/16, benchmarked across GAN-era, diffusion, and held-out forgeries.
What it is
A deep-learning course project at the University of South Florida, Spring 2026, with two collaborators. The question was how far compact convolutional detectors can go against modern deepfakes, and whether anything trained on one generation of forgery survives contact with the next.
The repository is on GitHub at ryypow/deepfake-detection-CNN, with the IEEE-format paper, result files, and figures.
What was built
Nine architectures share one PyTorch training and evaluation pipeline, selected by a single model flag:
- MesoNet-family models trained from scratch: Meso4, MesoInception4, MesoInception4 with CBAM attention, an experimental CBAM variant, and two Meso-Xception hybrids, all between 18K and 45K parameters.
- Fine-tuned Xception at about 23M parameters and ViT-B/16 at about 86M.
- LVNet, a 62M-parameter locate-and-verify two-stream model.
My part was the MesoInception4 and CBAM models, the CBAM module with its Grad-CAM cache, the seventeen-run ablation, the cross-dataset evaluation pipeline, and assembling the diffusion dataset.
What we found
Within FaceForensics++, the compact MesoInception4 with CBAM reached 0.810 AUC, against 0.975 for fine-tuned Xception and 0.943 for ViT-B/16. The ablation showed augmentation and batch normalisation as the dominant factors: no augmentation cost 23.3 points, CBAM contributed 4.8, and JPEG augmentation 2.5.
Across generations the picture changed. Models trained on GAN-era forgeries scored between 0.47 and 0.50 AUC on diffusion fakes, and the reverse held too. Even the fine-tuned foundation models only reached 0.566 to 0.644 on the held-out Celeb-DF v2 set. A diffusion-to-diffusion score of 0.994 is flagged in the paper as likely inflated by how that dataset was built.
Status
Complete, March 2026. Datasets were FaceForensics++ at about 16K frames, DiFF and DeepFakeFace at about 7.6K combined, and Celeb-DF v2 at about 16.5K, all as 256 by 256 MTCNN face crops.