DBMSolver: A Training-free Diffusion Bridge Sampler for High-Quality Image-to-Image Translation
Sankarshana Venugopal, Mohammad Mostafavi, Jonghyun Choi
Seoul National University
Diffusion-based image-to-image (I2I) translation excels in high-fidelity generation but suffers from slow sampling in state-of-the-art Diffusion Bridge Models (DBMs), often requiring dozens of function evaluations (NFEs). We introduce DBMSolver, a training-free sampler that exploits the semi-linear structure of DBM's underlying SDE and ODE via exponential integrators, yielding highly-efficient 1st- and 2nd-order solutions. This reduces NFEs by up to 5x while boosting quality (e.g., FID drops 53% on DIODE at 20 NFEs vs. 2nd-order baseline). Experiments on inpainting, stylization, and semantics-to-image tasks across resolutions up to 256x256 show DBMSolver sets new SOTA efficiency-quality tradeoffs, enabling real-world applicability.
This repo provides the inference code for our training-free sampler, DBMSolver, on the DIODE (256x256) dataset.
The code is based on DDBM and DBIM, the current state-of-the-art training-free sampler for Diffusion Bridge Models (DBMs).
Download the git repo to your preferred destination.
On the terminal, enter the folder where you saved the Git repo via the 'cd' command.
NOTE: Make sure that you are "inside" the repository folder, ie., the folder should contain the Dockerfile.
cd /Path/to/GitRepository/Containing/the/DBMSolver/Dockerfile
docker build -t dbmsolver_image .This creates a docker image named "dbmsolver_image".
docker run -v /Path/To/Git/Repo:/root/code/ \
-itd --gpus=all --ipc=host --name=dbmsolver_container \
dbmsolver_imageThis creates a docker container named "dbmsolver_container".
Execute the container using the following command:
docker exec -it dbmsolver_container bashImportant: Please create /root/data folder by running the following code:
mkdir /root/dataThis is the directory in which all the data will be saved to!
DBIM provides automatic downloading scripts, which can be used like this:
cd /root/data/
bash /root/code/assets/datasets/download_extract_DIODE.sh
After downloading, the DIODE dataset requires preprocessing by running python preprocess_depth.py.
Please put the downloaded checkpoints under assets/ckpts/.
We directly utilize the pretrained checkpoints from DDBM:
- DIODE: diode_ema_0.9999_440000.pt
We remove the dependency on external packages such as flash_attn in this codebase, which is already supported natively by PyTorch. After downloading the two checkpoints above, please run python preprocess_ckpt.py to complete the conversion.
bash scripts/sample.sh $DATASET_NAME $NFE $SAMPLER ($AUX)
-
$DATASET_NAMEisdiode. -
$NFEis the Number of Function Evaluations, which is proportional to the sampling time. -
$SAMPLERcan be chosen fromground_truth/heun/dbim/dbim_high_order/dbmsolver.-
heunis the vanilla sampler of DDBM, which simulates the SDE/ODE step alternatively. In this case,$AUXis not required. -
dbimis DBIM's proposed 1st-order sampler. When usingdbim,$AUXcorresponds to$\eta$ which controls the stochasticity level (floating-point value in$[0,1]$ ). -
dbim_high_orderis DBIM's proposed higher-order (2nd and 3rd) samplers. In this case,$AUXcorresponds to the order (2 or 3). -
dbmsolveris our proposed 2nd-order sampler. In this case,$AUXcorresponds to the order of the Bridge SDE solution. In our paper, we recommend using$AUX= 1, as$AUX= 2 requires one extra NFE but only provides negligible gains (ie, higher computational cost with little gain). -
ground_truthjust returns the ground truth images. This can be used for generating reference statistics (explained below). In this case,$AUXis not required.
-
The samples will be saved to workdir/.
Before evaluating the image translation results, generate (or download) the ground truth reference statistics for DIODE and place it assets/stats/:
- Recommended: It can be generated by running
bash scripts/sample.sh diode 1 ground_truth. Please make sure that the generated '.npz' file is in theassets/stats/folder! - Not Recommended: It can be downloaded from the following link: diode_ref_256_data.npz. However, note that the LPIPS and MSE metrics obtained by evaluating with the downloaded statistics are faulty. The FID and IS metrics are fine, though.
The evaluation can automatically proceed by specifying the same dataset and sampler arguments as sampling:
bash scripts/evaluate.sh $DATASET_NAME $NFE $SAMPLER ($AUX)
If you find our work useful for your research, please consider citing:
@InProceedings{venugopal2026dbmsolver,
author = {Venugopal, Sankarshana and Mostafavi, Mohammad and Choi, Jonghyun},
title = {DBMSolver: A Training-free Diffusion Bridge Sampler for High-Quality Image-to-Image Translation},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2026},
pages = {36062-36071},
url = {https://arxiv.org/abs/2605.05889}
}