{"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/scantalk-3d-talking-heads-from-unregistered","title":"ScanTalk: 3D Talking Heads from Unregistered Scans","arxiv_id":"2403.10942","date":"2024-03-16","proceeding":null,"authors":["Federico Nocentini","Thomas Besnier","Claudio Ferrari","Sylvain Arguillere","Stefano Berretti","Mohamed Daoudi"],"abstract":"Speech-driven 3D talking heads generation has emerged as a significant area of interest among researchers, presenting numerous challenges. Existing methods are constrained by animating faces with fixed topologies, wherein point-wise correspondence is established, and the number and order of points remains consistent across all identities the model can animate. In this work, we present \\textbf{ScanTalk}, a novel framework capable of animating 3D faces in arbitrary topologies including scanned data. Our approach relies on the DiffusionNet architecture to overcome the fixed topology constraint, offering promising avenues for more flexible and realistic 3D animations. By leveraging the power of DiffusionNet, ScanTalk not only adapts to diverse facial structures but also maintains fidelity when dealing with scanned data, thereby enhancing the authenticity and versatility of generated 3D talking heads. Through comprehensive comparisons with state-of-the-art methods, we validate the efficacy of our approach, demonstrating its capacity to generate realistic talking heads comparable to existing techniques. While our primary objective is to develop a generic method free from topological constraints, all state-of-the-art methodologies are bound by such limitations. Code for reproducing our results, and the pre-trained model are available at https://github.com/miccunifi/ScanTalk .","url_abs":"https://arxiv.org/abs/2403.10942v3","url_pdf":"https://arxiv.org/pdf/2403.10942v3.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":"scantalk-3d-talking-heads-from-unregistered","repo_url":"https://github.com/miccunifi/scantalk","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2403.10942","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.10942"}},"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":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/miccunifi/ScanTalk","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran_honours":1,"ran_draft_wrong":1,"ran":5},"by_repo_kind":{"official":{"samples":7,"ran":7,"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":7,"samples":[{"code_sha256_prefix":"f6b944f50d3f15ae","entry":"count_parameters","repo":"miccunifi/ScanTalk","repo_kind":"official","path":"src/scantalk_train.py","file_url":"https://github.com/miccunifi/ScanTalk/blob/HEAD/src/scantalk_train.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f6b944f50d3f15ae"}},{"code_sha256_prefix":"a4475703ff58ecf9","entry":"gelu_fast","repo":"miccunifi/ScanTalk","repo_kind":"official","path":"src/hubert/activations.py","file_url":"https://github.com/miccunifi/ScanTalk/blob/HEAD/src/hubert/activations.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a4475703ff58ecf9"}},{"code_sha256_prefix":"45bb87451230d5e8","entry":"gelu_new","repo":"miccunifi/ScanTalk","repo_kind":"official","path":"src/hubert/activations.py","file_url":"https://github.com/miccunifi/ScanTalk/blob/HEAD/src/hubert/activations.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"45bb87451230d5e8"}},{"code_sha256_prefix":"899d1e2736236351","entry":"is_remote_url","repo":"miccunifi/ScanTalk","repo_kind":"official","path":"src/hubert/file_utils.py","file_url":"https://github.com/miccunifi/ScanTalk/blob/HEAD/src/hubert/file_utils.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"899d1e2736236351"}},{"code_sha256_prefix":"e21f72f1a9834aef","entry":"quick_gelu","repo":"miccunifi/ScanTalk","repo_kind":"official","path":"src/hubert/activations.py","file_url":"https://github.com/miccunifi/ScanTalk/blob/HEAD/src/hubert/activations.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e21f72f1a9834aef"}},{"code_sha256_prefix":"35ea591bdbadf497","entry":"replace_return_docstrings","repo":"miccunifi/ScanTalk","repo_kind":"official","path":"src/hubert/file_utils.py","file_url":"https://github.com/miccunifi/ScanTalk/blob/HEAD/src/hubert/file_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"35ea591bdbadf497"}},{"code_sha256_prefix":"56ffa4b32330ceab","entry":"torch_only_method","repo":"miccunifi/ScanTalk","repo_kind":"official","path":"src/hubert/file_utils.py","file_url":"https://github.com/miccunifi/ScanTalk/blob/HEAD/src/hubert/file_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"56ffa4b32330ceab"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}