CREPE🥞 is an inference-time control algorithm for diffusion models (both Gaussian diffusion and CTMC!).
Illustration of CREPE (right) and comparison with SMC control (left):

Example of CREPE for prompted reward-tilting on ImageNet-512:

This repo contains various applications of CREPE:
- Tempering on Boltzmann distribution of Alanine Di/Tetra/Hexa-peptide
- Trajectory stitching for maze
- Debiasing CFG for image generation
- Prompted reward-tilting for image generation
- Debiasing CFG on CTMC
The structure is as follows:
applications
├── tempering
│ - code for inference-time tempering for Boltzmann sampling
├── stitching
│ - code for stitching trajectories in the maze
├── cfg
│ - debiasing cfg on ImageNet
├── reward-tilting
│ - prompted reward-tilting on ImageNet
└── ctmc
- debiasing cfg for CTMC models
The required environment may differ for each application. Please refer to their own folder.
Do not hesitate to reach out if you have any questions!
@article{he2025crepe,
title={CREPE: Controlling Diffusion with Replica Exchange},
author={He, Jiajun and Jeha, Paul and Potaptchik, Peter and Zhang, Leo and Hern{\'a}ndez-Lobato, Jos{\'e} Miguel and Du, Yuanqi and Syed, Saifuddin and Vargas, Francisco},
journal={arXiv preprint arXiv:2509.23265},
year={2025}
}