Papers › DMPlug: A Plug-in Method for Solving Inverse Problems with Diffusion Models
DMPlug: A Plug-in Method for Solving Inverse Problems with Diffusion Models
Hengkang Wang, Xu Zhang, Taihui Li, Yuxiang Wan, Tiancong Chen, Ju Sun
Pretrained diffusion models (DMs) have recently been popularly used in solving inverse problems (IPs). The existing methods mostly interleave iterative steps in the reverse diffusion process and iterative steps to bring the iterates closer to satisfying the measurement constraint. However, such interleaving methods struggle to produce final results that look like natural objects of interest (i.e., manifold feasibility) and fit the measurement (i.e., measurement feasibility), especially for nonlinear IPs. Moreover, their capabilities to deal with noisy IPs with unknown types and levels of measurement noise are unknown. In this paper, we advocate viewing the reverse process in DMs as a function and propose a novel plug-in method for solving IPs using pretrained DMs, dubbed DMPlug. DMPlug addresses the issues of manifold feasibility and measurement feasibility in a principled manner, and also shows great potential for being robust to unknown types and levels of noise. Through extensive experiments across various IP tasks, including two linear and three nonlinear IPs, we demonstrate that DMPlug consistently outperforms state-of-the-art methods, often by large margins especially for nonlinear IPs. The code is available at https://github.com/sun-umn/DMPlug.
In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.
For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2405.16749")
Code
Syntology Ran 38 of 60 code samples harvested from 12 repositories linked to this paper; 22 have no recorded run. Of those that ran: 5 ran · honoured contract; 12 ran · our draft was wrong; 1 ran · fixture could not drive it; 20 ran with no contract checked.
By repository: official repository: 7 samples from 1 repository, 3 ran; found in paper text by Syntology: 51 samples from 11 repositories, 33 ran; 2 identical to code first harvested elsewhere. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.
Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.
Code Syntology ran Syntology
60 samples harvested; 38 ran; 5 honoured the contract we drafted; 22 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.
Licence: 41 of the 60 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.
Harvested from 12 repositories linked to this paper, official or community; each sample names its own and says which. Some samples are identical code Syntology first harvested from another repository; for those, this paper's copy is not located and its licence is not recorded. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.
Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.
Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: 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. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.
77224ae152b1372f · report
49f7ae5cbcb10534 · report
b79aca843e426a89 · report
228f6454d1f15124 · report
0c188528aae11871 · report
6eb7012cf0ec3021 · report
bbb1be64bf961d18 · report
8ab9a97df8161f31 · report
8cb6b62758ca0c71 · report
3675e481e23792fa · report
d22a74c8bb22f07f · report
45edd4ab056a32fa · report
6701d38dd36970fa · report
e3edcd371d85dd22 · report
cfd76fd0d89574a4 · report
2ab2316ac6fdd869 · report
cd7e7024386fb823 · report
91fa50e293bf2fde · report
040cc21cdcd6aae9 · report
a0131fb70c267a9e · report
e087cbfa1e53486d · report
6154e3744ece5728 · report
cd33283d615fb3d7 · report
c56b7ef16f309a45 · report
0e96d793b5f1d7dd · report
7aa5f3eab66d010a · report
a086d6286a40b889 · report
b63de0bdabb1c981 · report
e41367ad14ff58fd · report
d0f818fa0b61082c · report
49d0f322386ff244 · report
e20dd5102da3b050 · report
bcd8b4acab199405 · report
cf2798b666b231ca · report
408a3cd56a9879c6 · report
8027fc71dcbcfc45 · report
ff10ec72adb6df8c · report
8b2b14a90a19fbe2 · report
666e66f755ba5374 · report
64fff1e30802b815 · report
f404eb41e1c72063 · report
45abc6d9d49d023d · report
424173e3f369bf65 · report
fd913a588001391e · report
4c395cb9de5462ee · report
51ab54cb116c5d1b · report
e8c5e9f4db80bfcb · report
edca27d48197ef50 · report
464c3d3b7a1eb4b3 · report
cbe30e9461c88717 · report
df49c8cd803b8af3 · report
1542a78f6b08854f · report
fca6d857d5c36155 · report
5038ac50ef83af3a · report
e515a67f7f32e76d · report
0c6607473a4c4c55 · report
53d5be4fdbcfac23 · report
9151c793f90473f0 · report
9215fb189fbfb9f4 · report
d9bb4d03137bc7e9 · report
Results from the paper archive 2025-07-28
No leaderboard rows for this paper in the archive.
Methods
Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections