{"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/d-3-scaling-up-deepfake-detection-by-learning","title":"D$^3$: Scaling Up Deepfake Detection by Learning from Discrepancy","arxiv_id":"2404.04584","date":"2024-04-06","proceeding":null,"authors":["Yongqi Yang","Zhihao Qian","Ye Zhu","Yu Wu"],"abstract":"The boom of Generative AI brings opportunities entangled with risks and concerns. In this work, we seek a step toward a universal deepfake detection system with better generalization and robustness, to accommodate the responsible deployment of diverse image generative models. We do so by first scaling up the existing detection task setup from the one-generator to multiple-generators in training, during which we disclose two challenges presented in prior methodological designs. Specifically, we reveal that the current methods tailored for training on one specific generator either struggle to learn comprehensive artifacts from multiple generators or tend to sacrifice their ability to identify fake images from seen generators (i.e., In-Domain performance) to exchange the generalization for unseen generators (i.e., Out-Of-Domain performance). To tackle the above challenges, we propose our Discrepancy Deepfake Detector (D$^3$) framework, whose core idea is to learn the universal artifacts from multiple generators by introducing a parallel network branch that takes a distorted image as extra discrepancy signal to supplement its original counterpart. Extensive scaled-up experiments on the merged UFD and GenImage datasets with six detection models demonstrate the effectiveness of our framework, achieving a 5.3% accuracy improvement in the OOD testing compared to the current SOTA methods while maintaining the ID performance.","url_abs":"https://arxiv.org/abs/2404.04584v1","url_pdf":"https://arxiv.org/pdf/2404.04584v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"d-3-scaling-up-deepfake-detection-by-learning","repo_url":"https://github.com/bigaandsmallq/d3","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"deepfake-detection","task_name":"DeepFake Detection"},{"task_slug":"face-swapping","task_name":"Face Swapping"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2404.04584","atlas_url":"https://app.syntology.ai/?focus=2404.04584","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2404.04584"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bigaandsmallq/d3","reach":{"status":"ok"}}],"summary":{"ran_violates":1,"ran_fixture":1,"ran_draft_wrong":1},"by_repo_kind":{"listed":{"samples":3,"ran":3,"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":3,"samples":[{"code_sha256_prefix":"4139aa85d28b1ed5","entry":"find_best_threshold","repo":"bigaandsmallq/d3","repo_kind":"listed","path":"validate_for_robustness.py","file_url":"https://github.com/bigaandsmallq/d3/blob/HEAD/validate_for_robustness.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4139aa85d28b1ed5"}},{"code_sha256_prefix":"bf0a15612beace6e","entry":"gaussian_blur","repo":"bigaandsmallq/d3","repo_kind":"listed","path":"validate_for_robustness.py","file_url":"https://github.com/bigaandsmallq/d3/blob/HEAD/validate_for_robustness.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bf0a15612beace6e"}},{"code_sha256_prefix":"8501ef758e4a9824","entry":"png2jpg","repo":"bigaandsmallq/d3","repo_kind":"listed","path":"validate_for_robustness.py","file_url":"https://github.com/bigaandsmallq/d3/blob/HEAD/validate_for_robustness.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8501ef758e4a9824"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}