{"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/arxiv-2602-16198","title":"Training-Free Adaptation of Diffusion Models via Doob's $h$-Transform","arxiv_id":"2602.16198","date":"2026-02-18","proceeding":null,"authors":["Qijie Zhu","Zeqi Ye","Han Liu","Zhaoran Wang","Minshuo Chen"],"abstract":"Adaptation methods have been a workhorse for unlocking the transformative power of pre-trained diffusion models in diverse applications. Existing approaches often abstract adaptation objectives as a reward function and steer diffusion models to generate high-reward samples. However, these approaches can incur high computational overhead due to additional training, or rely on stringent assumptions on the reward such as differentiability. Moreover, despite their empirical success, theoretical justification and guarantees are seldom established. In this paper, we propose DOIT (Doob-Oriented Inference-time Transformation), a training-free and computationally efficient adaptation method that applies to generic, non-differentiable rewards. The key framework underlying our method is a measure transport formulation that seeks to transport the pre-trained generative distribution to a high-reward target distribution. We leverage Doob's $h$-transform to realize this transport, which induces a dynamic correction to the diffusion sampling process and enables efficient simulation-based computation without modifying the pre-trained model. Theoretically, we establish a high probability convergence guarantee to the target high-reward distribution via characterizing the approximation error in the dynamic Doob's correction. Empirically, on D4RL offline RL benchmarks, our method consistently outperforms state-of-the-art baselines while preserving sampling efficiency.","url_abs":"https://arxiv.org/abs/2602.16198","url_pdf":"https://arxiv.org/pdf/2602.16198","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2602.16198","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2602.16198"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/liamyzq/Doob_training_free_adaptation","reach":null}],"summary":{"ran":8,"ran_honours":1,"ran_draft_wrong":1,"unverified":8},"by_repo_kind":{"found_in_text":{"samples":18,"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":18,"samples":[{"code_sha256_prefix":"cf2e38c8b4950425","entry":"Dense","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cf2e38c8b4950425"}},{"code_sha256_prefix":"6dbdaf7c34ad0387","entry":"GaussianFourierProjection","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6dbdaf7c34ad0387"}},{"code_sha256_prefix":"ad3bd39d66e8f065","entry":"GuidanceQt","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ad3bd39d66e8f065"}},{"code_sha256_prefix":"8ebaee8d31db134f","entry":"Residual_Block","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8ebaee8d31db134f"}},{"code_sha256_prefix":"bf39bc92e363e115","entry":"SiLU","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bf39bc92e363e115"}},{"code_sha256_prefix":"6a94ba6c8b96e5c8","entry":"TwinQ","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6a94ba6c8b96e5c8"}},{"code_sha256_prefix":"fdc9881e8b4b335f","entry":"expand_like","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fdc9881e8b4b335f"}},{"code_sha256_prefix":"32b14e1ceb9d35cb","entry":"marginal_prob_std","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"32b14e1ceb9d35cb"}},{"code_sha256_prefix":"d466e7f1c4364a0b","entry":"mlp","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d466e7f1c4364a0b"}},{"code_sha256_prefix":"9cfee71648cee4d4","entry":"rescale_grad","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.py","link_basis":"first_harvest_node","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":"9cfee71648cee4d4"}},{"code_sha256_prefix":"f4b929fd8031a4ae","entry":"Arguments","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.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":"f4b929fd8031a4ae"}},{"code_sha256_prefix":"3e41a30911e361ab","entry":"Critic_Guide","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.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":"3e41a30911e361ab"}},{"code_sha256_prefix":"3660048c3ff8d828","entry":"DDIMSampler","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.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":"3660048c3ff8d828"}},{"code_sha256_prefix":"66321de2ea7c38d3","entry":"DoobHGuidanceSampler","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.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":"66321de2ea7c38d3"}},{"code_sha256_prefix":"c63703b7bde528b5","entry":"QGPO_Critic","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.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":"c63703b7bde528b5"}},{"code_sha256_prefix":"fe1855756d435306","entry":"ScoreBase","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.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":"fe1855756d435306"}},{"code_sha256_prefix":"3d97f205509ebb3b","entry":"ScoreNet","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.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":"3d97f205509ebb3b"}},{"code_sha256_prefix":"1e2b56744de208d8","entry":"build_model","repo":"liamyzq/Doob_training_free_adaptation","repo_kind":"found_in_text","path":"search/doob_search.py","file_url":"https://github.com/liamyzq/Doob_training_free_adaptation/blob/HEAD/search/doob_search.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":"1e2b56744de208d8"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}