Test-Time Scaling of Diffusion Models via Noise Trajectory Search

Vignav Ramesh, Morteza Mardani
5/24/2025
cs.LG

No official code found. Best implementation: rvignav/diffusion-tts (11 stars, last commit 2025-08-05).

Abstract

The iterative and stochastic nature of diffusion models enables test-time scaling, whereby spending additional compute during denoising generates higher-fidelity samples. Increasing the number of denoising steps is the primary scaling axis, but this yields quickly diminishing returns. Instead optimizing the noise trajectory--the sequence of injected noise vectors--is promising, as the specific noise realizations critically affect sample quality; but this is challenging due to a high-dimensional search space, complex noise-outcome interactions, and costly trajectory evaluations. We address this by first casting diffusion as a Markov Decision Process (MDP) with a terminal reward, showing tree-search methods such as Monte Carlo tree search (MCTS) to be meaningful but impractical. To balance performance and efficiency, we then resort to a relaxation of MDP, where we view denoising as a sequence of independent contextual bandits. This allows us to introduce an $ε$-greedy search algorithm that globally explores at extreme timesteps and locally exploits during the intermediate steps where de-mixing occurs. Experiments on EDM and Stable Diffusion reveal state-of-the-art scores for class-conditioned/text-to-image generation, exceeding baselines by up to $164\%$ and matching/exceeding MCTS performance. To our knowledge, this is the first practical method for test-time noise trajectory optimization of arbitrary (non-differentiable) rewards.

View on arXivView PDF

Code Implementations(1)

113Shell, PythonMay 22, 20251 years agoNOASSERTION

Similar Papers

Cite this paper

@article{ramesh2025testtime,
  title  = {Test-Time Scaling of Diffusion Models via Noise Trajectory Search},
  author = {Vignav Ramesh and Morteza Mardani},
  year   = {2025},
  eprint = {2506.03164},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2506.03164v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2506.03164.svg)](https://codeofpaper.com/paper/2506.03164)

Discussion