{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/arxiv-2609-01511","title":"Benchmarking Spatial, Spectral, and Self-Supervised Cues for Face Forgery Detection under Realistic Degradation","arxiv_id":"2609.01511","date":"2026-09-01","proceeding":null,"authors":["Lucas Cunha","Lucas Sotomaior","Lucas Gasperin","Beatriz Caldas","Eduardo Pianovski","Rayson Laroca"],"abstract":"Face forgery detectors often achieve strong results on controlled benchmarks, but their reliability under realistic image degradations remains limited. This paper presents a standardized benchmark for face forgery detection using the Multi-Dimensional Face Forgery Image (MFFI) dataset and evaluates performance on both clean and degraded test partitions. We compare six model families, including convolutional networks, transformer-based models, and a frozen self-supervised DINOv3 backbone, across spatial, spectral, and hybrid input representations. The results show that clean-set performance is not a reliable indicator of robustness under compression, resizing, and blurring. Xception with RGB obtains the best clean performance, reaching 0.884 mean ROC-AUC, but degrades substantially on the harder partition. In contrast, frozen DINOv3 achieves the strongest degraded-set result, with 0.726 mean ROC-AUC, while training only a linear classification head. The representation analysis indicates that Fourier-domain cues are most useful when combined with RGB information, whereas purely spectral inputs consistently underperform spatial representations. Qualitative attribution maps further suggest that convolutional detectors focus on localized artifacts, while DINOv3 relies on broader facial structure. These findings reinforce the need for degraded evaluation protocols and highlight self-supervised visual representations as a promising direction for robust face forgery detection. Our source code is publicly available at https://github.com/lucasdocunha/FaceForgery-Benchmark/.","url_abs":"https://arxiv.org/abs/2609.01511","url_pdf":"https://arxiv.org/pdf/2609.01511","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2609.01511","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2609.01511"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/lucasdocunha/FaceForgery-Benchmark","reach":{"status":"ok"}}],"summary":{"unverified":11},"by_repo_kind":{"found_in_text":{"samples":11,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":11,"samples":[{"code_sha256_prefix":"292700fbac747d2b","entry":"adapt_conv2d_channels","repo":"lucasdocunha/FaceForgery-Benchmark","repo_kind":"found_in_text","path":"src/models/_channel_adapt.py","file_url":"https://github.com/lucasdocunha/FaceForgery-Benchmark/blob/HEAD/src/models/_channel_adapt.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"292700fbac747d2b"}},{"code_sha256_prefix":"314b71af44b78625","entry":"aggregate_metrics","repo":"lucasdocunha/FaceForgery-Benchmark","repo_kind":"found_in_text","path":"make_tables.py","file_url":"https://github.com/lucasdocunha/FaceForgery-Benchmark/blob/HEAD/make_tables.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"314b71af44b78625"}},{"code_sha256_prefix":"ecb0fa1f5994a2a5","entry":"build_tensor","repo":"lucasdocunha/FaceForgery-Benchmark","repo_kind":"found_in_text","path":"plot_frequencia.py","file_url":"https://github.com/lucasdocunha/FaceForgery-Benchmark/blob/HEAD/plot_frequencia.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ecb0fa1f5994a2a5"}},{"code_sha256_prefix":"f11e868a201ee31e","entry":"compute_panels","repo":"lucasdocunha/FaceForgery-Benchmark","repo_kind":"found_in_text","path":"plot_transformacoes.py","file_url":"https://github.com/lucasdocunha/FaceForgery-Benchmark/blob/HEAD/plot_transformacoes.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f11e868a201ee31e"}},{"code_sha256_prefix":"5023170d9892a029","entry":"embeddings","repo":"lucasdocunha/FaceForgery-Benchmark","repo_kind":"found_in_text","path":"src/models/_hf_layers.py","file_url":"https://github.com/lucasdocunha/FaceForgery-Benchmark/blob/HEAD/src/models/_hf_layers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5023170d9892a029"}},{"code_sha256_prefix":"ff05f02a1c0267ad","entry":"encoder_layers","repo":"lucasdocunha/FaceForgery-Benchmark","repo_kind":"found_in_text","path":"src/models/_hf_layers.py","file_url":"https://github.com/lucasdocunha/FaceForgery-Benchmark/blob/HEAD/src/models/_hf_layers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ff05f02a1c0267ad"}},{"code_sha256_prefix":"14c8c54c7e95b93a","entry":"first_module","repo":"lucasdocunha/FaceForgery-Benchmark","repo_kind":"found_in_text","path":"src/models/_hf_layers.py","file_url":"https://github.com/lucasdocunha/FaceForgery-Benchmark/blob/HEAD/src/models/_hf_layers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"14c8c54c7e95b93a"}},{"code_sha256_prefix":"b2ad7a4e020c45db","entry":"load_fft","repo":"lucasdocunha/FaceForgery-Benchmark","repo_kind":"found_in_text","path":"plot_transformacoes.py","file_url":"https://github.com/lucasdocunha/FaceForgery-Benchmark/blob/HEAD/plot_transformacoes.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b2ad7a4e020c45db"}},{"code_sha256_prefix":"f506d11307f08348","entry":"plot_all_modes","repo":"lucasdocunha/FaceForgery-Benchmark","repo_kind":"found_in_text","path":"plot_frequencia.py","file_url":"https://github.com/lucasdocunha/FaceForgery-Benchmark/blob/HEAD/plot_frequencia.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f506d11307f08348"}},{"code_sha256_prefix":"874aacd44d7947c7","entry":"replace_conv2d","repo":"lucasdocunha/FaceForgery-Benchmark","repo_kind":"found_in_text","path":"src/models/_channel_adapt.py","file_url":"https://github.com/lucasdocunha/FaceForgery-Benchmark/blob/HEAD/src/models/_channel_adapt.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"874aacd44d7947c7"}},{"code_sha256_prefix":"dc7e1266140ed216","entry":"tensor_to_display","repo":"lucasdocunha/FaceForgery-Benchmark","repo_kind":"found_in_text","path":"plot_frequencia.py","file_url":"https://github.com/lucasdocunha/FaceForgery-Benchmark/blob/HEAD/plot_frequencia.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"dc7e1266140ed216"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.CV","source":"arxiv_daily_20260902.json"},"syntology_extracted_results":{"kind":"leaderboard_placements","source":"Syntology's leaderboard-shaped extractor over the paper's own arXiv-HTML tables: a model pointed at a cell, the number was read from that cell and checked against the board's metric, dataset, split and scale, and an independent check accepted the entry; not reviewed by the paper's authors or the archive's editors","extractor_model":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","verifier_model":null,"prompt_sha":"fa63d4bb9d755694","coverage":{"sentence":"Syntology has checked 6,264 of the 9,581 papers on this site that are newer than the archive; results from the others appear after they are checked.","papers_newer_than_archive":9581,"papers_checked":6264},"entries":[],"not_placed":{"boards":0,"rejected_by_independent_check":0,"refused_by_a_rule":0,"check_did_not_answer":0,"proposed_without_a_cell":0,"declined_by_site":0}}}