VerifiedarXiv:2605.0588933 min
Diffusion · Sampling

DBMSolver: A Training-free Diffusion Bridge Sampler for High-Quality Image-to-Image Translation

A pretrained image-to-image diffusion model, sampled in 6 network calls instead of 119, with no retraining.

A diffusion bridge turns one image into another by running a noisy process that is pinned to the input at one end and to the output at the other. The equation that runs it backward is linear in the image and nonlinear only in the network's guess of the output image. DBMSolver solves the linear part exactly and approximates only that guess.

Explaining the paperDBMSolver: A Training-free Diffusion Bridge Sampler for High-Quality Image-to-Image TranslationVenugopal, Mostafavi, Choi · Seoul National University · CVPR 2026 · arXiv:2605.05889

Hand a diffusion bridge model the edge sketch of a handbag and it paints the handbag. With the sampler it shipped with, the painting takes 119 passes through a 284-million-parameter network and scores an FID of 1.83. DBMSolver runs the same weights through six passes and scores 0.93.

Translation as a walk between two images

Image-to-image translation covers every task where the input is a picture and the output is another picture of the same scene: an edge map into a photograph (Edges2Handbags), a surface-normal map into an outdoor scene (DIODE), a face into its comic version, a segmentation mask into a face, a photo with a hole into the photo filled in. The paper studies all five. In each case the model sees the input and must produce one plausible output, and for most inputs there are many plausible outputs, so the model has to be generative rather than a fixed function.

An ordinary diffusion model is a poor fit for translation. It is built to start from pure Gaussian noise and walk toward data, so the input image has to be bolted on as extra conditioning while the walk still begins at noise. A diffusion bridge model (DBM), introduced in Denoising Diffusion Bridge Models (DDBM) by Zhou, Lou, Khanna and Ermon in 2023, changes the walk itself: the noisy process runs from the output image to the input image, and the network learns to walk it backward, from input to output.

The cost is counted the same way as for any diffusion model. Each step of the trajectory needs the network to look at the current image and make a prediction, and one such forward pass is one network function evaluation, NFE for short. NFE is the cost that matters because everything else in the sampler is arithmetic on tensors, and at 256×256 with a 534-million-parameter U-Net nearly all of the wall-clock time is spent inside the network. The sampler that DBMs shipped with, Hybrid Heun, takes 40 steps at up to 3 calls each, 119 NFE in total. A 2024 follow-up, DBIM, brought that to 20. DBMSolver brings it to 6 while improving the output, and it does so without touching the network: no distillation, no fine-tuning, no new training run. The Edges2Handbags and DIODE numbers in the paper come from the exact checkpoints the DDBM authors released, which is the sense in which the sampler is "training-free".

The argument runs in a few steps: what a bridge is and why it is pinned at both ends; the two equations that run it backward; the observation that those equations are linear in the image and nonlinear only in the network's prediction; the exact solution that follows from solving the linear part by hand, and the second-order approximation of what remains; the singular endpoint that forces the first step to be random; and the call-by-call algorithm with its budget of 2N22N-2 network calls for NN steps.

A diffusion pinned at both ends

Start with an ordinary forward diffusion, the kind covered in the DDPM and score-based SDE explainers. A clean image x0\mathbf{x}_0 is scaled down and has Gaussian noise added, more of both as time tt runs from 0 to TT:

xt=αtx0+σtϵ,ϵN(0,I)\mathbf{x}_t = \alpha_t\,\mathbf{x}_0 + \sigma_t\,\boldsymbol{\epsilon}, \qquad \boldsymbol{\epsilon}\sim\mathcal{N}(\mathbf{0},\mathbf{I})

Two summaries of the schedule appear everywhere below. The signal-to-noise ratio SNRt=αt2/σt2\text{SNR}_t = \alpha_t^2/\sigma_t^2 says how much of xt\mathbf{x}_t is still image, and λt=log(αt/σt)\lambda_t = \log(\alpha_t/\sigma_t), half the log of the SNR, is the variable the solvers below integrate in: equal steps in λ\lambda are wide in the early, high-noise part of the process and narrow in the late, nearly clean part. The bridge models in this paper use the "variance-preserving" schedule from the DDBM code, αt=e(0.05t+0.5t2)\alpha_t = e^{-(0.05t + 0.5t^2)} and σt2=1αt2\sigma_t^2 = 1-\alpha_t^2 on t[0,1]t\in[0,1]. Its constants differ from the VP schedule of Song et al., which ends at nearly pure noise. Here, at t=T=1t=T=1, the signal factor is αT=0.577\alpha_T = 0.577 and the SNR is 0.499: the end of this schedule is half image, half noise. A bridge does not need to reach noise, because its endpoint is going to be an image anyway. The half log-SNR runs from λT=0.35\lambda_T = -0.35 at the input end to λ=5.76\lambda = 5.76 at t=104t = 10^{-4}, the smallest time the sampler visits.

To pin the process, take that forward diffusion and keep only the realizations that happen to arrive at a chosen point xT\mathbf{x}_T at time TT. Conditioning a diffusion on where it ends is a classical operation called Doob's h-transform, and its effect is a single extra drift term: at every time the process is pushed in the direction that makes arriving at xT\mathbf{x}_T more likely, with strength g(t)2xtlogp(xTxt)g(t)^2\,\nabla_{\mathbf{x}_t}\log p(\mathbf{x}_T\mid\mathbf{x}_t), where g(t)g(t) is the diffusion coefficient (the rate at which noise is injected) and the gradient is of the log-probability of reaching the destination from the current point. Because the unconditioned process is Gaussian, that transition probability is Gaussian and its score has a closed form, the paper's equation (4):

xtlogpt(xTxt)=αtαTxTxtσt2(SNRtSNRT1)\nabla_{\mathbf{x}_t}\log p_t(\mathbf{x}_T\mid\mathbf{x}_t)=\frac{\frac{\alpha_t}{\alpha_T}\mathbf{x}_T-\mathbf{x}_t}{\sigma_t^2\left(\frac{\text{SNR}_t}{\text{SNR}_T}-1\right)}
(4)

Read it as a spring: it pulls xt\mathbf{x}_t toward a rescaled copy of the destination, and the denominator shrinks to zero as tTt\to T, so the pull becomes infinitely stiff at the end. The stiffness guarantees arrival, and the same denominator makes the exact ODE solution singular at its starting point, the subject of the section on the first step. No network is involved in this term; it is a closed-form function of the schedule.

The process that results is a diffusion bridge: it leaves x0\mathbf{x}_0 at time 0 and arrives at xT\mathbf{x}_T at time TT with certainty. Its state at an intermediate time is Gaussian, and the DDBM paper works out the mean and variance. With the shorthand rt=SNRT/SNRtr_t = \text{SNR}_T/\text{SNR}_t, a number between 0 and 1 that measures how far along the bridge the state is:

