{"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/injecting-3d-perception-of-controllable-nerf","title":"Injecting 3D Perception of Controllable NeRF-GAN into StyleGAN for Editable Portrait Image Synthesis","arxiv_id":"2207.10257","date":"2022-07-21","proceeding":null,"authors":["Jeong-gi Kwak","Yuanming Li","Dongsik Yoon","Donghyeon Kim","David Han","Hanseok Ko"],"abstract":"Over the years, 2D GANs have achieved great successes in photorealistic portrait generation. However, they lack 3D understanding in the generation process, thus they suffer from multi-view inconsistency problem. To alleviate the issue, many 3D-aware GANs have been proposed and shown notable results, but 3D GANs struggle with editing semantic attributes. The controllability and interpretability of 3D GANs have not been much explored. In this work, we propose two solutions to overcome these weaknesses of 2D GANs and 3D-aware GANs. We first introduce a novel 3D-aware GAN, SURF-GAN, which is capable of discovering semantic attributes during training and controlling them in an unsupervised manner. After that, we inject the prior of SURF-GAN into StyleGAN to obtain a high-fidelity 3D-controllable generator. Unlike existing latent-based methods allowing implicit pose control, the proposed 3D-controllable StyleGAN enables explicit pose control over portrait generation. This distillation allows direct compatibility between 3D control and many StyleGAN-based techniques (e.g., inversion and stylization), and also brings an advantage in terms of computational resources. Our codes are available at https://github.com/jgkwak95/SURF-GAN.","url_abs":"https://arxiv.org/abs/2207.10257v2","url_pdf":"https://arxiv.org/pdf/2207.10257v2.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":"injecting-3d-perception-of-controllable-nerf","repo_url":"https://github.com/jgkwak95/surf-gan","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"image-generation","task_name":"Image Generation"},{"task_slug":"nerf","task_name":"NeRF"}],"methods":[{"method_slug":"adaptive-instance-normalization","method_name":"Adaptive Instance Normalization"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"feedforward-network","method_name":"Feedforward Network"},{"method_slug":"r1-regularization","method_name":"R1 Regularization"},{"method_slug":"stylegan","method_name":"StyleGAN"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2207.10257","atlas_url":"https://app.syntology.ai/?focus=2207.10257","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2207.10257"}},"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":"deterministic:regex_extraction","url":"https://github.com/jgkwak95/SURF-GAN","reach":null}],"summary":{"ran":4,"ran_draft_wrong":1,"unverified":4},"by_repo_kind":{"official":{"samples":9,"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":0,"samples":[{"code_sha256_prefix":"9adcf0dd8a6b1ea0","entry":"Sine","repo":"jgkwak95/SURF-GAN","repo_kind":"official","path":"generators/generator_surf.py","file_url":"https://github.com/jgkwak95/SURF-GAN/blob/HEAD/generators/generator_surf.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9adcf0dd8a6b1ea0"}},{"code_sha256_prefix":"4d45205e98b68220","entry":"SinedLayer_noise","repo":"jgkwak95/SURF-GAN","repo_kind":"official","path":"generators/generator_surf.py","file_url":"https://github.com/jgkwak95/SURF-GAN/blob/HEAD/generators/generator_surf.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4d45205e98b68220"}},{"code_sha256_prefix":"e5faf4e6af78cdc1","entry":"SubspaceLayer","repo":"jgkwak95/SURF-GAN","repo_kind":"official","path":"generators/generator_surf.py","file_url":"https://github.com/jgkwak95/SURF-GAN/blob/HEAD/generators/generator_surf.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e5faf4e6af78cdc1"}},{"code_sha256_prefix":"1d55443a90437b04","entry":"UniformBoxWarp","repo":"jgkwak95/SURF-GAN","repo_kind":"official","path":"generators/generator_surf.py","file_url":"https://github.com/jgkwak95/SURF-GAN/blob/HEAD/generators/generator_surf.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1d55443a90437b04"}},{"code_sha256_prefix":"579255f1d41bda52","entry":"frequency_init","repo":"jgkwak95/SURF-GAN","repo_kind":"official","path":"generators/generator_surf.py","file_url":"https://github.com/jgkwak95/SURF-GAN/blob/HEAD/generators/generator_surf.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"579255f1d41bda52"}},{"code_sha256_prefix":"bdc0a31c438a4ad8","entry":"ImplicitGenerator3d_SURF","repo":"jgkwak95/SURF-GAN","repo_kind":"official","path":"generators/generator_surf.py","file_url":"https://github.com/jgkwak95/SURF-GAN/blob/HEAD/generators/generator_surf.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bdc0a31c438a4ad8"}},{"code_sha256_prefix":"6623039f97a9d00b","entry":"SURFBlock","repo":"jgkwak95/SURF-GAN","repo_kind":"official","path":"generators/generator_surf.py","file_url":"https://github.com/jgkwak95/SURF-GAN/blob/HEAD/generators/generator_surf.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6623039f97a9d00b"}},{"code_sha256_prefix":"a54a523697ab7d47","entry":"SURFSIREN","repo":"jgkwak95/SURF-GAN","repo_kind":"official","path":"generators/generator_surf.py","file_url":"https://github.com/jgkwak95/SURF-GAN/blob/HEAD/generators/generator_surf.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a54a523697ab7d47"}},{"code_sha256_prefix":"1542a53b3eb3b17d","entry":"first_layer_film_sine_init","repo":"jgkwak95/SURF-GAN","repo_kind":"official","path":"generators/generator_surf.py","file_url":"https://github.com/jgkwak95/SURF-GAN/blob/HEAD/generators/generator_surf.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1542a53b3eb3b17d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}