{"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/diffusionlight-light-probes-for-free-by","title":"DiffusionLight: Light Probes for Free by Painting a Chrome Ball","arxiv_id":"2312.09168","date":"2023-12-14","proceeding":"CVPR 2024 1","authors":["Pakkapon Phongthawee","Worameth Chinchuthakun","Nontaphat Sinsunthithet","Amit Raj","Varun Jampani","Pramook Khungurn","Supasorn Suwajanakorn"],"abstract":"We present a simple yet effective technique to estimate lighting in a single input image. Current techniques rely heavily on HDR panorama datasets to train neural networks to regress an input with limited field-of-view to a full environment map. However, these approaches often struggle with real-world, uncontrolled settings due to the limited diversity and size of their datasets. To address this problem, we leverage diffusion models trained on billions of standard images to render a chrome ball into the input image. Despite its simplicity, this task remains challenging: the diffusion models often insert incorrect or inconsistent objects and cannot readily generate images in HDR format. Our research uncovers a surprising relationship between the appearance of chrome balls and the initial diffusion noise map, which we utilize to consistently generate high-quality chrome balls. We further fine-tune an LDR diffusion model (Stable Diffusion XL) with LoRA, enabling it to perform exposure bracketing for HDR light estimation. Our method produces convincing light estimates across diverse settings and demonstrates superior generalization to in-the-wild scenarios.","url_abs":"https://arxiv.org/abs/2312.09168v3","url_pdf":"https://arxiv.org/pdf/2312.09168v3.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":"diffusionlight-light-probes-for-free-by","repo_url":"https://github.com/DiffusionLight/DiffusionLight","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"diversity","task_name":"Diversity"},{"task_slug":"lighting-estimation","task_name":"Lighting Estimation"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2312.09168","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2312.09168"}},"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/DiffusionLight/DiffusionLight","reach":null}],"summary":{"ran_honours":2,"ran_violates":2,"ran_draft_wrong":2},"by_repo_kind":{"official":{"samples":6,"ran":6,"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":"514c2ce742c55045","entry":"create_envmap_grid","repo":"DiffusionLight/DiffusionLight","repo_kind":"official","path":"ball2envmap.py","file_url":"https://github.com/DiffusionLight/DiffusionLight/blob/HEAD/ball2envmap.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"514c2ce742c55045"}},{"code_sha256_prefix":"ce4effc348048495","entry":"get_ball_location","repo":"DiffusionLight/DiffusionLight","repo_kind":"official","path":"inpaint.py","file_url":"https://github.com/DiffusionLight/DiffusionLight/blob/HEAD/inpaint.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ce4effc348048495"}},{"code_sha256_prefix":"b643137afa71c998","entry":"get_cartesian_from_spherical","repo":"DiffusionLight/DiffusionLight","repo_kind":"official","path":"ball2envmap.py","file_url":"https://github.com/DiffusionLight/DiffusionLight/blob/HEAD/ball2envmap.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b643137afa71c998"}},{"code_sha256_prefix":"360bcc2d023ca2dd","entry":"get_normal_vector","repo":"DiffusionLight/DiffusionLight","repo_kind":"official","path":"ball2envmap.py","file_url":"https://github.com/DiffusionLight/DiffusionLight/blob/HEAD/ball2envmap.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"360bcc2d023ca2dd"}},{"code_sha256_prefix":"b6cfcee4c507bb23","entry":"interpolate_embedding","repo":"DiffusionLight/DiffusionLight","repo_kind":"official","path":"inpaint.py","file_url":"https://github.com/DiffusionLight/DiffusionLight/blob/HEAD/inpaint.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b6cfcee4c507bb23"}},{"code_sha256_prefix":"da6bb4fd0e3ea527","entry":"parse_filename","repo":"DiffusionLight/DiffusionLight","repo_kind":"official","path":"exposure2hdr.py","file_url":"https://github.com/DiffusionLight/DiffusionLight/blob/HEAD/exposure2hdr.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"da6bb4fd0e3ea527"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}