{"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/explicitly-controllable-3d-aware-portrait","title":"3DFaceShop: Explicitly Controllable 3D-Aware Portrait Generation","arxiv_id":"2209.05434","date":"2022-09-12","proceeding":null,"authors":["Junshu Tang","Bo Zhang","Binxin Yang","Ting Zhang","Dong Chen","Lizhuang Ma","Fang Wen"],"abstract":"In contrast to the traditional avatar creation pipeline which is a costly process, contemporary generative approaches directly learn the data distribution from photographs. While plenty of works extend unconditional generative models and achieve some levels of controllability, it is still challenging to ensure multi-view consistency, especially in large poses. In this work, we propose a network that generates 3D-aware portraits while being controllable according to semantic parameters regarding pose, identity, expression and illumination. Our network uses neural scene representation to model 3D-aware portraits, whose generation is guided by a parametric face model that supports explicit control. While the latent disentanglement can be further enhanced by contrasting images with partially different attributes, there still exists noticeable inconsistency in non-face areas, e.g., hair and background, when animating expressions. Wesolve this by proposing a volume blending strategy in which we form a composite output by blending dynamic and static areas, with two parts segmented from the jointly learned semantic field. Our method outperforms prior arts in extensive experiments, producing realistic portraits with vivid expression in natural lighting when viewed from free viewpoints. It also demonstrates generalization ability to real images as well as out-of-domain data, showing great promise in real applications.","url_abs":"https://arxiv.org/abs/2209.05434v3","url_pdf":"https://arxiv.org/pdf/2209.05434v3.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":"explicitly-controllable-3d-aware-portrait","repo_url":"https://github.com/junshutang/3DFaceShop","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"3d-face-animation","task_name":"3D Face Animation"},{"task_slug":"disentanglement","task_name":"Disentanglement"},{"task_slug":"face-generation","task_name":"Face Generation"},{"task_slug":"face-model","task_name":"Face Model"},{"task_slug":"face-reenactment","task_name":"Face Reenactment"},{"task_slug":"image-generation","task_name":"Image Generation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2209.05434","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2209.05434"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/junshutang/3DFaceShop","reach":null}],"summary":{"ran_fixture":3,"ran_draft_wrong":2},"by_repo_kind":{"official":{"samples":5,"ran":5,"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":5,"samples":[{"code_sha256_prefix":"fa45a68b3f317e09","entry":"down_up","repo":"junshutang/3DFaceShop","repo_kind":"official","path":"train_control.py","file_url":"https://github.com/junshutang/3DFaceShop/blob/HEAD/train_control.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fa45a68b3f317e09"}},{"code_sha256_prefix":"4266a6438378042c","entry":"process_data","repo":"junshutang/3DFaceShop","repo_kind":"official","path":"train_vae.py","file_url":"https://github.com/junshutang/3DFaceShop/blob/HEAD/train_vae.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4266a6438378042c"}},{"code_sha256_prefix":"76e5445b8839d546","entry":"sample_data","repo":"junshutang/3DFaceShop","repo_kind":"official","path":"train_vae.py","file_url":"https://github.com/junshutang/3DFaceShop/blob/HEAD/train_vae.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"76e5445b8839d546"}},{"code_sha256_prefix":"b0b5d5c3c2ff295f","entry":"setup_dict","repo":"junshutang/3DFaceShop","repo_kind":"official","path":"train_vae.py","file_url":"https://github.com/junshutang/3DFaceShop/blob/HEAD/train_vae.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b0b5d5c3c2ff295f"}},{"code_sha256_prefix":"814577224126b12f","entry":"up","repo":"junshutang/3DFaceShop","repo_kind":"official","path":"train_control.py","file_url":"https://github.com/junshutang/3DFaceShop/blob/HEAD/train_control.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"814577224126b12f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}