DeepCache: Accelerating Diffusion Models for Free

Learning and Vision Lab, National University of Singapore
Paper Code

Abstract

Diffusion models have recently gained unprecedented attention in the field of image synthesis due to their remarkable generative capabilities. Notwithstanding their prowess, these models often incur substantial computational costs, primarily attributed to the sequential denoising process and cumbersome model size. Traditional methods for compressing diffusion models typically involve extensive retraining, presenting cost and feasibility challenges. In this paper, we introduce DeepCache, a novel training-free paradigm that accelerates diffusion models from the perspective of model architecture. DeepCache capitalizes on the inherent temporal redundancy observed in the sequential denoising steps of diffusion models, which caches and retrieves features across adjacent denoising stages, thereby curtailing redundant computations. Utilizing the property of the U-Net, we reuse the high-level features while updating the low-level features in a very cheap way. This innovative strategy, in turn, enables a speedup factor of 2.3X for Stable Diffusion v1.5 with only a 0.05 decline in CLIP Score, and 4.1X for LDM-4-G with a slight decrease of 0.22 in FID on ImageNet. Our experiments also demonstrate DeepCache's superiority over existing pruning and distillation methods that necessitate retraining and its compatibility with current sampling techniques. Furthermore, we find that under the same throughput, DeepCache effectively achieves comparable or even marginally improved results with DDIM or PLMS.

Keywords: Diffusion Models, Training-free, Acceleration

Results

(The original images are depicted in the upper line, and the images accelerated by DeepCache are shown in the lower line)

BibTeX


        @misc{ma2023deepcache,
          title={DeepCache: Accelerating Diffusion Models for Free}, 
          author={Xinyin Ma and Gongfan Fang and Xinchao Wang},
          year={2023},
          eprint={2312.00858},
          archivePrefix={arXiv},
          primaryClass={cs.CV}
        }