{"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/decoupled-data-consistency-with-diffusion","title":"Decoupled Data Consistency with Diffusion Purification for Image Restoration","arxiv_id":"2403.06054","date":"2024-03-10","proceeding":null,"authors":["Xiang Li","Soo Min Kwon","Shijun Liang","Ismail R. Alkhouri","Saiprasad Ravishankar","Qing Qu"],"abstract":"Diffusion models have recently gained traction as a powerful class of deep generative priors, excelling in a wide range of image restoration tasks due to their exceptional ability to model data distributions. To solve image restoration problems, many existing techniques achieve data consistency by incorporating additional likelihood gradient steps into the reverse sampling process of diffusion models. However, the additional gradient steps pose a challenge for real-world practical applications as they incur a large computational overhead, thereby increasing inference time. They also present additional difficulties when using accelerated diffusion model samplers, as the number of data consistency steps is limited by the number of reverse sampling steps. In this work, we propose a novel diffusion-based image restoration solver that addresses these issues by decoupling the reverse process from the data consistency steps. Our method involves alternating between a reconstruction phase to maintain data consistency and a refinement phase that enforces the prior via diffusion purification. Our approach demonstrates versatility, making it highly adaptable for efficient problem-solving in latent space. Additionally, it reduces the necessity for numerous sampling steps through the integration of consistency models. The efficacy of our approach is validated through comprehensive experiments across various image restoration tasks, including image denoising, deblurring, inpainting, and super-resolution.","url_abs":"https://arxiv.org/abs/2403.06054v6","url_pdf":"https://arxiv.org/pdf/2403.06054v6.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":"decoupled-data-consistency-with-diffusion","repo_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"deblurring","task_name":"Deblurring"},{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"image-denoising","task_name":"Image Denoising"},{"task_slug":"image-restoration","task_name":"Image Restoration"},{"task_slug":"super-resolution","task_name":"Super-Resolution"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2403.06054","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.06054"}},"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/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","reach":{"status":"ok"}}],"summary":{"ran":5,"ran_draft_wrong":5,"unverified":9},"by_repo_kind":{"official":{"samples":19,"ran":10,"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":19,"samples":[{"code_sha256_prefix":"e41367ad14ff58fd","entry":"get_param_groups_and_shapes","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/fp16_util.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/fp16_util.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":"e41367ad14ff58fd"}},{"code_sha256_prefix":"e20dd5102da3b050","entry":"make_master_params","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/fp16_util.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/fp16_util.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":"e20dd5102da3b050"}},{"code_sha256_prefix":"8027fc71dcbcfc45","entry":"register_conditioning_method","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/condition_methods.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/condition_methods.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8027fc71dcbcfc45"}},{"code_sha256_prefix":"2423fa5313aa3525","entry":"register_mean_processor","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/posterior_mean_variance.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/posterior_mean_variance.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2423fa5313aa3525"}},{"code_sha256_prefix":"905f4b0d3baca742","entry":"register_noise","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/measurements.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/measurements.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":"905f4b0d3baca742"}},{"code_sha256_prefix":"7f47ba486efd2c7e","entry":"register_operator","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/measurements.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/measurements.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":"7f47ba486efd2c7e"}},{"code_sha256_prefix":"d9bb4d03137bc7e9","entry":"register_sampler","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/gaussian_diffusion.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/gaussian_diffusion.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d9bb4d03137bc7e9"}},{"code_sha256_prefix":"e214ee19e7a9d92b","entry":"register_var_processor","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/posterior_mean_variance.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/posterior_mean_variance.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e214ee19e7a9d92b"}},{"code_sha256_prefix":"64fff1e30802b815","entry":"unflatten_master_params","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/fp16_util.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/fp16_util.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":"64fff1e30802b815"}},{"code_sha256_prefix":"129b804760b3115f","entry":"zero_module","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/nn.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/nn.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":"129b804760b3115f"}},{"code_sha256_prefix":"ecd0fc28815b65ae","entry":"avg_pool_nd","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/nn.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/nn.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":"ecd0fc28815b65ae"}},{"code_sha256_prefix":"944d16b22c6e6e77","entry":"cal_gradient_penalty","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/unet.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/unet.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":"944d16b22c6e6e77"}},{"code_sha256_prefix":"fe4eb545bbb728e0","entry":"conv_nd","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/nn.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/nn.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":"fe4eb545bbb728e0"}},{"code_sha256_prefix":"e7d9c92d6da5e2c9","entry":"create_model","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/unet.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/unet.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":"e7d9c92d6da5e2c9"}},{"code_sha256_prefix":"77fad1533b052188","entry":"create_sampler","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/gaussian_diffusion.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/gaussian_diffusion.py","link_basis":"first_harvest_node","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":"77fad1533b052188"}},{"code_sha256_prefix":"ceb7328ab8bdbfe2","entry":"get_conditioning_method","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/condition_methods.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/condition_methods.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":"ceb7328ab8bdbfe2"}},{"code_sha256_prefix":"e92451e6fb900818","entry":"get_mean_processor","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/posterior_mean_variance.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/posterior_mean_variance.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":"e92451e6fb900818"}},{"code_sha256_prefix":"bbb1be64bf961d18","entry":"get_operator","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/measurements.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/measurements.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":"bbb1be64bf961d18"}},{"code_sha256_prefix":"b910fefa7866252e","entry":"get_sampler","repo":"morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration","repo_kind":"official","path":"guided_diffusion/gaussian_diffusion.py","file_url":"https://github.com/morefre/decoupled-data-consistency-with-diffusion-purification-for-image-restoration/blob/HEAD/guided_diffusion/gaussian_diffusion.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":"b910fefa7866252e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}