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 Protocol 987).

πŸ“‚ 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:

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support