{"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/hairclipv2-unifying-hair-editing-via-proxy-1","title":"HairCLIPv2: Unifying Hair Editing via Proxy Feature Blending","arxiv_id":"2310.10651","date":"2023-10-16","proceeding":"ICCV 2023 1","authors":["Tianyi Wei","Dongdong Chen","Wenbo Zhou","Jing Liao","Weiming Zhang","Gang Hua","Nenghai Yu"],"abstract":"Hair editing has made tremendous progress in recent years. Early hair editing methods use well-drawn sketches or masks to specify the editing conditions. Even though they can enable very fine-grained local control, such interaction modes are inefficient for the editing conditions that can be easily specified by language descriptions or reference images. Thanks to the recent breakthrough of cross-modal models (e.g., CLIP), HairCLIP is the first work that enables hair editing based on text descriptions or reference images. However, such text-driven and reference-driven interaction modes make HairCLIP unable to support fine-grained controls specified by sketch or mask. In this paper, we propose HairCLIPv2, aiming to support all the aforementioned interactions with one unified framework. Simultaneously, it improves upon HairCLIP with better irrelevant attributes (e.g., identity, background) preservation and unseen text descriptions support. The key idea is to convert all the hair editing tasks into hair transfer tasks, with editing conditions converted into different proxies accordingly. The editing effects are added upon the input image by blending the corresponding proxy features within the hairstyle or hair color feature spaces. Besides the unprecedented user interaction mode support, quantitative and qualitative experiments demonstrate the superiority of HairCLIPv2 in terms of editing effects, irrelevant attribute preservation and visual naturalness. Our code is available at \\url{https://github.com/wty-ustc/HairCLIPv2}.","url_abs":"https://arxiv.org/abs/2310.10651v1","url_pdf":"https://arxiv.org/pdf/2310.10651v1.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":"hairclipv2-unifying-hair-editing-via-proxy-1","repo_url":"https://github.com/wty-ustc/hairclipv2","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"attribute","task_name":"Attribute"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2310.10651","atlas_url":"https://app.syntology.ai/?focus=2310.10651","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2310.10651"}},"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/wty-ustc/HairCLIPv2","reach":{"status":"ok"}}],"summary":{"ran":3,"ran_draft_wrong":1,"unverified":1},"by_repo_kind":{"official":{"samples":5,"ran":4,"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":"2c2f1331898f4592","entry":"custom_loss","repo":"wty-ustc/HairCLIPv2","repo_kind":"official","path":"criteria/style/custom_loss.py","file_url":"https://github.com/wty-ustc/HairCLIPv2/blob/HEAD/criteria/style/custom_loss.py","link_basis":"first_harvest_node","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":"2c2f1331898f4592"}},{"code_sha256_prefix":"cf72cfc1721c8503","entry":"prepare_mask","repo":"wty-ustc/HairCLIPv2","repo_kind":"official","path":"criteria/style/custom_loss.py","file_url":"https://github.com/wty-ustc/HairCLIPv2/blob/HEAD/criteria/style/custom_loss.py","link_basis":"first_harvest_node","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":"cf72cfc1721c8503"}},{"code_sha256_prefix":"29e5e72bcd006dcd","entry":"spatial_average","repo":"wty-ustc/HairCLIPv2","repo_kind":"official","path":"criteria/lpips/networks_basic.py","file_url":"https://github.com/wty-ustc/HairCLIPv2/blob/HEAD/criteria/lpips/networks_basic.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":"29e5e72bcd006dcd"}},{"code_sha256_prefix":"351677a36e1961df","entry":"upsample","repo":"wty-ustc/HairCLIPv2","repo_kind":"official","path":"criteria/lpips/networks_basic.py","file_url":"https://github.com/wty-ustc/HairCLIPv2/blob/HEAD/criteria/lpips/networks_basic.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":"351677a36e1961df"}},{"code_sha256_prefix":"514dd3c0eee3691c","entry":"score_2afc_dataset","repo":"wty-ustc/HairCLIPv2","repo_kind":"official","path":"criteria/lpips/dist_model.py","file_url":"https://github.com/wty-ustc/HairCLIPv2/blob/HEAD/criteria/lpips/dist_model.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"514dd3c0eee3691c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}