MFFI: Model Checkpoints for Face Forgery Detection
Public weights and experiment artifacts for the project:
Benchmarking Spatial, Spectral, and Self-Supervised Cues for Face Forgery Detection under Realistic Degradation
π Official Codebase: github.com/lucasdocunha/tcc
π Overview
This repository hosts the official pre-trained and fine-tuned model checkpoints (best.pth) and experiment configurations (run_config.json) evaluated across the FaceForensics++ (clean and corrupted test_d) and Celeb-DF v2 benchmarks.
Included Models and Representations:
- 6 Model Families:
- ResNet-18 (Residual CNN)
- MobileNetV3-Large (Efficient Mobile CNN with Squeeze-and-Excitation)
- Xception (Depthwise Separable CNN)
- ViT-B/16 (Vision Transformer, ImageNet-21k)
- CLIP-ViT-B/16 (Multimodal Vision Transformer, OpenAI)
- DINO (ConvNeXt-Base) (Self-supervised distillation via DINOv3 LVD-1689M)
- Mixture of Experts (MoE) (Standard and Frequency-specialized MoE architectures)
- 7 Spatial & 2D-FFT Spectral Modes:
none: Spatial domain RGB (3 channels)magnitude: FFT Log-Magnitude $\log(|F| + 1)$ (1 channel)phase: FFT Phase angle $[0, 1]$ (1 channel)complex: Real and Imaginary components (2 channels)concat: Spatial RGB concatenated with FFT Magnitude (4 channels)frequency_3: High-pass filtered magnitude (1 channel)concat_frequency: Multi-domain RGB + Magnitude + Phase + HighPass + LowPass (7 channels)
- 5 Statistical Seeds:
42,123,2024,7,2025(+ Robust Protocol987).
π Repository Structure
All weights are organized hierarchically:
models/
βββ <model_family>/ # e.g., clip, dino, mobilenet, resnet, vit, xception, moe
βββ <fourier_mode>/ # e.g., none, magnitude, phase, complex, concat, frequency_3, concat_frequency
βββ <regime>/ # finetune or scratch
βββ seed_<seed>/ # e.g., seed_42, seed_123, seed_987
βββ weights/
β βββ best.pth # Best checkpoint saved by validation ROC-AUC
βββ results/
β βββ run_config.json # Exact hyperparameters and run metadata
βββ plots/
βββ roc_auc.png # Training/validation ROC-AUC curves
π How to Download & Load Weights
Option 1: Using huggingface_hub in Python
import torch
from huggingface_hub import hf_hub_download
# Download best.pth for CLIP (none mode, finetune, seed 42)
checkpoint_path = hf_hub_download(
repo_id="lucasoc/MFFI-Models",
filename="models/clip/none/finetune/seed_42/weights/best.pth"
)
# Load state dict
state_dict = torch.load(checkpoint_path, map_location="cpu", weights_only=True)
print(f"Loaded {len(state_dict)} tensors successfully!")
Option 2: Clone via Git LFS
git lfs install
git clone https://huggingface.co/lucasoc/MFFI-Models
π Citation & Code
For training scripts, data preparation, evaluation pipelines, and reproducing the benchmark tables, visit the official GitHub repository:
- Repository: https://github.com/lucasdocunha/tcc
- License: MIT License
Inference Providers NEW
This model isn't deployed by any Inference Provider. π Ask for provider support