{"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/making-images-real-again-a-comprehensive","title":"Making Images Real Again: A Comprehensive Survey on Deep Image Composition","arxiv_id":"2106.14490","date":"2021-06-28","proceeding":null,"authors":["Li Niu","Wenyan Cong","Liu Liu","Yan Hong","Bo Zhang","Jing Liang","Liqing Zhang"],"abstract":"As a common image editing operation, image composition (object insertion) aims to combine the foreground from one image and another background image, resulting in a composite image. However, there are many issues that could make the composite images unrealistic. These issues can be summarized as the inconsistency between foreground and background, which includes appearance inconsistency (e.g., incompatible illumination), geometry inconsistency (e.g., unreasonable size), and semantic inconsistency (e.g., mismatched semantic context). Image composition task could be decomposed into multiple sub-tasks, in which each sub-task targets at one or more issues. Specifically, object placement aims to find reasonable scale, location, and shape for the foreground. Image blending aims to address the unnatural boundary between foreground and background. Image harmonization aims to adjust the illumination statistics of foreground. Shadow (resp., reflection) generation aims to generate plausible shadow (resp., reflection) for the foreground. These sub-tasks can be executed sequentially or parallelly to acquire realistic composite images. To the best of our knowledge, there is no previous survey on image composition (object insertion). In this paper, we conduct comprehensive survey over the sub-tasks and combinatorial task of image composition (object insertion). For each one, we summarize the existing methods, available datasets, and common evaluation metrics. We have also contributed the first image composition toolbox libcom, which assembles 10+ image composition related functions.","url_abs":"https://arxiv.org/abs/2106.14490v6","url_pdf":"https://arxiv.org/pdf/2106.14490v6.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":"making-images-real-again-a-comprehensive","repo_url":"https://github.com/bcmi/Awesome-Image-Composition","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"making-images-real-again-a-comprehensive","repo_url":"https://github.com/bcmi/awesome-object-insertion","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"making-images-real-again-a-comprehensive","repo_url":"https://github.com/bcmi/libcom","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"making-images-real-again-a-comprehensive","repo_url":"https://github.com/bcmi/ObjectStitch-Image-Composition","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"making-images-real-again-a-comprehensive","repo_url":"https://github.com/bcmi/controlcom-image-composition","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"making-images-real-again-a-comprehensive","repo_url":"https://github.com/bcmi/mureobjectstitch-image-composition","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"image-harmonization","task_name":"Image Harmonization"},{"task_slug":"object","task_name":"Object"},{"task_slug":"survey","task_name":"Survey"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2106.14490","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.14490"}},"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/libcom","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bcmi/awesome-object-insertion","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bcmi/ObjectStitch-Image-Composition","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bcmi/mureobjectstitch-image-composition","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bcmi/controlcom-image-composition","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/bcmi/Awesome-Image-Composition","reach":{"status":"ok"}}],"summary":{"ran_draft_wrong":1,"ran_honours":1,"ran_violates":1,"unverified":12},"by_repo_kind":{"official":{"samples":12,"ran":0,"repositories":1},"listed":{"samples":1,"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":3,"samples":[{"code_sha256_prefix":"8241c0562bc710fd","entry":"chunk","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"8241c0562bc710fd"}},{"code_sha256_prefix":"3e5f67215d50b497","entry":"clip2sd","repo":"bcmi/ObjectStitch-Image-Composition","repo_kind":"listed","path":"scripts/inference.py","file_url":"https://github.com/bcmi/ObjectStitch-Image-Composition/blob/HEAD/scripts/inference.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3e5f67215d50b497"}},{"code_sha256_prefix":"1e63d588563eb90a","entry":"numpy_to_pil","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"1e63d588563eb90a"}},{"code_sha256_prefix":"bbbe8d9d4e08bd78","entry":"binary_classifier","repo":"bcmi/libcom","repo_kind":"official","path":"libcom/fos_score/source/networks.py","file_url":"https://github.com/bcmi/libcom/blob/HEAD/libcom/fos_score/source/networks.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":"bbbe8d9d4e08bd78"}},{"code_sha256_prefix":"892e3fedcdabebd6","entry":"color_transfer","repo":"bcmi/libcom","repo_kind":"official","path":"libcom/color_transfer/reinhard.py","file_url":"https://github.com/bcmi/libcom/blob/HEAD/libcom/color_transfer/reinhard.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":"892e3fedcdabebd6"}},{"code_sha256_prefix":"8a6243cd7c50b377","entry":"conv_relu_x2","repo":"bcmi/libcom","repo_kind":"official","path":"libcom/fos_score/source/networks.py","file_url":"https://github.com/bcmi/libcom/blob/HEAD/libcom/fos_score/source/networks.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":"8a6243cd7c50b377"}},{"code_sha256_prefix":"1071f8dab5fd3248","entry":"custom_kl_loss","repo":"bcmi/libcom","repo_kind":"official","path":"libcom/fos_score/source/loss_function.py","file_url":"https://github.com/bcmi/libcom/blob/HEAD/libcom/fos_score/source/loss_function.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":"1071f8dab5fd3248"}},{"code_sha256_prefix":"c4921cc4e93b1490","entry":"download_entire_folder","repo":"bcmi/libcom","repo_kind":"official","path":"libcom/utils/model_download.py","file_url":"https://github.com/bcmi/libcom/blob/HEAD/libcom/utils/model_download.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":"c4921cc4e93b1490"}},{"code_sha256_prefix":"cca242a41d647f71","entry":"download_pretrained_model","repo":"bcmi/libcom","repo_kind":"official","path":"libcom/utils/model_download.py","file_url":"https://github.com/bcmi/libcom/blob/HEAD/libcom/utils/model_download.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":"cca242a41d647f71"}},{"code_sha256_prefix":"f15b5e79d5612ae4","entry":"fill_box_with_specified_pixel","repo":"bcmi/libcom","repo_kind":"official","path":"libcom/fos_score/fos_score_prediction.py","file_url":"https://github.com/bcmi/libcom/blob/HEAD/libcom/fos_score/fos_score_prediction.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":"f15b5e79d5612ae4"}},{"code_sha256_prefix":"ed39e42e5a7eb3b3","entry":"get_distillation_module","repo":"bcmi/libcom","repo_kind":"official","path":"libcom/fos_score/source/networks.py","file_url":"https://github.com/bcmi/libcom/blob/HEAD/libcom/fos_score/source/networks.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":"ed39e42e5a7eb3b3"}},{"code_sha256_prefix":"c548e9c1b67153a9","entry":"kl_divergence_loss","repo":"bcmi/libcom","repo_kind":"official","path":"libcom/fos_score/source/loss_function.py","file_url":"https://github.com/bcmi/libcom/blob/HEAD/libcom/fos_score/source/loss_function.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":"c548e9c1b67153a9"}},{"code_sha256_prefix":"a0cbbe6df7f2b9d1","entry":"mask_iou_loss","repo":"bcmi/libcom","repo_kind":"official","path":"libcom/fos_score/source/loss_function.py","file_url":"https://github.com/bcmi/libcom/blob/HEAD/libcom/fos_score/source/loss_function.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":"a0cbbe6df7f2b9d1"}},{"code_sha256_prefix":"bc8e3ebc8aaebb10","entry":"padding_to_square","repo":"bcmi/libcom","repo_kind":"official","path":"libcom/fos_score/fos_score_prediction.py","file_url":"https://github.com/bcmi/libcom/blob/HEAD/libcom/fos_score/fos_score_prediction.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":"bc8e3ebc8aaebb10"}},{"code_sha256_prefix":"afc884a2a95172a8","entry":"reinhard","repo":"bcmi/libcom","repo_kind":"official","path":"libcom/color_transfer/reinhard.py","file_url":"https://github.com/bcmi/libcom/blob/HEAD/libcom/color_transfer/reinhard.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":"afc884a2a95172a8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}