pt(xtx0,xT)=N ⁣(atxT+btx0,  ct2I),at=rtαtαT,bt=αt(1rt),ct2=σt2(1rt)p_t(\mathbf{x}_t\mid\mathbf{x}_0,\mathbf{x}_T)=\mathcal{N}\!\left(a_t\,\mathbf{x}_T + b_t\,\mathbf{x}_0,\; c_t^2\,\mathbf{I}\right),\qquad a_t = r_t\frac{\alpha_t}{\alpha_T},\quad b_t=\alpha_t(1-r_t),\quad c_t^2=\sigma_t^2(1-r_t)
(3)

The mean is a blend of the two endpoints and the variance is the ordinary diffusion variance σt2\sigma_t^2 shrunk by the factor 1rt1-r_t. At t=0t=0 the blend is all x0\mathbf{x}_0 and the variance is zero because σ0=0\sigma_0 = 0. At t=Tt=T the ratio rTr_T is 1, so the blend is all xT\mathbf{x}_T and the variance is zero again. In between the band opens and closes. With the schedule above, at t=0.5t=0.5 the weights are at=0.260a_t=0.260 on the input and bt=0.711b_t=0.711 on the output, with standard deviation ct=0.463c_t = 0.463 on the [1,1][-1,1] pixel scale. (The paper labels this Gaussian's score as the score of pt(xtxT)p_t(\mathbf{x}_t\mid\mathbf{x}_T); the expression contains x0\mathbf{x}_0, so it is the score of the two-endpoint conditional written here. The distinction comes up again two paragraphs down.)

Drag the probe in the figure and read the three coefficients off the band. Then switch to the "variance-exploding" schedule the paper also supports, where αt=1\alpha_t = 1 and σt=t\sigma_t = t up to T=80T=80: the band changes shape but stays pinned at both ends.

Figure 1 · the bridge marginal
0.50
One pixel's bridge from output x₀ (left) to input x_T (right). The amber band is the mean ± 2 ct of equation (3); teal paths are exact samples of the pinned process. Width is zero at both ends. The probe reads at, bt, ct at any time; the button swaps the VP schedule for VE.

Every sample path arrives at xT\mathbf{x}_T itself, so when the process is run backward it can start from the input image itself rather than from noise. A process with zero variance at its start also has no room to differ from one run to the next, and a deterministic solver started there has nothing to fan out from; the section on the first step returns to this.

DDBM trains a network Dθ(xt,t,xT)\mathbf{D}_{\theta}(\mathbf{x}_t, t, \mathbf{x}_T) to predict the clean output x0\mathbf{x}_0 from a bridge sample: draw a training pair, draw a time, sample xt\mathbf{x}_t directly from the Gaussian in (3) (no simulation of the process is ever needed), feed the network xt\mathbf{x}_t with the input image concatenated along the channel axis, and regress onto x0\mathbf{x}_0 with a squared error. For DIODE at 256×256, xt\mathbf{x}_t is a 3×256×2563\times256\times256 tensor of pixel values in [1,1][-1,1], the U-Net receives six channels (the noisy image scaled by a preconditioning factor, then the raw input image), takes 250lnt250\ln t as its time embedding, and returns a 3×256×2563\times256\times256 prediction of the output. The paper calls this an x0\mathbf{x}_0-predicting DBM and writes it Dθ(xs)\mathbf{D}_\theta(\mathbf{x}_s) for short. Predicting the clean image rather than the noise or the score is a choice inherited from DPM-Solver++: the clean image is bounded, so the weights the solver puts on it stay bounded even when a step covers a large range of noise levels, whereas weights on a noise prediction grow without limit toward the clean end.

The solver, though, is written in terms of a score, the gradient of the log-density of the bridge state given only the input, logpt(xtxT)\nabla\log p_t(\mathbf{x}_t\mid\mathbf{x}_T). The two are connected by the bridge version of Tweedie's formula. The score of the two-endpoint Gaussian (3) is (atxT+btx0xt)/ct2(a_t\mathbf{x}_T + b_t\mathbf{x}_0 - \mathbf{x}_t)/c_t^2, which is affine in x0\mathbf{x}_0. The score given only xT\mathbf{x}_T is the average of that expression over every x0\mathbf{x}_0 that could have produced this xt\mathbf{x}_t, and averaging an affine function of x0\mathbf{x}_0 replaces x0\mathbf{x}_0 by its posterior mean. The ideal network is that posterior mean, so:

sθ(xt)=atxT+btDθ(xt)xtct2    xtlogpt(xtxT)\mathbf{s}_\theta(\mathbf{x}_t)=\frac{a_t\,\mathbf{x}_T+b_t\,\mathbf{D}_\theta(\mathbf{x}_t)-\mathbf{x}_t}{c_t^2}\;\approx\;\nabla_{\mathbf{x}_t}\log p_t(\mathbf{x}_t\mid\mathbf{x}_T)
(6)

The identity is exact when Dθ\mathbf{D}_\theta equals the posterior mean, and off by the network's error otherwise. The two-endpoint Gaussian is the regression target, the one-endpoint score is what the trained network ends up approximating, and (6) converts between them. The ct2c_t^2 in the denominator vanishes at both ends of the bridge, so any error in Dθ\mathbf{D}_\theta is magnified by 1/ct21/c_t^2 when converted to a score. The sampler below therefore carries the prediction Dθ\mathbf{D}_\theta itself through every step and converts to a score once, in the final Euler step at t=104t=10^{-4}.

Two ways to run the bridge backward

A forward diffusion can be reversed in two equivalent ways, and both carry over to the bridge. The first is a stochastic differential equation that injects fresh noise as it goes; the second is an ordinary differential equation with no noise at all, and the two produce the same distribution of images at every time even though any single run of one looks nothing like a single run of the other. For the bridge, with the drift f(xt,t)f(\mathbf{x}_t,t) and diffusion g(t)g(t) of the underlying process, the paper's equations (2) and (5) are:

dxt=f(xt,t)dtg(t)2xtlogpt(xtxT)dt+g(t)2xtlogpt(xTxt)dt+g(t)dwt\mathrm{d}\mathbf{x}_t = f(\mathbf{x}_t,t)\,\mathrm{d}t - g(t)^2\,\nabla_{\mathbf{x}_t}\log p_t(\mathbf{x}_t\mid\mathbf{x}_T)\,\mathrm{d}t + g(t)^2\,\nabla_{\mathbf{x}_t}\log p_t(\mathbf{x}_T\mid\mathbf{x}_t)\,\mathrm{d}t + g(t)\,\mathrm{d}\mathbf{w}_t
(2)
dxtdt=f(xt,t)12g(t)2xtlogpt(xtxT)+g(t)2xtlogpt(xTxt)\frac{\mathrm{d}\mathbf{x}_t}{\mathrm{d}t} = f(\mathbf{x}_t,t) - \tfrac{1}{2}\,g(t)^2\,\nabla_{\mathbf{x}_t}\log p_t(\mathbf{x}_t\mid\mathbf{x}_T) + g(t)^2\,\nabla_{\mathbf{x}_t}\log p_t(\mathbf{x}_T\mid\mathbf{x}_t)
(5)

Both run from t=Tt=T down to t=0t=0, so the time increments are negative. Each has three drift pieces. The base drift ff, for this schedule f=(0.05+t)xtf = -(0.05 + t)\,\mathbf{x}_t, is known. The learned piece is the score of the bridge state, supplied through (6) by the network. The third piece is the h-transform drift toward the input from (4), known in closed form with no network. The SDE version, called the Bridge SDE, adds noise g(t)dwtg(t)\,\mathrm{d}\mathbf{w}_t; the ODE version, the Bridge probability-flow ODE, has none.

Compare the two carefully: the score term carries a full g2g^2 in the SDE and half of it in the ODE, while the h-transform term carries g2g^2 in both. The half is not a convention. The noise in the SDE spreads the distribution, and to reproduce the same spreading with a noiseless flow you must convert the diffusion into a transport term, which costs half the score (the argument from Song et al. that gives every probability-flow ODE its 12\tfrac12). The h-transform term is part of the forward drift that defines the bridge, so the conversion leaves it untouched.

The fast samplers built for ordinary diffusion, the ones behind DDIM and DPM-Solver++, cannot be dropped onto a bridge model for the same reason. Their update rules are exact solutions of an ODE that has no h-transform term and a different linear coefficient. Fed a bridge network, they integrate the wrong equation: nothing steers the trajectory to xT\mathbf{x}_T, and the network is handed states it never saw during training. The paper describes the failure as those samplers assuming a Gaussian prior; the update formulas encode the wrong forward process, so handing them the input image as a starting point does not repair them. On CelebAMask-HQ at 6 NFE, DPM-Solver++ scores an FID of 169 against DBMSolver's 35.

Linear in the image, nonlinear only in the network

Substitute the closed forms (4) and (6) into the ODE (5) and collect terms in xt\mathbf{x}_t. Every piece except the network's prediction is a known scalar function of time multiplying xt\mathbf{x}_t or xT\mathbf{x}_T, and the paper's equation (7) records the shape:

dxtdt=L(t)xtlinear, known+N ⁣(Dθ(xt),t,xT)nonlinear, contains the network\frac{\mathrm{d}\mathbf{x}_t}{\mathrm{d}t}=\underbrace{L(t)\,\mathbf{x}_t}_{\text{linear, known}}+\underbrace{N\!\big(\mathbf{D}_\theta(\mathbf{x}_t),\,t,\,\mathbf{x}_T\big)}_{\text{nonlinear, contains the network}}
(7)

An equation of this form is called semi-linear: linear in the state, with a nonlinear remainder. The remainder here is affine in the network output, plus a known multiple of xT\mathbf{x}_T; all the nonlinearity lives inside Dθ\mathbf{D}_\theta, which depends on xt\mathbf{x}_t in whatever way a U-Net does. For the VP schedule the linear coefficient works out to L(t)=ddtlogσt+λt/ρtL(t) = \tfrac{\mathrm{d}}{\mathrm{d}t}\log\sigma_t + \lambda_t'/\rho_t with ρt=SNRt/SNRT1\rho_t = \text{SNR}_t/\text{SNR}_T - 1, a quantity that vanishes at t=Tt=T, so LL blows up at the input end. DPM-Solver exploited the same structure for ordinary diffusion in 2022, and DBIM wrote it down for bridges in 2024; the next section covers what this paper adds.

Why does the split matter for a solver? Euler's method advances the state by the right-hand side times the step, treating the entire right-hand side as constant over the step. That is a poor approximation of the linear part, which is known in closed form and which, for this equation, is stiff: L(t)L(t) contains the 1/ct21/c_t^2 factors from (4) and (6), so it is enormous near both ends of the bridge, and a plain Euler step of any useful size overshoots and diverges. An exponential integrator instead treats L(t)xtL(t)\mathbf{x}_t as the equation and NN as a forcing term, and the variation-of-constants formula gives the state at the end of a step from ss to tt exactly:

xt=estL(r)drxs+steτtL(r)drN(xτ,τ)dτ\mathbf{x}_t = e^{\int_s^t L(r)\,\mathrm{d}r}\,\mathbf{x}_s + \int_s^t e^{\int_\tau^t L(r)\,\mathrm{d}r}\, N(\mathbf{x}_\tau,\tau)\,\mathrm{d}\tau

The first term propagates the current state with an exponential factor that is a closed-form number for this schedule, so no step-size error is ever attached to the linear part. The only thing left to approximate is how the network's prediction varies along the step inside the integral. Freeze it at its value at the start of the step and you have a first-order method that is exact whenever the prediction happens to be constant. Estimate its slope as well and you have a second-order method, with no error term that depends on the size of LL.

The toy below is the same situation in one dimension: dx/dt=kx+N(t)\mathrm{d}x/\mathrm{d}t = -k\,x + N(t) with a stiff decay kk standing in for L(t)L(t) and a smooth forcing N(t)N(t) standing in for the network term. Watch what happens to Euler as you push kk past 22 divided by the step, and what does not happen to the exponential integrators:

Figure 2 · exponential integrators on a stiff toy
k = 36
The amber curve is the exact solution. Gray is Euler on the full right-hand side; dim teal is an exponential integrator with the forcing term frozen per step (first order); bright teal adds a midpoint probe of the forcing term (second order). Raise the stiffness k: Euler diverges once k·h passes 2, both exponential integrators stay put, and only the treatment of N separates them.

The paper uses "order" in the numerical-analysis sense. A method is k-th order when the error it commits in one step shrinks like the step size to the power k+1k+1, so that after the 1/h1/h steps needed to cross a fixed interval the accumulated error shrinks like hkh^k. Halve the step and a first-order method halves its final error; a second-order method quarters it. The paper's "error O(Δt2)O(\Delta t^2)" for its first-order step is the per-step number; the error in the final image is one power lower. In the toy that is visible directly, and in the two-dimensional race later on the page it is measured: ratios of 2 per halving for the first-order step, ratios approaching 4 for the second.

The integrals above are taken in λ\lambda, the half log-SNR, rather than in tt, a choice DPM-Solver introduced and DBIM and this paper keep. Both the propagator eLe^{\int L} and the weight inside the integral become clean exponentials of λ\lambda, and the network's prediction is Taylor-expanded in λ\lambda too. Since the network is fed 250lnt250\ln t as its time input, a linear change in λ\lambda is closer to a linear change in what the network sees than a linear change in tt would be.

The exact solution and its second-order step

Carrying the variation-of-constants formula through for the bridge ODE, with the propagator worked out in closed form, gives the paper's Proposition 2. Write ρt\rho_t for e2(λtλT)1e^{2(\lambda_t-\lambda_T)}-1, which is SNRt/SNRT1\text{SNR}_t/\text{SNR}_T - 1: zero at the input end, growing as the state moves toward the output. Then for a step from ss to t<s<Tt<s<T:

xt=αtαse2(λsλt)ρtρscxxs+αtαTe2(λTλt)[1ρtρs]cTxT+αte2λtρtλsλte2λDθ(xλ)ρλdλ\mathbf{x}_t=\underbrace{\frac{\alpha_t}{\alpha_s}\,e^{2(\lambda_s-\lambda_t)}\sqrt{\frac{\rho_t}{\rho_s}}}_{c_x}\,\mathbf{x}_s+\underbrace{\frac{\alpha_t}{\alpha_T}\,e^{2(\lambda_T-\lambda_t)}\left[1-\sqrt{\frac{\rho_t}{\rho_s}}\right]}_{c_T}\,\mathbf{x}_T+\alpha_t\,e^{-2\lambda_t}\sqrt{\rho_t}\int_{\lambda_s}^{\lambda_t}\frac{e^{2\lambda}\,\mathbf{D}_\theta(\mathbf{x}_\lambda)}{\sqrt{\rho_\lambda}}\,\mathrm{d}\lambda
(9)

Each of the three terms has one job. The first carries the current state forward with a known weight. The second is a known weight on the input image. It exists because the score term enters the ODE at half strength, so it cancels only half of the h-transform's pull toward the input, whereas in the SDE the two cancel exactly; it has no counterpart in ordinary diffusion solvers. The third is an integral over the step of the network's prediction, weighted by e2λ/ρλe^{2\lambda}/\sqrt{\rho_\lambda}, and it is the only place approximation enters.

The approximation is a Taylor expansion of Dθ\mathbf{D}_\theta in λ\lambda around the start of the step, the paper's equation (10):

λsλte2λDθ(xλ)ρλdλ    n=0k1Dθ(n)(xλs)λsλte2λρλ(λλs)nn!dλ\int_{\lambda_s}^{\lambda_t}\frac{e^{2\lambda}\,\mathbf{D}_\theta(\mathbf{x}_\lambda)}{\sqrt{\rho_\lambda}}\,\mathrm{d}\lambda\;\approx\;\sum_{n=0}^{k-1}\mathbf{D}_\theta^{(n)}(\mathbf{x}_{\lambda_s})\int_{\lambda_s}^{\lambda_t}\frac{e^{2\lambda}}{\sqrt{\rho_\lambda}}\,\frac{(\lambda-\lambda_s)^n}{n!}\,\mathrm{d}\lambda
(10)

The derivatives Dθ(n)\mathbf{D}_\theta^{(n)} have to be estimated from network calls; the weight integrals depend only on the schedule and can be worked out once by hand. With k=1k=1 the prediction is frozen, the single weight integral is e2λTρt(1ρs/ρt)e^{2\lambda_T}\sqrt{\rho_t}\,(1-\sqrt{\rho_s/\rho_t}), and the step becomes a fixed linear combination of the current state, the input, and one network prediction (the supplement's equation 21). That step is, coefficient for coefficient, the deterministic step of DBIM, which the paper acknowledges. The listing below gives the three weights in code and their values for the first step of a 6-NFE run, where a single step carries the state from t=0.9999t=0.9999 to t=0.0412t=0.0412, a span of 2.92 in λ\lambda:

# the three weights of the first-order step (supp. Eq. 21), s -> t < s < T
rs, rt = rho(lam(s)), rho(lam(t))
c_x = alpha(t)/alpha(s) * exp(2*(lam(s)-lam(t))) * sqrt(rt/rs)   # on x_s
c_T = alpha(t)/alpha(T) * exp(2*(lam(T)-lam(t))) * (1 - sqrt(rt/rs))  # on x_T
c_D = alpha(t) * exp(2*(lam(T)-lam(t))) * rt * (1 - sqrt(rs/rt))      # on D(x_s)
x_t = c_x * x_s + c_T * x_T + c_D * D_s

# 6-NFE run on DIODE, first ODE step  s = 0.9999 -> t = 0.0412:
#   c_x = 5.251   c_T = -5.245   c_D = 0.993
# so  x_t = 0.993 D_s + 5.25 (x_s - x_T) + 0.006 x_T   (to three decimals)

After the first ODE step the state is 0.9930.993 times the network's guess of the output, plus 5.255.25 times the displacement of the current state from the input, plus a trace of the input. The guess dominates because bt=0.994b_t = 0.994 at t=0.041t = 0.041: the bridge state there is almost entirely output. The section on the first step shows where the 5.255.25 comes from.

With k=2k=2 the expansion keeps the slope of the prediction along λ\lambda. The new weight integral has a closed form with an arctangent in it (supplement equation 24), and the full step, supplement equation 26, is the first-order step plus one correction:

xt=xt(k=1)  +  αt(1e2(λTλt))[arctanρtarctanρsρt+(λtλs1)+ρsρt]Dθ(1)(xλs)\mathbf{x}_t=\mathbf{x}_t^{(k=1)}\;+\;\alpha_t\big(1-e^{2(\lambda_T-\lambda_t)}\big)\left[\frac{\arctan\sqrt{\rho_t}-\arctan\sqrt{\rho_s}}{\sqrt{\rho_t}}+(\lambda_t-\lambda_s-1)+\sqrt{\frac{\rho_s}{\rho_t}}\right]\mathbf{D}_\theta^{(1)}(\mathbf{x}_{\lambda_s})
(S26)

The slope Dθ(1)\mathbf{D}_\theta^{(1)} has to be estimated from values, since the network returns only predictions. DBMSolver does it the way DPM-Solver's second-order singlestep method does: take the first-order step only as far as the midpoint of the interval in λ\lambda, call the network there, and divide the difference of the two predictions by the gap in λ\lambda. That midpoint call is the second network evaluation each step costs, and it is fresh information about the current step rather than a value remembered from the previous one. For the first ODE step of the 6-NFE run the midpoint sits at t=0.274t = 0.274, the slope's weight comes out to 1.991.99, and the finite difference divides by a gap of 1.461.46. The supplement leaves the position of the midpoint unstated; the released code puts it at the λ\lambda-midpoint for DIODE and at the tt-midpoint for Edges2Handbags, a per-dataset choice the paper does not mention. Both are valid slope estimates because the difference is always divided by the actual λ\lambda gap, but they are different samplers.

The paper stops at k=2k=2 because a third-order step would need the weight integral with (λλs)2(\lambda-\lambda_s)^2, and in this variable that integral has no elementary antiderivative: substituting u=ρλu=\sqrt{\rho_\lambda} turns it into an integral of log2(1+u2)\log^2(1+u^2), which needs the dilogarithm. DBIM reaches second and third order a different way, by reusing the network's predictions from earlier steps in a multistep formula (one call per step, but extrapolating from stale information). The obstruction belongs to the expansion variable rather than to the bridge: DBIM expands in log(bt/ct)\log(b_t/c_t) instead of λ\lambda, and in that variable every weight is elementary. DBIM's second-order slope is also a derivative with respect to that different variable, so the two second-order methods are different schemes rather than the same scheme with and without memory.

The Bridge SDE (2) has the same structure and yields to the same treatment. Its linear coefficient integrates to (αt/αs)e2(λsλt)(\alpha_t/\alpha_s)\,e^{2(\lambda_s-\lambda_t)}, and after substituting (4) and (6) the terms in xT\mathbf{x}_T cancel identically, so the SDE drift is linear in xt\mathbf{x}_t plus a multiple of the network's prediction, the same shape as for an ordinary diffusion. Freezing the prediction and integrating the noise term exactly gives the paper's Proposition 1, its first-order SDE step:

xt=SNRsSNRtαtαsxs+αt(1SNRsSNRt)Dθ(xs)+σt1SNRsSNRt  z,zN(0,I)\mathbf{x}_t=\frac{\text{SNR}_s}{\text{SNR}_t}\frac{\alpha_t}{\alpha_s}\,\mathbf{x}_s+\alpha_t\left(1-\frac{\text{SNR}_s}{\text{SNR}_t}\right)\mathbf{D}_\theta(\mathbf{x}_s)+\sigma_t\sqrt{1-\frac{\text{SNR}_s}{\text{SNR}_t}}\;\mathbf{z},\qquad \mathbf{z}\sim\mathcal{N}(\mathbf{0},\mathbf{I})
(8)

With the prediction held fixed this is a draw from the Gaussian posterior of the forward process given the current state and a clean image equal to the prediction, and when the step starts at s=Ts=T its three coefficients are the bridge coefficients at,bt,cta_t, b_t, c_t of (3). The supplement also derives a second-order version of (8), and the coefficient it prints for the derivative term does not match the integral it comes from. Evaluating 2αte2λtλsλte2λ(λλs)dλ2\alpha_t e^{-2\lambda_t}\int_{\lambda_s}^{\lambda_t} e^{2\lambda}(\lambda-\lambda_s)\,\mathrm{d}\lambda gives the first expression below; the supplement prints the second:

αt[(λtλs)12(1SNRsSNRt)](correct)vs.αt[λtλs+SNRsSNRt1](printed)\alpha_t\Big[(\lambda_t-\lambda_s)-\tfrac12\big(1-\tfrac{\text{SNR}_s}{\text{SNR}_t}\big)\Big]\quad\text{(correct)}\qquad\text{vs.}\qquad \alpha_t\Big[\lambda_t-\lambda_s+\tfrac{\text{SNR}_s}{\text{SNR}_t}-1\Big]\quad\text{(printed)}

Expand both in the step h=λtλsh=\lambda_t-\lambda_s: the correct one begins at h2h^2, as a second-order correction must, while the printed one begins at h-h and would undo the method's order. The released code does not use the printed formula, and the paper's own default is the first-order SDE step, so nothing in the reported results depends on it. The next section covers why the SDE step exists at all.

Why the first step has to be random

Proposition 2 was stated for s<Ts<T, and the coefficients show why. At s=Ts = T the quantity ρs\rho_s is zero, so ρt/ρs\sqrt{\rho_t/\rho_s} is infinite: the weight cxc_x on the current state and the weight cTc_T on the input both diverge, with opposite signs. The exact ODE solution cannot be started from the input image. In the geometry of Figure 1, a noiseless flow started at the pinched right end stays a single point, so it cannot produce the spread of outputs that the bridge has at every later time; the variation has to be injected before the ODE takes over.

The paper's answer is to take the first step, from TT to TϵT-\epsilon with ϵ=104\epsilon = 10^{-4}, with the SDE step (8), and every step after it with the ODE step. From s=Ts=T the coefficients of (8) are 0.99980.9998 on the input, 0.000180.00018 on the network's guess, and 0.01450.0145 on the noise: the state moves by about one and a half percent of the pixel range. The very next step multiplies the displacement of the state from the input by cx=5.25c_x = 5.25, so a displacement with standard deviation 0.01450.0145 becomes one with standard deviation 0.0760.076, which is σ0.041\sigma_{0.041}, the noise level of the bridge at the landing time, to three decimals. cxc_x grows like one over the square root of the gap TsT-s, the noise standard deviation shrinks like the square root of the same gap, and their product is a schedule-determined constant.

So the seed of that one small draw decides which of the possible outputs the deterministic trajectory lands on. The supplement shows several faces generated from one segmentation map by changing only that seed. Check the balance in the figure: the two divergent weights, their finite sum, the shrinking noise, and the flat product, as the gap between the start and the pinned endpoint goes from one half down to one millionth:

Figure 3 · the singular start
1.0e-4
Weights of the exact ODE step (9) landing at t = 0.5, as the start s approaches T (gap shrinking to the right, log axes). c_x and |c_T| both grow like one over the square root of the gap; their sum stays flat. The dotted gray line is the noise standard deviation of the SDE step (8) that produces x_s; the violet line is c_x times it, and it stays flat too. The default gap, 10⁻⁴, is the paper's ε.

Two consequences follow. Because only the first step is stochastic, DBMSolver has no knob for how random the sampler is; DBIM's η\eta parameter, which mixes noise into every step, has no counterpart here. And because the SDE step from TT is, with the prediction frozen, an exact draw from the bridge Gaussian around the network's guess, the same start is used by DBIM (its "booting" step) and by ODES3, the stochastic-start Heun sampler the paper compares against, whose own theorem shows that this draw beats a single Euler–Maruyama step of the SDE (Euler's method with a noise term added per step).

The algorithm, call by call

Algorithm 1 of the paper, with the details the released code settles, goes like this: pick NN step times running down from tN=Tt_N = T to t0=0t_0 = 0, with tN1=T104t_{N-1} = T - 10^{-4} and the interior times on the Karras spacing (a power-law grid with exponent 7 that packs points near the clean end) down to t1=104t_1 = 10^{-4}; call the network once at the input to get Dθ(xT)\mathbf{D}_\theta(\mathbf{x}_T) and take the SDE step (8) to tN1t_{N-1}; take second-order ODE steps (S26) down to t1t_1, two calls each; and finish with one plain Euler step of the ODE (5) from t1t_1 to 0, converting the last prediction to a score with (6) and adding the h-transform term (4). The count of network calls is

NFE=1SDE step+2(N2)second-order steps+1final Euler=2N2.\text{NFE} = \underbrace{1}_{\text{SDE step}} + \underbrace{2\,(N-2)}_{\text{second-order steps}} + \underbrace{1}_{\text{final Euler}} = 2N-2.

Six calls means four steps on the grid 1, 0.9999, 0.0412, 0.0001, 0; twenty calls means eleven steps, with the first ODE step running from 0.9999 to 0.552.

Figure 4 · where the network calls go
NFE = 6
The same Karras grid on the t axis (top) and the λ axis (bottom), with every network call marked on the λ axis: the SDE call at T, a filled call at the start of each second-order step and a hollow one at its λ-midpoint, and the final Euler call. Slide N and watch NFE = 2N − 2; at N = 4 the first ODE step alone covers λ from −0.35 to 2.57.

Karras spacing puts many points near the clean end in tt, yet in λ\lambda the four-step grid is nearly uniform, with the first ODE step covering 2.92 of the 6.1 units of half log-SNR. The second-order correction matters most on that step: the network's guess changes most between the input end and the middle of the bridge, and freezing it across half the range is the error the midpoint call repairs.

Three implementation facts from the code that the paper leaves out. The final Euler step from t=104t=10^{-4} to 0 does not jump to the clean prediction: its coefficient on the move toward the bridge mean is 0.50050.5005, so it goes halfway, leaving about half of σ104=0.0032\sigma_{10^{-4}} = 0.0032 in residual noise, well below one 8-bit gray level. Every prediction is clamped to [1,1][-1,1] before use, which is harmless because a posterior mean of pixels in that range lies in that range. And the network never receives TT; it receives the scaled noisy image, the input image concatenated as three more channels, and 250lnt250\ln t as its time embedding. In pseudocode, the sampler is:

# DBMSolver, N steps, VP bridge (beta_min=0.1, beta_d=2, T=1).  NFE = 2N-2
# D(x, t) = network's x0 prediction, conditioned on x_T (concatenated channels)
lam  = lambda t: log(alpha(t) / sigma(t))          # half log-SNR
rho  = lambda l: exp(2 * (l - lam(T))) - 1          # rho(l, lam_T) of Eq. 9
grid = karras_rho7(n=N-1, t_min=1e-4, t_max=T-1e-4) + [0.0]

x = x_T                                             # the input image
D0 = D(x_T, T)                                      # call 1
x = sde_step(x_T, s=T, t=grid[0], D=D0, z=randn())  # Eq. 8: the only randomness
for s, t in zip(grid[:-1], grid[1:]):
    if t == 0:                                      # last step: plain Euler on Eq. 5
        x = x + (t - s) * bridge_ode_rhs(x, s, D(x, s))          # call
        break
    Ds  = D(x, s)                                                # call
    t_m = t_of_lam(0.5 * (lam(s) + lam(t)))         # midpoint in lambda (DIODE)
    x_m = k1_step(x, s, t_m, Ds)                    # supp. Eq. 21, first order
    D1  = (D(x_m, t_m) - Ds) / (lam(t_m) - lam(s))  # call; slope of D along lambda
    x   = k1_step(x, s, t, Ds) + c1(s, t) * D1      # supp. Eq. 26, second order
return clamp(x, -1, 1)

Same budget, three solvers

The claims so far can be checked on a problem small enough to solve to machine precision. Take a two-dimensional "image", a fixed input point xT\mathbf{x}_T, and let the possible outputs be a mixture of three Gaussians. For that problem the ideal predictor E[x0xt,xT]\mathbb{E}[\mathbf{x}_0\mid\mathbf{x}_t,\mathbf{x}_T] has a closed form, so every sampler below runs on the same perfect network with the same VP schedule and the same Karras grid as the code, and the only thing that differs between them is the solver. Each seed has an exact answer, obtained by integrating the ODE with fifteen hundred tiny steps, marked by a ring; the segment from the ring to a sampler's endpoint is that seed's error. Hold the NFE budget fixed and switch methods:

Figure 5 · three solvers at equal NFE
6
Thirty-six seeds run from the input to the three possible outputs. Teal paths and dots are the sampler; rings are the exact endpoints for the same seeds. At 6 NFE the first-order step herds most seeds toward the mean output, the second-order step lands over half of them in the right mode, and Euler leaves the frame. Slide to 20 and 40 NFE to watch the second-order error fall about four times faster than the first-order error. At 2 NFE every method is the same two calls and diverges. Hover a dot to follow one seed.

Three things to take from the figure. Euler on the raw ODE diverges at every budget shown: its first step starts next to the pinned end, where the linear term is stiffest, and multiplies the small deviation from the input by hundreds instead of the exact factor, so the state leaves the canvas. The paper's Hybrid Heun and DPM-Solver++ numbers at 5 or 6 NFE (FID 442 and 169 on CelebAMask-HQ) are the image-scale version of a plain solver failing near that end. The first-order step is stable but pulls toward the average of the possible outputs when the steps are coarse, because a frozen prediction over a wide step is the network's guess from the noisy end of that step, which is a blend of all the outputs; in images this shows up as the blur and missing texture the paper reports for DBIM at 6 NFE. And the second-order step separates the modes with the same budget. Measured on this toy at equal NFE, its median endpoint error is 1.14 against 1.54 at 6 NFE, 0.49 against 1.02 at 10, 0.18 against 0.49 at 20, and 0.06 against 0.26 at 40, so the gap widens as the budget grows, as a difference of one order predicts.

The toy's predictor is exact, which no real network is. On real images the network's error in Dθ\mathbf{D}_\theta is untouched by any solver, and the paper's own explanation for its weakest result, ImageNet inpainting, is that this error dominates there, since a better solver removes discretization error and nothing else.

What it buys on real images

The paper evaluates on five translation tasks with the standard metrics: FID, the Fréchet distance between Inception features of generated and reference images (lower is better, and it compares distributions, not paired images), plus Inception score, LPIPS (a learned perceptual distance between paired images) and mean squared error, and a classifier accuracy for inpainting. The comparison is against the sampler DDBM shipped with (Hybrid Heun, 119 NFE), DBIM at first, second and third order (20 NFE), a stochastic-start Heun sampler (28 NFE), and two distilled one- and two-step models that require training. Switch datasets in the figure and look for where the teal points sit:

Figure 6 · FID against network calls
Every point is a row of the paper's Tables 2 to 6 (plus the supplement's CelebAMask-HQ points), FID on a log axis against NFE on a log axis; lower-left is better. DBMSolver at 6 and 20 NFE against DBIM at 20, Hybrid Heun at 119, ODES3 at 28, and the distilled models at 1 and 2. Hover for exact values.

On DIODE, the normals-to-outdoor-scene task at 256×256, six calls give FID 3.38 against Hybrid Heun's 4.43 at 119 calls and DBIM-3's 4.23 at 20. Twenty calls give 2.06, and the abstract's "53% drop" is this number against the authors' rerun of DBIM-2 at 4.40 (DBIM's own paper reports 4.34 for that setting, which would make it 52.5%). LPIPS and MSE, the paired metrics that measure faithfulness to the specific target, are tied between the samplers, so the gain is in how natural the set of outputs looks rather than in per-pixel closeness. On Edges2Handbags, six calls give 0.93 (Table 3; the text and Table 6 say 0.97 for the same run) and twenty give 0.53. These handbag FIDs are computed against the training set, following DDBM's protocol, which is why they are so much smaller than the FIDs reported for unconditional ImageNet generation; compare them with each other, not with those.

On Face2Comics at 20 NFE DBMSolver reaches 0.96 where DBIM at the same budget sits between 8.6 and 9.3 and Hybrid Heun at 119 gets 2.36. At 6 NFE it scores 3.04, better than any DBIM row but worse than Hybrid Heun's 2.36, so on Face2Comics DBMSolver matches Hybrid Heun's quality only at 20 calls, a saving of about 6 times rather than the headline 20. On CelebAMask-HQ, the segmentation-mask-to-face task, DBMSolver reaches 17.56 at 20 NFE against DBIM-3's 19.49, and the supplement adds 34.76 at 6 NFE against DBIM's 44.92. The GAN and other-diffusion rows in those tables are copied from the BBDM paper (Brownian Bridge Diffusion Models, an earlier bridge method that appears as a row in the same tables), which used its own reference split and pipeline, so the gap between 0.96 and BBDM's 23.20 is not a like-for-like measurement.

ImageNet inpainting, filling a 128×128 hole in the center of a 256×256 photo, is the counterexample, and the paper labels it as its limitation. At 20 NFE DBMSolver ties DBIM-2 and DBIM-3, FID 4.07 and classifier accuracy 72.0 for all three; at 6 NFE it scores 4.98, better than DBIM at 6 (5.36) but worse than DBIM at 20 (4.13). Table 5's caption claims superiority "across all NFEs", which its own rows do not support. The paper's explanation is the one from the toy above: on a harder, more varied dataset the network's prediction error dominates the discretization error, and a better solver can only fix the latter.

Against the stochastic-start Heun sampler ODES3 the margin is small on Edges2Handbags, 0.53 at 20 NFE against 0.54 at 28, with ODES3 marginally better on Inception score and LPIPS, so the advantage there is 20 calls against 28; on DIODE the gap is 2.06 against 2.29. Against distillation the paper quotes the two distilled models: consistency bridge distillation (CBD) at 2 NFE (1.30 on Edges2Handbags, 3.66 on DIODE) and Inverse Bridge Matching Distillation (IBMD) at 1 NFE (1.26, 4.07), both worse than DBMSolver's six-call numbers. CBD's own paper, Consistency Diffusion Bridge Models, also reports its stronger consistency bridge training (CBT) variant at 2 NFE, 0.80 and 2.93, which beats DBMSolver at 6; and IBMD at 4 NFE reaches 4.03 on ImageNet inpainting. If you can afford a training run, distillation still wins per call. DBMSolver costs nothing to adopt: the abstract's "up to 5×" fewer calls has no table pair behind it, but 3.3× fewer calls than DBIM at better FID on three of the five tasks, and 20× fewer than Hybrid Heun at better FID on four of them, are both in the tables.

For an implementer, the method reduces to a checklist. Take any DDBM checkpoint with its schedule αt,σt\alpha_t, \sigma_t and its x0\mathbf{x}_0-predicting denoiser. Build a Karras grid of N1N-1 times from T104T-10^{-4} to 10410^{-4} and append 0. Call the denoiser at the input image and take one SDE step (8) with a single Gaussian draw. For each interior interval, call the denoiser at the start, take the first-order step (supplement equation 21) to the λ\lambda-midpoint, call it again there, form the finite-difference slope, and apply (S26). Finish with one Euler step of (5) from 10410^{-4} to 0 and clamp to [1,1][-1,1]. Four steps cost six calls and, on DIODE, score an FID of 3.38.

Provenance Verified against primary literature
DBMSolver (2026)Venugopal, Mostafavi, Choi, CVPR 2026, arXiv:2605.05889: the semi-linear forms of the bridge SDE and PF ODE (Eq. 7), the first-order SDE step (Eq. 8), the exact ODE solution in λ = log(α/σ) (Eq. 9), its Taylor expansion (Eq. 10), the closed-form second-order step with the arctan weight (supp. Eqs. 24–26), Algorithm 1, and Tables 2–6. Every integral on this page was re-derived symbolically and checked numerically against the paper and the code.
Official code (snumprlab/dbmsolver)ddbm/karras_diffusion.py, sample_dbmsolver (lines 536–731): Karras ρ=7 grid of N−1 points from T−1e-4 to 1e-4 plus 0; NFE = 2N−2 (scripts/sample.sh, N = (NFE+2)/2); the second-order step probes a midpoint (in λ for DIODE, in t for Edges2Handbags) and estimates the slope of D by a forward difference; every D output is clamped to [−1, 1] (clip_denoised); the input x_T enters the U-Net by channel concatenation (unet.py, 6 input channels); T is never a network input; VP constants beta_min=0.1, beta_d=2 (scripts/args.sh). Term-by-term match with supp. Eq. 26 verified.
DDBM (Zhou, Lou, Khanna, Ermon, 2023)Denoising Diffusion Bridge Models, arXiv:2309.16948: Doob’s h-transform, the reverse bridge SDE and bridge PF ODE (Theorem 1), the Gaussian bridge marginal with coefficients a_t, b_t, c_t, bridge score matching and the x_0-prediction parameterization, the Hybrid Heun sampler (3 calls per step), and the released Edges2Handbags and DIODE checkpoints DBMSolver reuses.
DBIM (Zheng, He, Chen, Bao, Zhu, 2024)Diffusion Bridge Implicit Models, arXiv:2405.15885: the deterministic first-order step DBMSolver’s k=1 reproduces, the exact variation-of-constants solution of the bridge ODE in the variable log(b_t/c_t) (Eq. 17), and the multistep second- and third-order samplers (App. D). DBIM’s Table 6 reports 4.34 / 4.20 for its 2nd / 3rd order on DIODE at 20 NFE; DBMSolver’s rerun gives 4.40 / 4.23.
DPM-Solver / DPM-Solver++ (Lu et al., 2022)arXiv:2206.00927 and 2211.01095: the half log-SNR change of variable, Taylor expansion of the network term in λ, the singlestep midpoint estimate of its derivative (DPM-Solver-2, r = ½), and the multistep alternative that reuses past evaluations.
Hochbruck & Ostermann (2010)Exponential Integrators, Acta Numerica 19: the variation-of-constants formula and why integrating the linear part exactly removes its discretization error.
Song et al. (2021)Score-Based Generative Modeling through SDEs, arXiv:2011.13456: the reverse-time SDE, the probability-flow ODE, and the ½ that the ODE puts on the score term and the SDE does not.
Wang et al. (2024); He et al. (2024); Gushchin et al. (2025)The stochastic-start ODE sampler compared as ODES3 (arXiv:2412.19992), whose first step is posterior sampling rather than Euler–Maruyama; Consistency Diffusion Bridge Models (arXiv:2410.22637), whose CBT variant reaches 0.80 / 2.93 FID at 2 NFE on Edges2Handbags / DIODE; Inverse Bridge Matching Distillation (arXiv:2502.01362), 4.03 FID at 4 NFE on ImageNet inpainting.
correctionFour points where the page departs from the paper. (1) The supplement’s second-order Bridge SDE step (supp. Eqs. 10–12) prints the coefficient of the derivative term as α_b(λ_b − λ_a + SNR_a/SNR_b − 1). Evaluating the integral gives α_b[(λ_b − λ_a) − ½(1 − SNR_a/SNR_b)]; the printed form is first order in the step and would destroy the claimed order. The released code does not use the printed formula, and the paper’s default is the first-order SDE step, so no reported number depends on it. (2) Eq. (3) is introduced as the score of p_t(x_t | x_T), but the expression contains x_0 and is the score of the two-endpoint Gaussian p_t(x_t | x_0, x_T); the network learns the x_T-conditional score as the regression minimizer, and Eq. (6) recovers it by inserting the posterior mean. (3) Table 3 reports 0.93 FID for the 6-NFE Edges2Handbags run; the text and Table 6 report 0.97 for the same run. We quote 0.93 and say so. Table 5’s caption (“superior FID and CA across all NFEs”) is not supported by its own rows: at 20 NFE DBMSolver ties DBIM-2 and DBIM-3 exactly. (4) Sec. 2.2 and Table 1 describe ODES3 as starting with an Euler–Maruyama step; ODES3’s Algorithm 1 starts with a posterior draw, the same formula as DBMSolver’s own first step.

Questions you might still have

?

Is DBMSolver just DBIM with an extra term?
Its first-order step is DBIM’s deterministic step, and the paper says so. The exact solution both build on was already written down in the DBIM paper, in a different variable. The paper adds the second-order step: a closed-form weight (with an arctan) on the slope of the network’s prediction along the half log-SNR, and a fresh midpoint network call to measure that slope inside each step. DBIM’s second and third orders instead reuse the previous step’s prediction, which costs one call per step but extrapolates from stale information. At 20 NFE the singlestep version wins on DIODE, Edges2Handbags and Face2Comics and ties on ImageNet inpainting.

?

Why not run DPM-Solver++ on a bridge model as it is?
DPM-Solver++ integrates the ordinary reverse ODE, whose drift has no term pulling toward the input image and a different linear coefficient. Applied to a bridge network it solves the wrong equation: the trajectory is not steered to x_T, and the network is fed states it never saw in training. The paper reports that DPM-Solver++ on these models keeps the layout but loses colour and texture, with FID 169 on CelebAMask-HQ at 6 NFE against 35 for DBMSolver.

?

If the ODE is deterministic, where do different outputs for one input come from?
From the single stochastic step at the start. From the pinned endpoint the ODE cannot fan out, so the first step draws x at T − 0.0001 from the bridge Gaussian around the network’s guess. The draw moves the image by a standard deviation of 0.014 on the [−1, 1] pixel scale, and the exact solution multiplies that displacement by a coefficient that grows like one over the square root of the gap, 5.25 for the first ODE step of a 6-NFE run. The seed of that one draw decides which output the deterministic trajectory lands on; the supplement shows several faces for one segmentation map produced exactly this way.

?

Why does the paper stop at second order?
Because in the paper’s expansion variable, the third-order weight is an integral of log squared of (1 + u²), which has no elementary antiderivative; it needs a dilogarithm. The obstruction belongs to the variable, not to the bridge: in DBIM’s variable every weight is elementary, which is how DBIM gets a third order (numerically, with multistep reuse). The paper’s own ablation also shows a second-order first step buys nothing measurable (FID 3.38 either way at 4 steps) while costing one more call.

?

Should I use this or a distilled one-step model?
If you can train, distillation still wins per call. The paper compares against the weaker of the two consistency-bridge variants (CBD: 1.30 and 3.66 FID at 2 NFE on Edges2Handbags and DIODE); the same paper’s CBT variant reaches 0.80 and 2.93 at 2 NFE, better than DBMSolver’s 0.93 and 3.38 at 6. DBMSolver costs nothing to adopt: any DDBM checkpoint, unchanged, samples 3 to 20 times faster than its shipped sampler at equal or better FID.

?

How do I run it on my own bridge checkpoint?
You need three things from the model: its schedule α_t and σ_t (so λ and ρ are computable), an x_0-predicting denoiser that takes the noisy image, the time, and the input image, and the end time T. Build the Karras grid of N − 1 points from T − 10⁻⁴ down to 10⁻⁴, append 0, take the SDE step (8) from T, second-order steps (S26) with a λ-midpoint probe until the last interval, and one Euler step of (5) to 0. The step formulas assume an x_0 prediction; a network that predicts the noise of the bridge marginal (3) instead converts through x_0 = (x_t − a_t x_T − c_t ε) / b_t before each step.

?

Where does this sit next to the other diffusion explainers here?
The reverse SDE and probability-flow ODE are the ones from Song et al.’s Score-Based Generative Modeling through SDEs, extended with one extra drift term that pins the process to the input image. The first-order deterministic step is the bridge cousin of DDIM (Denoising Diffusion Implicit Models on this site), and the exponential-integrator machinery is DPM-Solver’s, applied to a stiffer equation with a singular endpoint.

Footnotes & further reading

  1. The paper: Venugopal, Mostafavi, Choi, DBMSolver: A Training-free Diffusion Bridge Sampler for High-Quality Image-to-Image Translation (Seoul National University, CVPR 2026). Code; the sampler is sample_dbmsolver in ddbm/karras_diffusion.py.
  2. The bridge framework, its reverse SDE and probability-flow ODE, the Gaussian marginal and the Hybrid Heun sampler: Zhou, Lou, Khanna, Ermon, Denoising Diffusion Bridge Models (ICLR 2024). The Edges2Handbags and DIODE checkpoints DBMSolver samples are theirs.
  3. The first-order deterministic step, the exact bridge-ODE solution in the variable log(bt/ct), and the multistep higher orders: Zheng, He, Chen, Bao, Zhu, Diffusion Bridge Implicit Models (ICLR 2025).
  4. Exponential integrators for diffusion sampling, the half log-SNR variable, Taylor expansion of the network term and the singlestep midpoint estimate: Lu et al., DPM-Solver and DPM-Solver++. The general theory: Hochbruck and Ostermann, Exponential Integrators (Acta Numerica, 2010).
  5. The reverse-time SDE, the probability-flow ODE and the ½ on its score term: Song et al., Score-Based Generative Modeling through SDEs; see also the explainer on this site.
  6. The baselines: Wang et al., An ODE Sampler with Stochastic Start for Diffusion Bridge Models (the paper's ODES3); He, Zheng, Chen, Bao, Zhu, Consistency Diffusion Bridge Models (NeurIPS 2024), whose CBT variant the paper does not quote; Gushchin et al., Inverse Bridge Matching Distillation (ICML 2025).
  7. Doob's h-transform as the way to condition a diffusion on its endpoint goes back to Doob (1957); a readable modern treatment is Rogers and Williams, Diffusions, Markov Processes and Martingales, vol. 2, which the paper also cites for the Itô integral in its Proposition 1.