{"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/photomaker-customizing-realistic-human-photos","title":"PhotoMaker: Customizing Realistic Human Photos via Stacked ID Embedding","arxiv_id":"2312.04461","date":"2023-12-07","proceeding":"CVPR 2024 1","authors":["Zhen Li","Mingdeng Cao","Xintao Wang","Zhongang Qi","Ming-Ming Cheng","Ying Shan"],"abstract":"Recent advances in text-to-image generation have made remarkable progress in synthesizing realistic human photos conditioned on given text prompts. However, existing personalized generation methods cannot simultaneously satisfy the requirements of high efficiency, promising identity (ID) fidelity, and flexible text controllability. In this work, we introduce PhotoMaker, an efficient personalized text-to-image generation method, which mainly encodes an arbitrary number of input ID images into a stack ID embedding for preserving ID information. Such an embedding, serving as a unified ID representation, can not only encapsulate the characteristics of the same input ID comprehensively, but also accommodate the characteristics of different IDs for subsequent integration. This paves the way for more intriguing and practically valuable applications. Besides, to drive the training of our PhotoMaker, we propose an ID-oriented data construction pipeline to assemble the training data. Under the nourishment of the dataset constructed through the proposed pipeline, our PhotoMaker demonstrates better ID preservation ability than test-time fine-tuning based methods, yet provides significant speed improvements, high-quality generation results, strong generalization capabilities, and a wide range of applications. Our project page is available at https://photo-maker.github.io/","url_abs":"https://arxiv.org/abs/2312.04461v1","url_pdf":"https://arxiv.org/pdf/2312.04461v1.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":"photomaker-customizing-realistic-human-photos","repo_url":"https://github.com/TencentARC/PhotoMaker","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":"diffusion-personalization","task_name":"Diffusion Personalization"},{"task_slug":"diffusion-personalization-tuning-free","task_name":"Diffusion Personalization Tuning Free"},{"task_slug":"image-generation","task_name":"Image Generation"},{"task_slug":"text-to-image-generation-1","task_name":"Text to Image Generation"},{"task_slug":"text-to-image-generation","task_name":"Text-to-Image Generation"}],"methods":[{"method_slug":"speed","method_name":"SPEED"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/diffusion-personalization-tuning-free-on","task":"Diffusion Personalization Tuning Free","dataset":"AgeDB","model":"PhotoMaker","rank_in_archive_order":6,"of":7,"metrics":{"Cosine Similarity":"0.287","FID":"8.410","LPIPS":"0.424"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2312.04461","atlas_url":"https://app.syntology.ai/?focus=2312.04461","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2312.04461"}},"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/TencentARC/PhotoMaker","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran_draft_wrong":3,"ran":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":"5105747c2711b1cb","entry":"FeedForward","repo":"TencentARC/PhotoMaker","repo_kind":"official","path":"photomaker/resampler.py","file_url":"https://github.com/TencentARC/PhotoMaker/blob/HEAD/photomaker/resampler.py","link_basis":"harvester_set","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":"5105747c2711b1cb"}},{"code_sha256_prefix":"230588e8f1237737","entry":"masked_mean","repo":"TencentARC/PhotoMaker","repo_kind":"official","path":"photomaker/resampler.py","file_url":"https://github.com/TencentARC/PhotoMaker/blob/HEAD/photomaker/resampler.py","link_basis":"harvester_set","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":"230588e8f1237737"}},{"code_sha256_prefix":"bea2d776a332f2b0","entry":"rescale_noise_cfg","repo":"TencentARC/PhotoMaker","repo_kind":"official","path":"photomaker/pipeline_controlnet.py","file_url":"https://github.com/TencentARC/PhotoMaker/blob/HEAD/photomaker/pipeline_controlnet.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":"bea2d776a332f2b0"}},{"code_sha256_prefix":"4cb2e2a2ca0bec9f","entry":"reshape_tensor","repo":"TencentARC/PhotoMaker","repo_kind":"official","path":"photomaker/resampler.py","file_url":"https://github.com/TencentARC/PhotoMaker/blob/HEAD/photomaker/resampler.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":"4cb2e2a2ca0bec9f"}},{"code_sha256_prefix":"22b1f260da28f6a5","entry":"retrieve_timesteps","repo":"TencentARC/PhotoMaker","repo_kind":"official","path":"photomaker/pipeline_controlnet.py","file_url":"https://github.com/TencentARC/PhotoMaker/blob/HEAD/photomaker/pipeline_controlnet.py","link_basis":"harvester_set","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":"22b1f260da28f6a5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}