Timer#

Timer Classes#

class diffuse.timer.base.Timer(n_steps: int)[source]#

Bases: object

Base Timer class for scheduling time steps in diffusion processes.

Parameters:

n_steps – Number of discrete time steps

class diffuse.timer.base.VpTimer(n_steps: int, eps: float, tf: float)[source]#

Bases: Timer

Variance Preserving Timer that implements linear interpolation between final and initial time.

Parameters:
  • n_steps – Number of discrete time steps

  • eps – Initial time value

  • tf – Final time value

class diffuse.timer.base.HeunTimer(n_steps: int, rho: float = 7.0, sigma_min: float = 0.002, sigma_max: float = 80.0)[source]#

Bases: Timer

Heun Timer implementing power-law scaling of noise levels.

This timer discretizes noise space rather than time space, using a power-law relationship to schedule noise levels. It is designed to be used with sampling methods that are defined on noise levels (like EDM - Elucidating the Design Space of Diffusion-Based Generative Models) rather than time-based approaches.

Parameters:
  • n_steps – Number of discrete time steps

  • rho – Power scaling factor (default: 7.0)

  • sigma_min – Minimum noise level (default: 0.002)

  • sigma_max – Maximum noise level (default: 0.002)

class diffuse.timer.base.DDIMTimer(n_steps: int, n_time_training: int, c_1: float = 0.001, c_2: float = 0.008, j0: int = 8)[source]#

Bases: Timer

Denoising Diffusion Implicit Models (DDIM) Timer.

Implements custom time scheduling for DDIM as described in https://arxiv.org/pdf/2206.00364. Uses a power-law interpolation between c_1 and c_2 with exponent j0.

Parameters:
  • n_steps (int) – Number of discrete time steps

  • n_time_training (int) – Number of training timesteps

  • c_1 (float, optional) – Lower bound parameter. Defaults to 0.001

  • c_2 (float, optional) – Upper bound parameter. Defaults to 0.008

  • j0 (int, optional) – Power-law exponent. Defaults to 8