{"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/low-rank-subspaces-in-gans","title":"Low-Rank Subspaces in GANs","arxiv_id":"2106.04488","date":"2021-06-08","proceeding":"NeurIPS 2021 12","authors":["Jiapeng Zhu","Ruili Feng","Yujun Shen","Deli Zhao","ZhengJun Zha","Jingren Zhou","Qifeng Chen"],"abstract":"The latent space of a Generative Adversarial Network (GAN) has been shown to encode rich semantics within some subspaces. To identify these subspaces, researchers typically analyze the statistical information from a collection of synthesized data, and the identified subspaces tend to control image attributes globally (i.e., manipulating an attribute causes the change of an entire image). By contrast, this work introduces low-rank subspaces that enable more precise control of GAN generation. Concretely, given an arbitrary image and a region of interest (e.g., eyes of face images), we manage to relate the latent space to the image region with the Jacobian matrix and then use low-rank factorization to discover steerable latent subspaces. There are three distinguishable strengths of our approach that can be aptly called LowRankGAN. First, compared to analytic algorithms in prior work, our low-rank factorization of Jacobians is able to find the low-dimensional representation of attribute manifold, making image editing more precise and controllable. Second, low-rank factorization naturally yields a null space of attributes such that moving the latent code within it only affects the outer region of interest. Therefore, local image editing can be simply achieved by projecting an attribute vector into the null space without relying on a spatial mask as existing methods do. Third, our method can robustly work with a local region from one image for analysis yet well generalize to other images, making it much easy to use in practice. Extensive experiments on state-of-the-art GAN models (including StyleGAN2 and BigGAN) trained on various datasets demonstrate the effectiveness of our LowRankGAN.","url_abs":"https://arxiv.org/abs/2106.04488v2","url_pdf":"https://arxiv.org/pdf/2106.04488v2.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":"low-rank-subspaces-in-gans","repo_url":"https://github.com/zhujiapeng/LowRankGAN","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"attribute","task_name":"Attribute"},{"task_slug":null,"task_name":"Generative Adversarial Network"}],"methods":[{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"path-length-regularization","method_name":"Path Length Regularization"},{"method_slug":"r1-regularization","method_name":"R1 Regularization"},{"method_slug":"weight-demodulation","method_name":"Weight Demodulation"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2106.04488","atlas_url":"https://app.syntology.ai/?focus=2106.04488","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.04488"}},"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/zhujiapeng/LowRankGAN","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":1,"unverified":8},"by_repo_kind":{"official":{"samples":9,"ran":1,"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":"9757ed6aa09ee00c","entry":"import_handler","repo":"zhujiapeng/LowRankGAN","repo_kind":"official","path":"dnnlib/tflib/network.py","file_url":"https://github.com/zhujiapeng/LowRankGAN/blob/HEAD/dnnlib/tflib/network.py","link_basis":"plan_row","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":"9757ed6aa09ee00c"}},{"code_sha256_prefix":"5a6569d11eafa188","entry":"convert_path","repo":"zhujiapeng/LowRankGAN","repo_kind":"official","path":"dnnlib/submission/submit.py","file_url":"https://github.com/zhujiapeng/LowRankGAN/blob/HEAD/dnnlib/submission/submit.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":"5a6569d11eafa188"}},{"code_sha256_prefix":"4e8ae4e7d7c2c4a3","entry":"get_mask","repo":"zhujiapeng/LowRankGAN","repo_kind":"official","path":"coordinate.py","file_url":"https://github.com/zhujiapeng/LowRankGAN/blob/HEAD/coordinate.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":"4e8ae4e7d7c2c4a3"}},{"code_sha256_prefix":"05c6bc0878c2290f","entry":"get_mask_by_coordinates","repo":"zhujiapeng/LowRankGAN","repo_kind":"official","path":"coordinate.py","file_url":"https://github.com/zhujiapeng/LowRankGAN/blob/HEAD/coordinate.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":"05c6bc0878c2290f"}},{"code_sha256_prefix":"7ea70df01520bdf0","entry":"get_mask_by_segmentation","repo":"zhujiapeng/LowRankGAN","repo_kind":"official","path":"coordinate.py","file_url":"https://github.com/zhujiapeng/LowRankGAN/blob/HEAD/coordinate.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":"7ea70df01520bdf0"}},{"code_sha256_prefix":"9d5002fbab594877","entry":"get_path_from_template","repo":"zhujiapeng/LowRankGAN","repo_kind":"official","path":"dnnlib/submission/submit.py","file_url":"https://github.com/zhujiapeng/LowRankGAN/blob/HEAD/dnnlib/submission/submit.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":"9d5002fbab594877"}},{"code_sha256_prefix":"ae7f8c2a374edf1c","entry":"get_plugin","repo":"zhujiapeng/LowRankGAN","repo_kind":"official","path":"dnnlib/tflib/custom_ops.py","file_url":"https://github.com/zhujiapeng/LowRankGAN/blob/HEAD/dnnlib/tflib/custom_ops.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":"ae7f8c2a374edf1c"}},{"code_sha256_prefix":"1f61e80b10011e25","entry":"get_template_from_path","repo":"zhujiapeng/LowRankGAN","repo_kind":"official","path":"dnnlib/submission/submit.py","file_url":"https://github.com/zhujiapeng/LowRankGAN/blob/HEAD/dnnlib/submission/submit.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":"1f61e80b10011e25"}},{"code_sha256_prefix":"29bfeffdb65e32bc","entry":"resize_image","repo":"zhujiapeng/LowRankGAN","repo_kind":"official","path":"compute_jacobian.py","file_url":"https://github.com/zhujiapeng/LowRankGAN/blob/HEAD/compute_jacobian.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":"29bfeffdb65e32bc"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}