{"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/residual-denoising-diffusion-models","title":"Residual Denoising Diffusion Models","arxiv_id":"2308.13712","date":"2023-08-25","proceeding":"CVPR 2024 1","authors":["Jiawei Liu","Qiang Wang","Huijie Fan","Yinong Wang","Yandong Tang","Liangqiong Qu"],"abstract":"We propose residual denoising diffusion models (RDDM), a novel dual diffusion process that decouples the traditional single denoising diffusion process into residual diffusion and noise diffusion. This dual diffusion framework expands the denoising-based diffusion models, initially uninterpretable for image restoration, into a unified and interpretable model for both image generation and restoration by introducing residuals. Specifically, our residual diffusion represents directional diffusion from the target image to the degraded input image and explicitly guides the reverse generation process for image restoration, while noise diffusion represents random perturbations in the diffusion process. The residual prioritizes certainty, while the noise emphasizes diversity, enabling RDDM to effectively unify tasks with varying certainty or diversity requirements, such as image generation and restoration. We demonstrate that our sampling process is consistent with that of DDPM and DDIM through coefficient transformation, and propose a partially path-independent generation process to better understand the reverse process. Notably, our RDDM enables a generic UNet, trained with only an L1 loss and a batch size of 1, to compete with state-of-the-art image restoration methods. We provide code and pre-trained models to encourage further exploration, application, and development of our innovative framework (https://github.com/nachifur/RDDM).","url_abs":"https://arxiv.org/abs/2308.13712v3","url_pdf":"https://arxiv.org/pdf/2308.13712v3.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":"residual-denoising-diffusion-models","repo_url":"https://github.com/nachifur/rddm","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"diversity","task_name":"Diversity"},{"task_slug":"image-generation","task_name":"Image Generation"},{"task_slug":"image-restoration","task_name":"Image Restoration"},{"task_slug":"noise-estimation","task_name":"Noise Estimation"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"},{"method_slug":"focus","method_name":"Focus"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2308.13712","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2308.13712"}},"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/nachifur/rddm","reach":{"status":"ok"}}],"summary":{"ran_honours":2,"ran_violates":2,"unverified":1},"by_repo_kind":{"official":{"samples":5,"ran":4,"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":"7f1040f5e3991d5e","entry":"identity","repo":"nachifur/rddm","repo_kind":"official","path":"experiments/0_Partially_path-independent_generation/src/denoising_diffusion_pytorch.py","file_url":"https://github.com/nachifur/rddm/blob/HEAD/experiments/0_Partially_path-independent_generation/src/denoising_diffusion_pytorch.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":2,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7f1040f5e3991d5e"}},{"code_sha256_prefix":"4b1e4330d47f40f3","entry":"betas_for_alpha_bar","repo":"nachifur/rddm","repo_kind":"official","path":"experiments/1_Image_Generation_convert_pretrained_DDIM_to_RDDM/src/scheduling_ddim_original.py","file_url":"https://github.com/nachifur/rddm/blob/HEAD/experiments/1_Image_Generation_convert_pretrained_DDIM_to_RDDM/src/scheduling_ddim_original.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4b1e4330d47f40f3"}},{"code_sha256_prefix":"d1ef6b8cb9a28a53","entry":"default","repo":"nachifur/rddm","repo_kind":"official","path":"experiments/0_Partially_path-independent_generation/src/denoising_diffusion_pytorch.py","file_url":"https://github.com/nachifur/rddm/blob/HEAD/experiments/0_Partially_path-independent_generation/src/denoising_diffusion_pytorch.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d1ef6b8cb9a28a53"}},{"code_sha256_prefix":"608e364a9d2376a3","entry":"exists","repo":"nachifur/rddm","repo_kind":"official","path":"experiments/0_Partially_path-independent_generation/src/denoising_diffusion_pytorch.py","file_url":"https://github.com/nachifur/rddm/blob/HEAD/experiments/0_Partially_path-independent_generation/src/denoising_diffusion_pytorch.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"608e364a9d2376a3"}},{"code_sha256_prefix":"d893c9b09107cedd","entry":"inception_score","repo":"nachifur/rddm","repo_kind":"official","path":"eval/image_generation_eval/fid_and_inception_score.py","file_url":"https://github.com/nachifur/rddm/blob/HEAD/eval/image_generation_eval/fid_and_inception_score.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":"d893c9b09107cedd"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}