Official PyTorch implementation of:
Fast-DDPM: Fast Denoising Diffusion Probabilistic Models for Medical Image-to-Image Generation
We propose Fast-DDPM, a simple yet effective approach that improves training speed, sampling speed, and generation quality of diffusion models simultaneously. Fast-DDPM trains and samples using only 10 time steps, reducing the training time to 0.2x and the sampling time to 0.01x compared to DDPM.
The code is only for research purposes. If you have any questions regarding how to use this code, feel free to contact Hongxu Jiang (hongxu.jiang@medicine.ufl.edu).
pip install -r requirements.txt
├── configs
│
├── data
│ ├── LD_FD_CT_train
│ ├── LD_FD_CT_test
│ ├── PMUB-train
│ ├── PMUB-test
│ ├── Brats_train
│ └── Brats_test
│
├── datasets
│
├── functions
│
├── models
│
└── runners
python fast_ddpm_main.py --config {DATASET}.yml --dataset {DATASET_NAME} --exp {PROJECT_PATH} --doc {MODEL_NAME} --scheduler_type {SAMPLING STRATEGY} --timesteps {STEPS}
python fast_ddpm_main.py --config {DATASET}.yml --dataset {DATASET_NAME} --exp {PROJECT_PATH} --doc {MODEL_NAME} --sample --fid --scheduler_type {SAMPLING STRATEGY} --timesteps {STEPS}
where
DATASET_NAME
should be selected among LDFDCT
for image denoising task, BRATS
for image-to-image translation task and PMUB
for multi image super-resolution task.SAMPLING STRATEGY
controls the scheduler sampling strategy proposed in the paper (either uniform or non-uniform).STEPS
controls how many timesteps used in the training and inference process. It should be an integer less than 1000 for Fast-DDPM, which is 10 by default.python ddpm_main.py --config {DATASET}.yml --dataset {DATASET_NAME} --exp {PROJECT_PATH} --doc {MODEL_NAME} --timesteps {STEPS}
python ddpm_main.py --config {DATASET}.yml --dataset {DATASET_NAME} --exp {PROJECT_PATH} --doc {MODEL_NAME} --sample --fid --timesteps {STEPS}
where
DATASET_NAME
should be selected among LDFDCT
for image denoising task, BRATS
for image-to-image translation task and PMUB
for multi image super-resolution task.STEPS
controls how many timesteps used in the training and inference process. It should be 1000 in the setting of this paper.If you use our code or dataset, please cite our paper as below:
@article{jiang2024fast,
title={Fast-DDPM: Fast Denoising Diffusion Probabilistic Models for Medical Image-to-Image Generation},
author={Jiang, Hongxu and Imran, Muhammad and Ma, Linhai and Zhang, Teng and Zhou, Yuyin and Liang, Muxuan and Gong, Kuang and Shao, Wei},
journal={arXiv preprint arXiv:2405.14802},
year={2024}
}