Data Diversity, Not Frequency Invariance: A Controlled and Self-Audited Study of Compression-Robust Deepfake Detection
Organizations: ADA University, Baku, Azerbaijan · MegaSec AI Company, Baku, Azerbaijan
Abstract
Frequency features and compression-invariant representation learning are widely assumed to be key to deepfake detection that survives video compression. We test this with CAFRL - block-DCT and FFT-phase streams, compression-level-conditioned band attention, and adversarial (gradient-reversal) compression invariance - and report a controlled negative. Under a pre-registered protocol with capacity- and augmentation-matched controls, a plain EfficientNet-B0 on multi-quality data beat CAFRL as specified at every compression level on the FaceForensics++ test split, by 3.66 AUC points at CRF 40 (paired, single seed). A self-audit of our own negative found four defects biased against the frequency hypothesis, and pre-specified re-tests repairing all four showed the deficit to be a recipe artifact, not an architecture failure: the baseline recipe recovered 3.96 points over the matching shipped-recipe variant. The frequency path made no detectable difference: discriminative alone (standalone validation AUC 0.91-0.98 late in training) but of no marginal value under this fusion, at two feature widths of one 4.0 M trunk, every seed-pooled interval for the intra-dataset compression contrasts including zero; on the single held-out manipulation tested, the fair variants sat below the plain backbone. The adversarial branch, as specified, added nothing and degraded its own conditioning estimator; at the fair recipe it is untested. Robustness under single-pass H.264 re-encoding came instead from data diversity: real constant-rate-factor variants beat synthetic JPEG augmentation by 7.3 points (single runs, non-overlapping intervals). The evidence is FaceForensics++-family, GAN-era and single-codec. Match controls on training recipe as well as capacity, and buy compression robustness with codec diversity before architecture.
Figures & tables
| arm | architecture | params | recipe | seeds | reported in | released run id |
|---|---|---|---|---|---|---|
| SpatialBase | EfficientNet-B0; no frequency streams — the capacity-matched control | 4.0 M | fair | 3 | Tables 2 , 3 , 4 , 6 , 8 – 11 ; Fig. 2 (a,b) | b7_effnet_b0_mq_fliponly (_s1, _s2) |
| CAFRL as specified | full CAFRL: block-DCT FFT-phase streams, conditioned band gate, CMAM fusion, GRL | 11.97 M | shipped | 3 | Tables 2 , 4 , 9 , 10 ; Fig. 2 (a) | a0 , a1_grl_s1 , a1_grl_s2 |
| CAFRL adv | CAFRL minus the adversarial branch | 10.65 M | shipped | 1 | § 5.3 , Tables 3 , 4 ; Fig. 2 (a) | a1_none_s42 |
| spatial-residual | CAFRL’s narrow trunk with logit spatial frequency, zero-initialized | 10.29 M | shipped | 1 | § 5.3 , Tables 3 , 4 ; Fig. 2 (a) | cafrl_spatres_s42 |
| TrunkCtrl | CAFRL’s 320 256 spatial trunk alone; no frequency | 3.68 M | fair | 3 | § 7.1 , Tables 3 , 4 , 6 ; Fig. 2 (b) | trunk_recipe_s42/_s1/_s2 |
| Fair-N | narrow trunk the full frequency stack, adversary off | 10.65 M | fair | 3 | § 7.1 , Tables 3 , 4 , 6 , 9 , 11 ; Fig. 2 (b) | f1_none_fair_s42/_s1/_s2 |
| model | params | c23 | c40 | |
|---|---|---|---|---|
| SpatialBase | 4.0 M | .9867 | .9590 | .9709 |
| CAFRL as specified | 11.97 M | .9738 | .9224 | .9477 |
| Xception-mq | 20.8 M | .9872 | .9679 | .9765 |
| contrast @ c40 | 95% CI | rule | verdict | |
|---|---|---|---|---|
| SpatialBase CAFRL as specified (s42) | [+0.020, +0.054] | pre-registered | significant — the gate fires | |
| Fair-N CAFRL adv (s42) | [+0.0231, +0.0570] | pre-specified | significant — the deficit was recipe | |
| Fair-N SpatialBase (s42) | [-0.0092, +0.0080] | pre-specified | no detectable difference | |
| Fair-W SpatialBase (s42) | [-0.0022, +0.0134] | pre-specified | no detectable difference (lean, ) | |
| Fair-N pool SpatialBase pool (3v3) | [-0.0066, +0.0045] | pre-specified | no detectable difference; equivalent within pt | |
| Fair-W pool SpatialBase pool (3v3) | [-0.0035, +0.0080] | pre-specified | no detectable difference; equivalent within pt unadjusted (does not survive adjustment over the confirmatory family; App. E ) |
| run (recipe) | c0 | c18 | c23 | c28 | c32 | c36 | c40 | |
|---|---|---|---|---|---|---|---|---|
| SpatialBase (fair, s42) | .9919 | .9892 | .9867 | .9810 | .9758 | .9678 | .9590 | .9709 |
| Fair-W (fair, s42) | .9929 | .9902 | .9894 | .9821 | .9774 | .9719 | .9645 | .9740 |
| Fair-N (fair, s42) | .9941 | .9901 | .9881 | .9798 | .9770 | .9702 | .9586 | .9714 |
| TrunkCtrl (fair, 3-seed mean) | .9920 | .9886 | .9863 | .9796 | .9719 | .9644 | .9536 | .9674 |
| CAFRL as specified (shipped, s42) | .9843 | .9791 | .9738 | .9659 | .9572 | .9451 | .9224 | .9477 |
| CAFRL adv (shipped, s42) | .9923 | .9818 | .9697 | .9590 | .9484 | .9311 | .9190 | .9394 |
| work | data-matched? (and against which baseline) | capacity-matched? | plain backbone on the same diverse data? |
|---|---|---|---|
| Cao et al. [ 4 ] | no — against a single Xception trained at one compression level while the method trains on paired c23/c40 (Tab. 3, whose train/test compression columns show it) | no at training (two branches a discriminator; only the LQ branch runs at test, §3.1); no counts reported | never run (Tab. 3 rows 1–4 are all single-level) |
| Ma et al. [ 5 ] | yes against the single-model competitors FBCNN and QGAC (Tab. I column groups; §IV-A-1 matches the JPEG encoder) | no — 109.9 M vs FBCNN’s 71.9 M (Tab. III) | yes — Tab. V’s “Baseline” column (base encoder guided decoder only), same quality-factor pool |
| PLADA [ 6 ] | asserted for all nine (§4.1) — but Tabs. 1 and 3 mark six of the nine , i.e. taken from prior work rather than retrained | no — “more optimization parameters than Ojha” (§4.2); no counts reported | partly — Fig. 7(a)’s ablation origin is a retrained CLIP linear probe, not a plain-trunk control |
| F3-Net [ 10 ] | yes within each quality level, against Xception ( ELA, PAFilters) (Tab. 1); no multi-quality training exists — §4.1 describes one level per run | no — two Xception branches cross-attention, no counts reported; fair only in the FAD-internal ablation (Tab. 3), where the gain falls to AUC | not applicable — no diverse-data regime |
| SPSL [ 11 ] | yes within each quality level, against a reproduced Xception and ResNet-34/50 (Tab. 2, §4.2.1; Tab. 7); no multi-quality training exists | yes by construction — only Xception blocks 1–3 and 12 are retained (§4.1); no counts reported | not applicable — no diverse-data regime |
| Luo et al. [ 13 ] | yes but at one fixed quality — FF++ HQ throughout (§5.1), against an author-trained Xception and Face X-ray (Tabs. 4–5); no compression-diverse training exists | no — two Xception streams attention fusion vs one Xception; no counts reported | never run on diverse data — the plain-Xception row exists (Tab. 3) but only at fixed HQ |
Appendix figures & tables6 assets
Supplementary material from the paper’s appendix.
Appendix
| arm | c40 per-seed (s42 / s1 / s2) | c40 seed-mean band | seed-mean |
|---|---|---|---|
| SpatialBase | .9590 / .9614 / .9492 | .9565 .0160 | .9688 |
| Fair-N | .9586 / .9567 / .9536 | .9563 .0062 | .9675 |
| Fair-W | .9645 / .9602 / .9609 | .9619 .0058 | .9719 |
| TrunkCtrl | .9491 / .9566 / .9551 | .9536 .0098 | .9674 |
| defect | why it mattered | repaired/resolved by |
|---|---|---|
| D1 — the L1 consistency loss ran 40–120 the classification loss at the curriculum’s compressed-phase onset, in every arm (including CAFRL adv) | no arm ever trained its frequency features free of invariance pressure; the inference “not the GRL frequency itself” was void | Fair-N (zero invariance losses, flat curriculum). Confirmed as principal cause : pt recovered at c40 (Fair-N vs. CAFRL adv, seed 42), significant |
| D2 — in the residual probe was a curriculum-shock collapse locked in by a structural deadlock: at the frequency path receives zero label gradient | the probe could not detect a useful frequency signal even if present; “the model freely discards frequency” was unfounded | Fair-W (auxiliary BCE gives the frequency path label gradient regardless of ). Deadlock broken : grows to 0.146, decaying to 0.031 by epoch 30 rather than collapsing |
| D3 — optimization never matched: baseline full fine-tune at from epoch 1 vs CAFRL’s 20 lower backbone LR, 10-epoch freeze, heavy data deferred to the LR tail | part of the deficit was recipe, not architecture | TrunkCtrl Fair-N. Confirmed : the 0.0451 trunk gap splits / recipe/architecture as a point estimate (Section 7.1 ), and only the recipe share’s interval excludes zero; the fair recipe erases the model-level deficit |
| D4 — CAFRL’s spatial path taps an intermediate 320-channel map (256-d projection), discarding the backbone’s final 1280-d representation | every CAFRL-with-frequency variant carried a handicapped spatial trunk | TrunkCtrl Fair-W. Closed — no detectable width penalty : the adjudicated width contrast is , CI [-0.0116, +0.0039] (Table 3 ), and the frequency path on the full trunk still makes no detectable difference |
| D5 — split-BatchNorm evaluation forces the clean branch at eval (train/eval routing mismatch) | could have distorted compressed-level evaluation | eval-only routing probe. Retired — immaterial : oracle-routing c40 on both probed arms (the clean eval mildly flattered CAFRL) |
| D6 — the GRL silently degraded its own conditioning estimator: 1-bin accuracy under the adversary (healthy without it) | the “compression-aware conditioning” mechanism was self-defeating as configured (“condition-then-remove”) | four-way control pattern across arms; estimator-health warning ( 1-bin ) added to the training diagnostics |
| model | prot. | aug | params | c23 | c28 | c32 | c36 | c40 | |
|---|---|---|---|---|---|---|---|---|---|
| Xception | lit | std | 20.8 M | .9944 | .9890 | .9778 | .9280 | .8660 | .9402 |
| F3-Net | lit | std | 21.0 M | .9917 | .9835 | .9654 | .9210 | .8599 | .9325 |
| FreqNet | lit | std | 5.1 M | .9877 | .9652 | .9274 | .8541 | .7684 | .8788 |
| Xception-mq | mq | std | 20.8 M | .9872 | .9838 | .9803 | .9739 | .9679 | .9765 |
| Xception-mq | mq | flip | 20.8 M | .9869 | .9820 | .9772 | .9691 | .9631 | .9728 |
| F3-Net-mq | mq | std | 21.0 M | .9885 | .9831 | .9766 | .9683 | .9551 | .9708 |
| model | Celeb-DF v2 | DFD-c23 | DFD-c40 |
|---|---|---|---|
| 3-seed mean 95% -band ( ) | |||
| CAFRL as specified | 0.705 0.051 | 0.819 0.040 | 0.635 0.035 |
| SpatialBase | 0.686 0.035 | 0.825 0.054 | 0.650 0.031 |
| Fair-N | 0.647 0.170 | 0.792 0.095 | 0.659 0.073 |
| Fair-W | 0.681 0.048 | 0.835 0.057 | 0.664 0.054 |
| single run, seed 42 — not replicated | |||
| level | CAFRL as spec. | SpatialBase | paired | 95% CI | |
|---|---|---|---|---|---|
| c23 | 0.822 | 0.823 | [-0.041, +0.025] | 0.30 | |
| c40 | 0.758 | 0.732 | [-0.021, +0.064] | 0.84 |
| contrast @ c40 | 95% CI (video) | 95% CI (identity clusters) | |
|---|---|---|---|
| SpatialBase CAFRL as specified (s42) | [+0.0205, +0.0538] | [+0.0182, +0.0569] | |
| Fair-N CAFRL adv (s42) | [+0.0231, +0.0570] | [+0.0222, +0.0580] | |
| Fair-N pool SpatialBase pool (3v3) | [-0.0066, +0.0045] | [-0.0064, +0.0046] | |
| Fair-W pool SpatialBase pool (3v3) | [-0.0035, +0.0080] | [-0.0042, +0.0085] | |
| TrunkCtrl pool spatial-residual (s42) | [+0.0294, +0.0705] | [+0.0296, +0.0715] | |
| FaceShifter, held out ( ) | |||
Deepfake Detection
Deepfake detection identifies manipulated or AI-generated media to support trustworthy communication, identity verification, and forensic analysis.
See all 241 papers