RA-Det: Robustness Asymmetry Detection for AI-Generated Images

Official pretrained checkpoint for RA-Det (ICML 2026) — a behavior-driven detector that decides whether an image is real or AI-generated by examining how it behaves under controlled perturbations, rather than how it looks.

📄 Paper: RA-Det: Towards Universal Detection of AI-Generated Images via Robustness Asymmetry (arXiv:2603.01544) 💻 Code: github.com/dongdongunique/RA-Det 🏛️ Venue: ICML 2026


TL;DR

Most detectors hunt for visual artifacts. Modern generators (Stable Diffusion, DALL·E, GANs) increasingly erase those artifacts, so appearance-based methods generalize poorly. RA-Det instead exploits a robustness asymmetry:

  • Natural images keep a stable semantic representation under small perturbations.
  • AI-generated images drift much more under the same perturbations.

RA-Det learns a perturbation operator that amplifies this gap, then classifies images from the resulting behavior — making it data-agnostic, model-agnostic, and transferable to unseen generators.


How it works

RA-Det combines two components:

  1. Differential Robustness Probing (DRP) — a learnable U-Net that applies a bounded perturbation (ε = 16/255) to the input, calibrated to maximally separate real vs. generated images in embedding space.
  2. Multi-Branch Detector — aggregates three complementary cues:
    • Semantic features — from a frozen DINOv3 ViT-L/16 foundation model (1024-d embeddings).
    • Discrepancy features — distance, similarity, and covariance statistics between the clean and DRP-perturbed embeddings (the core of the robustness-asymmetry signal).
    • Low-level residual features — capture high-frequency / forensic artifacts.

A four-branch ensemble variant adds an L²-based branch for additional robustness. This checkpoint is the recommended four-branch ensemble configuration.

⚠️ The statistics-based discrepancy branch needs enough samples per batch for stable covariance estimation. That is why a batch size of 256 (32 per GPU × 8 GPUs) is strongly recommended — smaller batches noticeably degrade accuracy.


Model details

Configuration ensemble_vitl16_raw_lpd_discrepancy (four-branch ensemble)
Backbone DINOv3 ViT-L/16, frozen (1024-d embeddings)
Perturbation module Differential Robustness Probing (U-Net), ε = 16/255
Detector branches Semantic (DINOv3) + Discrepancy + Low-level residual (+ L²)
Loss Discrepancy loss (margin = 1.0) + classification loss
Training data ProGAN (Wang2020 format), 0_real/ & 1_fake/ per category
Checkpoint file checkpoint_best.pt (PyTorch state_dict)
Framework PyTorch (torchrun distributed training/eval)
License See the code repository (intended for research use)

Results

  • Evaluated against 14+ diverse generative models (ProGAN, Stable Diffusion v1.4, DALL·E 2, and more).
  • Outperforms 10+ existing detection methods.
  • +7.81% average performance improvement over prior art, with strong transfer to unseen generators.

Per-generator accuracy tables and ablations are available in the paper and the code repository.


How to use

This is not a single self-contained .safetensors model — RA-Det's forward pass requires the DINOv3 backbone plus the DRP U-Net and multi-branch detector defined in the codebase. The intended way to run it is via the official repository.

1. Get the code and weights

git clone https://github.com/dongdongunique/RA-Det.git
cd RA-Det
pip install -r requirements.txt

# DINOv3 backbone weights -> models/dino/dinov3_vitl16_pretrain.pth
# DINOv3 source -> models/dinov3_repo  (see repo README)

2. Download this checkpoint

from huggingface_hub import hf_hub_download

ckpt_path = hf_hub_download(
    repo_id="dongdongunique/RA-Det-Checkpoints",
    filename="checkpoint_best.pt",
    repo_type="model",
)
print(ckpt_path)

3. Configure data paths

Edit paths.py (or set env vars) to point at your data in Wang2020 format:

PROGAN_TRAIN_DATA_PATH = "/path/to/progan_train"   # .../airplane/{0_real,1_fake}/...
AIGCTEST_DATA_PATH     = "/path/to/AIGCTestset/test"  # progan/, stable_diffusion_v_1_4/, DALLE2/, ...

4. Run evaluation

The recommended entry point uses the same initialization as training:

bash scripts/validate.sh --gpus 8 --checkpoint /path/to/checkpoint_best.pt

…which expands to:

torchrun --nproc_per_node=8 train.py \
    --config ensemble_vitl16_raw_lpd_discrepancy \
    --eps 0.06274509803921569 \
    --margin 1.0 \
    --four-branch-ensemble \
    --normalize-loss \
    --validate-checkpoint /path/to/checkpoint_best.pt

Reproduce training

# 8 GPUs, recommended batch size 256 (32/GPU), eps=16/255, margin=1.0
bash scripts/main.sh --gpus 8 --niter 1
Parameter Default Note
--eps 16/255 (0.0627) Perturbation budget
--margin 1.0 Discrepancy-loss margin
--niter 1 Training epochs
--gpus 8 GPUs for torchrun
Batch size 256 Required for stable discrepancy statistics

Intended use & limitations

  • Intended for research on AI-generated image detection, media forensics, and robustness analysis.
  • Out of scope: real-world deployment as the sole decision in high-stakes moderation, surveillance, or identity-related judgments. Detector scores are probabilistic and can be wrong, especially on heavily post-processed, compressed, or adversarially crafted inputs.
  • Bias considerations: detection performance varies across generators, image content, and demographics; treat outputs as one signal among several, never as ground truth.
  • Generalization to future, unseen generators is a moving target — re-evaluate on your specific data before relying on results.

Citation

If you use this checkpoint or the RA-Det method, please cite:

@misc{wang2026radetuniversaldetectionaigenerated,
      title={RA-Det: Towards Universal Detection of AI-Generated Images via Robustness Asymmetry},
      author={Xinchang Wang and Yunhao Chen and Yuechen Zhang and Congcong Bian and Zihao Guo and Xingjun Ma and Hui Li},
      year={2026},
      eprint={2603.01544},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2603.01544},
}
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

Paper for dongdongunique/RA-Det-Checkpoints