{"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/painterly-image-harmonization-using-diffusion","title":"Painterly Image Harmonization using Diffusion Model","arxiv_id":"2308.02228","date":"2023-08-04","proceeding":null,"authors":["Lingxiao Lu","Jiangtong Li","Junyan Cao","Li Niu","Liqing Zhang"],"abstract":"Painterly image harmonization aims to insert photographic objects into paintings and obtain artistically coherent composite images. Previous methods for this task mainly rely on inference optimization or generative adversarial network, but they are either very time-consuming or struggling at fine control of the foreground objects (e.g., texture and content details). To address these issues, we propose a novel Painterly Harmonization stable Diffusion model (PHDiffusion), which includes a lightweight adaptive encoder and a Dual Encoder Fusion (DEF) module. Specifically, the adaptive encoder and the DEF module first stylize foreground features within each encoder. Then, the stylized foreground features from both encoders are combined to guide the harmonization process. During training, besides the noise loss in diffusion model, we additionally employ content loss and two style losses, i.e., AdaIN style loss and contrastive style loss, aiming to balance the trade-off between style migration and content preservation. Compared with the state-of-the-art models from related fields, our PHDiffusion can stylize the foreground more sufficiently and simultaneously retain finer content. Our code and model are available at https://github.com/bcmi/PHDiffusion-Painterly-Image-Harmonization.","url_abs":"https://arxiv.org/abs/2308.02228v1","url_pdf":"https://arxiv.org/pdf/2308.02228v1.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":"painterly-image-harmonization-using-diffusion","repo_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":null,"task_name":"Generative Adversarial Network"},{"task_slug":"image-harmonization","task_name":"Image Harmonization"},{"task_slug":"inference-optimization","task_name":"Inference Optimization"},{"task_slug":"model","task_name":"model"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2308.02228","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2308.02228"}},"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/bcmi/phdiffusion-painterly-image-harmonization","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":10,"ran_violates":2,"ran_draft_wrong":1,"unverified":3},"by_repo_kind":{"official":{"samples":16,"ran":13,"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":"b04722a19845dc90","entry":"analytic_kernel","repo":"bcmi/phdiffusion-painterly-image-harmonization","repo_kind":"official","path":"ldm/modules/image_degradation/bsrgan.py","file_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization/blob/HEAD/ldm/modules/image_degradation/bsrgan.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b04722a19845dc90"}},{"code_sha256_prefix":"5a0ca1bba88bb4b0","entry":"anisotropic_Gaussian","repo":"bcmi/phdiffusion-painterly-image-harmonization","repo_kind":"official","path":"ldm/modules/image_degradation/bsrgan.py","file_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization/blob/HEAD/ldm/modules/image_degradation/bsrgan.py","link_basis":"harvester_set","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":"5a0ca1bba88bb4b0"}},{"code_sha256_prefix":"c50f180220dfde34","entry":"calc_mean_std","repo":"bcmi/phdiffusion-painterly-image-harmonization","repo_kind":"official","path":"loss/VGG_Loss.py","file_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization/blob/HEAD/loss/VGG_Loss.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c50f180220dfde34"}},{"code_sha256_prefix":"424012cb37b31172","entry":"default","repo":"bcmi/phdiffusion-painterly-image-harmonization","repo_kind":"official","path":"ldm/modules/attention.py","file_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization/blob/HEAD/ldm/modules/attention.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"424012cb37b31172"}},{"code_sha256_prefix":"aa5486a3650902d8","entry":"exists","repo":"bcmi/phdiffusion-painterly-image-harmonization","repo_kind":"official","path":"ldm/modules/attention.py","file_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization/blob/HEAD/ldm/modules/attention.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"aa5486a3650902d8"}},{"code_sha256_prefix":"d5caf57e1135f67f","entry":"get_foreground_mean_std","repo":"bcmi/phdiffusion-painterly-image-harmonization","repo_kind":"official","path":"loss/VGG_Loss.py","file_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization/blob/HEAD/loss/VGG_Loss.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":"d5caf57e1135f67f"}},{"code_sha256_prefix":"f9d4c247328f3337","entry":"get_image_paths","repo":"bcmi/phdiffusion-painterly-image-harmonization","repo_kind":"official","path":"ldm/modules/image_degradation/utils_image.py","file_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization/blob/HEAD/ldm/modules/image_degradation/utils_image.py","link_basis":"harvester_set","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":"f9d4c247328f3337"}},{"code_sha256_prefix":"226f6afcd57ff476","entry":"is_image_file","repo":"bcmi/phdiffusion-painterly-image-harmonization","repo_kind":"official","path":"ldm/modules/image_degradation/utils_image.py","file_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization/blob/HEAD/ldm/modules/image_degradation/utils_image.py","link_basis":"harvester_set","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":"226f6afcd57ff476"}},{"code_sha256_prefix":"b1368330cf0f5642","entry":"isimage","repo":"bcmi/phdiffusion-painterly-image-harmonization","repo_kind":"official","path":"ldm/util.py","file_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization/blob/HEAD/ldm/util.py","link_basis":"harvester_set","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":"b1368330cf0f5642"}},{"code_sha256_prefix":"d72762b700feee6f","entry":"ismap","repo":"bcmi/phdiffusion-painterly-image-harmonization","repo_kind":"official","path":"ldm/util.py","file_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization/blob/HEAD/ldm/util.py","link_basis":"harvester_set","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":"d72762b700feee6f"}},{"code_sha256_prefix":"f6b0e1eb5b7df3e3","entry":"master_only","repo":"bcmi/phdiffusion-painterly-image-harmonization","repo_kind":"official","path":"dist_util.py","file_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization/blob/HEAD/dist_util.py","link_basis":"harvester_set","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":"f6b0e1eb5b7df3e3"}},{"code_sha256_prefix":"04df7487a791a8a1","entry":"modcrop_np","repo":"bcmi/phdiffusion-painterly-image-harmonization","repo_kind":"official","path":"ldm/modules/image_degradation/bsrgan.py","file_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization/blob/HEAD/ldm/modules/image_degradation/bsrgan.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"04df7487a791a8a1"}},{"code_sha256_prefix":"9a299fe5ae09e407","entry":"uniq","repo":"bcmi/phdiffusion-painterly-image-harmonization","repo_kind":"official","path":"ldm/modules/attention.py","file_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization/blob/HEAD/ldm/modules/attention.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9a299fe5ae09e407"}},{"code_sha256_prefix":"0c7693e097d04d63","entry":"get_bare_model","repo":"bcmi/phdiffusion-painterly-image-harmonization","repo_kind":"official","path":"dist_util.py","file_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization/blob/HEAD/dist_util.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":"0c7693e097d04d63"}},{"code_sha256_prefix":"8f1a0aae78f523e7","entry":"log_txt_as_img","repo":"bcmi/phdiffusion-painterly-image-harmonization","repo_kind":"official","path":"ldm/util.py","file_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization/blob/HEAD/ldm/util.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":"8f1a0aae78f523e7"}},{"code_sha256_prefix":"3984b3ec31e90ef0","entry":"patches_from_image","repo":"bcmi/phdiffusion-painterly-image-harmonization","repo_kind":"official","path":"ldm/modules/image_degradation/utils_image.py","file_url":"https://github.com/bcmi/phdiffusion-painterly-image-harmonization/blob/HEAD/ldm/modules/image_degradation/utils_image.py","link_basis":"harvester_set","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":"3984b3ec31e90ef0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}