{"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/diffusion-models-with-learned-adaptive-noise","title":"Diffusion Models With Learned Adaptive Noise","arxiv_id":"2312.13236","date":"2023-12-20","proceeding":null,"authors":["Subham Sekhar Sahoo","Aaron Gokaslan","Chris De Sa","Volodymyr Kuleshov"],"abstract":"Diffusion models have gained traction as powerful algorithms for synthesizing high-quality images. Central to these algorithms is the diffusion process, a set of equations which maps data to noise in a way that can significantly affect performance. In this paper, we explore whether the diffusion process can be learned from data. Our work is grounded in Bayesian inference and seeks to improve log-likelihood estimation by casting the learned diffusion process as an approximate variational posterior that yields a tighter lower bound (ELBO) on the likelihood. A widely held assumption is that the ELBO is invariant to the noise process: our work dispels this assumption and proposes multivariate learned adaptive noise (MULAN), a learned diffusion process that applies noise at different rates across an image. Specifically, our method relies on a multivariate noise schedule that is a function of the data to ensure that the ELBO is no longer invariant to the choice of the noise schedule as in previous works. Empirically, MULAN sets a new state-of-the-art in density estimation on CIFAR-10 and ImageNet and reduces the number of training steps by 50%. We provide the code, along with a blog post and video tutorial on the project page: https://s-sahoo.com/MuLAN","url_abs":"https://arxiv.org/abs/2312.13236v3","url_pdf":"https://arxiv.org/pdf/2312.13236v3.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":"diffusion-models-with-learned-adaptive-noise","repo_url":"https://github.com/s-sahoo/mulan","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"bayesian-inference","task_name":"Bayesian Inference"},{"task_slug":"density-estimation","task_name":"Density Estimation"},{"task_slug":"image-generation","task_name":"Image Generation"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"},{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/density-estimation-on-cifar-10","task":"Density Estimation","dataset":"CIFAR-10","model":"MULAN","rank_in_archive_order":2,"of":15,"metrics":{"NLL (bits/dim)":"2.55"},"uses_additional_data":false},{"leaderboard":"/sota/density-estimation-on-imagenet-32x32-1","task":"Density Estimation","dataset":"ImageNet 32x32","model":"MuLAN","rank_in_archive_order":1,"of":5,"metrics":{"NLL (bits/dim)":"3.67"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2312.13236","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2312.13236"}},"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/s-sahoo/mulan","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":9,"ran_draft_wrong":1,"ran_honours":1,"ran_violates":1,"unverified":2},"by_repo_kind":{"official":{"samples":11,"ran":10,"repositories":1},"community":{"samples":1,"ran":0,"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":"0b78680501c709aa","entry":"calculate_blur_radius","repo":"s-sahoo/mulan","repo_kind":"official","path":"ldm/dataset.py","file_url":"https://github.com/s-sahoo/mulan/blob/HEAD/ldm/dataset.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0b78680501c709aa"}},{"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":"d949d0d0bc5e63bc","entry":"conditional_decorator","repo":"s-sahoo/mulan","repo_kind":"official","path":"ldm/model_vdm.py","file_url":"https://github.com/s-sahoo/mulan/blob/HEAD/ldm/model_vdm.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d949d0d0bc5e63bc"}},{"code_sha256_prefix":"d741dec5707d4fea","entry":"copy_dict","repo":"s-sahoo/mulan","repo_kind":"official","path":"ldm/experiment.py","file_url":"https://github.com/s-sahoo/mulan/blob/HEAD/ldm/experiment.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d741dec5707d4fea"}},{"code_sha256_prefix":"4ff86972ab4194f5","entry":"dist","repo":"s-sahoo/mulan","repo_kind":"official","path":"ldm/utils.py","file_url":"https://github.com/s-sahoo/mulan/blob/HEAD/ldm/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4ff86972ab4194f5"}},{"code_sha256_prefix":"3f7ef732a2045c0f","entry":"generate_image_grids","repo":"s-sahoo/mulan","repo_kind":"official","path":"ldm/utils.py","file_url":"https://github.com/s-sahoo/mulan/blob/HEAD/ldm/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3f7ef732a2045c0f"}},{"code_sha256_prefix":"fca1c8baa8ecba65","entry":"get_ode_likelihood_fn","repo":"s-sahoo/mulan","repo_kind":"official","path":"ldm/notebook_utils.py","file_url":"https://github.com/s-sahoo/mulan/blob/HEAD/ldm/notebook_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fca1c8baa8ecba65"}},{"code_sha256_prefix":"6f3e290aea3952fb","entry":"get_timestep_embedding","repo":"s-sahoo/mulan","repo_kind":"official","path":"ldm/model_vdm.py","file_url":"https://github.com/s-sahoo/mulan/blob/HEAD/ldm/model_vdm.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6f3e290aea3952fb"}},{"code_sha256_prefix":"28c1cf9c76e7e3b4","entry":"inner_prod","repo":"s-sahoo/MuLAN","repo_kind":"official","path":"ldm/model_mulan_velocity.py","file_url":"https://github.com/s-sahoo/MuLAN/blob/HEAD/ldm/model_mulan_velocity.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"28c1cf9c76e7e3b4"}},{"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":"428176833658e89d","entry":"restore_partial","repo":"s-sahoo/mulan","repo_kind":"official","path":"ldm/experiment.py","file_url":"https://github.com/s-sahoo/mulan/blob/HEAD/ldm/experiment.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"428176833658e89d"}},{"code_sha256_prefix":"ce72b6af52c249b8","entry":"sigmoid","repo":"s-sahoo/mulan","repo_kind":"official","path":"ldm/model_vdm.py","file_url":"https://github.com/s-sahoo/mulan/blob/HEAD/ldm/model_vdm.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ce72b6af52c249b8"}},{"code_sha256_prefix":"4c25c1400cdbb0a1","entry":"allgather_and_reshape","repo":"s-sahoo/mulan","repo_kind":"official","path":"ldm/utils.py","file_url":"https://github.com/s-sahoo/mulan/blob/HEAD/ldm/utils.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":"4c25c1400cdbb0a1"}},{"code_sha256_prefix":"92ee6d3bae662baa","entry":"load_model_from_config","repo":"measure-infinity/mulan-code","repo_kind":"community","path":"scripts/pipeline_sdxl.py","file_url":"https://github.com/measure-infinity/mulan-code/blob/HEAD/scripts/pipeline_sdxl.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":"92ee6d3bae662baa"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}