{"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/gan-control-explicitly-controllable-gans","title":"GAN-Control: Explicitly Controllable GANs","arxiv_id":"2101.02477","date":"2021-01-07","proceeding":"ICCV 2021 10","authors":["Alon Shoshan","Nadav Bhonker","Igor Kviatkovsky","Gerard Medioni"],"abstract":"We present a framework for training GANs with explicit control over generated images. We are able to control the generated image by settings exact attributes such as age, pose, expression, etc. Most approaches for editing GAN-generated images achieve partial control by leveraging the latent space disentanglement properties, obtained implicitly after standard GAN training. Such methods are able to change the relative intensity of certain attributes, but not explicitly set their values. Recently proposed methods, designed for explicit control over human faces, harness morphable 3D face models to allow fine-grained control capabilities in GANs. Unlike these methods, our control is not constrained to morphable 3D face model parameters and is extendable beyond the domain of human faces. Using contrastive learning, we obtain GANs with an explicitly disentangled latent space. This disentanglement is utilized to train control-encoders mapping human-interpretable inputs to suitable latent vectors, thus allowing explicit control. In the domain of human faces we demonstrate control over identity, age, pose, expression, hair color and illumination. We also demonstrate control capabilities of our framework in the domains of painted portraits and dog image generation. We demonstrate that our approach achieves state-of-the-art performance both qualitatively and quantitatively.","url_abs":"https://arxiv.org/abs/2101.02477v2","url_pdf":"https://arxiv.org/pdf/2101.02477v2.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":"gan-control-explicitly-controllable-gans","repo_url":"https://github.com/amazon-research/gan-control","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"gan-control-explicitly-controllable-gans","repo_url":"https://github.com/mantonios107/attrs-fr-embs","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"jax","reach":{"status":"unanswered"}}],"tasks":[{"task_slug":"contrastive-learning","task_name":"Contrastive Learning"},{"task_slug":"disentanglement","task_name":"Disentanglement"},{"task_slug":"face-model","task_name":"Face Model"},{"task_slug":"image-generation","task_name":"Image Generation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2101.02477","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2101.02477"}},"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/amazon-research/gan-control","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mantonios107/attrs-fr-embs","reach":{"status":"unanswered"}}],"summary":{"ran":6,"ran_draft_wrong":1,"unverified":7},"by_repo_kind":{"official":{"samples":14,"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":0,"samples":[{"code_sha256_prefix":"33370da85dde116b","entry":"ConstantInput","repo":"amazon-research/gan-control","repo_kind":"official","path":"src/gan_control/models/gan_model.py","file_url":"https://github.com/amazon-research/gan-control/blob/HEAD/src/gan_control/models/gan_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"33370da85dde116b"}},{"code_sha256_prefix":"3c50af22dfad4436","entry":"EqualLinear","repo":"amazon-research/gan-control","repo_kind":"official","path":"src/gan_control/models/gan_model.py","file_url":"https://github.com/amazon-research/gan-control/blob/HEAD/src/gan_control/models/gan_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3c50af22dfad4436"}},{"code_sha256_prefix":"5313be2f6108140e","entry":"ModulatedNoiseInjection","repo":"amazon-research/gan-control","repo_kind":"official","path":"src/gan_control/models/gan_model.py","file_url":"https://github.com/amazon-research/gan-control/blob/HEAD/src/gan_control/models/gan_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5313be2f6108140e"}},{"code_sha256_prefix":"85a522397f0921be","entry":"MultiFcStack","repo":"amazon-research/gan-control","repo_kind":"official","path":"src/gan_control/models/gan_model.py","file_url":"https://github.com/amazon-research/gan-control/blob/HEAD/src/gan_control/models/gan_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"85a522397f0921be"}},{"code_sha256_prefix":"7efd91b0a334f2d5","entry":"NoiseInjection","repo":"amazon-research/gan-control","repo_kind":"official","path":"src/gan_control/models/gan_model.py","file_url":"https://github.com/amazon-research/gan-control/blob/HEAD/src/gan_control/models/gan_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7efd91b0a334f2d5"}},{"code_sha256_prefix":"22b9cf66e3565c1e","entry":"PixelNorm","repo":"amazon-research/gan-control","repo_kind":"official","path":"src/gan_control/models/gan_model.py","file_url":"https://github.com/amazon-research/gan-control/blob/HEAD/src/gan_control/models/gan_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"22b9cf66e3565c1e"}},{"code_sha256_prefix":"86dcd3deaf9ad8a8","entry":"get_logger","repo":"amazon-research/gan-control","repo_kind":"official","path":"src/gan_control/models/gan_model.py","file_url":"https://github.com/amazon-research/gan-control/blob/HEAD/src/gan_control/models/gan_model.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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"86dcd3deaf9ad8a8"}},{"code_sha256_prefix":"85ab6052faa2dbba","entry":"Blur","repo":"amazon-research/gan-control","repo_kind":"official","path":"src/gan_control/models/gan_model.py","file_url":"https://github.com/amazon-research/gan-control/blob/HEAD/src/gan_control/models/gan_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"85ab6052faa2dbba"}},{"code_sha256_prefix":"f3552a33f3b24bd7","entry":"Generator","repo":"amazon-research/gan-control","repo_kind":"official","path":"src/gan_control/models/gan_model.py","file_url":"https://github.com/amazon-research/gan-control/blob/HEAD/src/gan_control/models/gan_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f3552a33f3b24bd7"}},{"code_sha256_prefix":"771ce08f61fae945","entry":"ModulatedConv2d","repo":"amazon-research/gan-control","repo_kind":"official","path":"src/gan_control/models/gan_model.py","file_url":"https://github.com/amazon-research/gan-control/blob/HEAD/src/gan_control/models/gan_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"771ce08f61fae945"}},{"code_sha256_prefix":"1259fbf2a39f45d5","entry":"StyledConv","repo":"amazon-research/gan-control","repo_kind":"official","path":"src/gan_control/models/gan_model.py","file_url":"https://github.com/amazon-research/gan-control/blob/HEAD/src/gan_control/models/gan_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1259fbf2a39f45d5"}},{"code_sha256_prefix":"75858659b1e987d6","entry":"ToRGB","repo":"amazon-research/gan-control","repo_kind":"official","path":"src/gan_control/models/gan_model.py","file_url":"https://github.com/amazon-research/gan-control/blob/HEAD/src/gan_control/models/gan_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"75858659b1e987d6"}},{"code_sha256_prefix":"2308d2ca68ca25f9","entry":"Upsample","repo":"amazon-research/gan-control","repo_kind":"official","path":"src/gan_control/models/gan_model.py","file_url":"https://github.com/amazon-research/gan-control/blob/HEAD/src/gan_control/models/gan_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2308d2ca68ca25f9"}},{"code_sha256_prefix":"93eaf4fe3baa5c5d","entry":"VAE","repo":"amazon-research/gan-control","repo_kind":"official","path":"src/gan_control/models/gan_model.py","file_url":"https://github.com/amazon-research/gan-control/blob/HEAD/src/gan_control/models/gan_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"93eaf4fe3baa5c5d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}