{"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/cleandiffuser-an-easy-to-use-modularized","title":"CleanDiffuser: An Easy-to-use Modularized Library for Diffusion Models in Decision Making","arxiv_id":"2406.09509","date":"2024-06-13","proceeding":null,"authors":["Zibin Dong","Yifu Yuan","Jianye Hao","Fei Ni","Yi Ma","Pengyi Li","Yan Zheng"],"abstract":"Leveraging the powerful generative capability of diffusion models (DMs) to build decision-making agents has achieved extensive success. However, there is still a demand for an easy-to-use and modularized open-source library that offers customized and efficient development for DM-based decision-making algorithms. In this work, we introduce CleanDiffuser, the first DM library specifically designed for decision-making algorithms. By revisiting the roles of DMs in the decision-making domain, we identify a set of essential sub-modules that constitute the core of CleanDiffuser, allowing for the implementation of various DM algorithms with simple and flexible building blocks. To demonstrate the reliability and flexibility of CleanDiffuser, we conduct comprehensive evaluations of various DM algorithms implemented with CleanDiffuser across an extensive range of tasks. The analytical experiments provide a wealth of valuable design choices and insights, reveal opportunities and challenges, and lay a solid groundwork for future research. CleanDiffuser will provide long-term support to the decision-making community, enhancing reproducibility and fostering the development of more robust solutions. The code and documentation of CleanDiffuser are open-sourced on the https://github.com/CleanDiffuserTeam/CleanDiffuser.","url_abs":"https://arxiv.org/abs/2406.09509v2","url_pdf":"https://arxiv.org/pdf/2406.09509v2.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":"cleandiffuser-an-easy-to-use-modularized","repo_url":"https://github.com/cleandiffuserteam/cleandiffuser","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"cleandiffuser-an-easy-to-use-modularized","repo_url":"https://github.com/Josh00-Lu/DiffusionVeteran","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"cleandiffuser-an-easy-to-use-modularized","repo_url":"https://github.com/carldegio/curiosity-diffuser","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"decision-making","task_name":"Decision Making"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"},{"method_slug":null,"method_name":"Library"},{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2406.09509","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.09509"}},"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/carldegio/curiosity-diffuser","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Josh00-Lu/DiffusionVeteran","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cleandiffuserteam/cleandiffuser","reach":null}],"summary":{"ran_draft_wrong":2,"ran":1,"unverified":6},"by_repo_kind":{"official":{"samples":1,"ran":1,"repositories":1},"listed":{"samples":8,"ran":2,"repositories":2}},"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":"c387df835616a3b5","entry":"inference","repo":"cleandiffuserteam/cleandiffuser","repo_kind":"official","path":"pipelines/dp_pusht.py","file_url":"https://github.com/cleandiffuserteam/cleandiffuser/blob/HEAD/pipelines/dp_pusht.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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c387df835616a3b5"}},{"code_sha256_prefix":"436a7981ede1cf9d","entry":"make_dir","repo":"Josh00-Lu/DiffusionVeteran","repo_kind":"listed","path":"pipelines/utils.py","file_url":"https://github.com/Josh00-Lu/DiffusionVeteran/blob/HEAD/pipelines/utils.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":"436a7981ede1cf9d"}},{"code_sha256_prefix":"03310bba324ae4fb","entry":"modulate","repo":"carldegio/curiosity-diffuser","repo_kind":"listed","path":"tutorials/4_customize_your_diffusion_network_backbone.py","file_url":"https://github.com/carldegio/curiosity-diffuser/blob/HEAD/tutorials/4_customize_your_diffusion_network_backbone.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"03310bba324ae4fb"}},{"code_sha256_prefix":"53247afb0c946c2f","entry":"compare_properties","repo":"Josh00-Lu/DiffusionVeteran","repo_kind":"listed","path":"cleandiffuser/diffusion/consistency_model.py","file_url":"https://github.com/Josh00-Lu/DiffusionVeteran/blob/HEAD/cleandiffuser/diffusion/consistency_model.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":"53247afb0c946c2f"}},{"code_sha256_prefix":"51b9b4b07aefd367","entry":"erf","repo":"Josh00-Lu/DiffusionVeteran","repo_kind":"listed","path":"cleandiffuser/diffusion/consistency_model.py","file_url":"https://github.com/Josh00-Lu/DiffusionVeteran/blob/HEAD/cleandiffuser/diffusion/consistency_model.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":"51b9b4b07aefd367"}},{"code_sha256_prefix":"9254f1964a2be89d","entry":"get_image_coordinates","repo":"Josh00-Lu/DiffusionVeteran","repo_kind":"listed","path":"cleandiffuser/nn_condition/resnets.py","file_url":"https://github.com/Josh00-Lu/DiffusionVeteran/blob/HEAD/cleandiffuser/nn_condition/resnets.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":"9254f1964a2be89d"}},{"code_sha256_prefix":"faff90ffa89289cd","entry":"get_norm","repo":"Josh00-Lu/DiffusionVeteran","repo_kind":"listed","path":"cleandiffuser/nn_condition/resnets.py","file_url":"https://github.com/Josh00-Lu/DiffusionVeteran/blob/HEAD/cleandiffuser/nn_condition/resnets.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":"faff90ffa89289cd"}},{"code_sha256_prefix":"b6b6a836ac8227fc","entry":"parse_cfg","repo":"Josh00-Lu/DiffusionVeteran","repo_kind":"listed","path":"pipelines/utils.py","file_url":"https://github.com/Josh00-Lu/DiffusionVeteran/blob/HEAD/pipelines/utils.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":"b6b6a836ac8227fc"}},{"code_sha256_prefix":"b8baee3808c31f03","entry":"pseudo_huber_loss","repo":"Josh00-Lu/DiffusionVeteran","repo_kind":"listed","path":"cleandiffuser/diffusion/consistency_model.py","file_url":"https://github.com/Josh00-Lu/DiffusionVeteran/blob/HEAD/cleandiffuser/diffusion/consistency_model.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":"b8baee3808c31f03"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}