DDIM#

class dmme.diffusion_models.DDIM(model: Module, timesteps: int = 1000, sub_timesteps: int = 50, tau_schedule: str = 'quadratic')[source]#

Denoising Diffusion Implicit Models

A more efficient class of iterative implicit probablistic models with the same training procedure as DDPMs.

Parameters:
  • model – model passed to DDPM

  • timesteps – total timesteps \(T\)

  • sub_timesteps – sub-sequence length

  • tau_schedule – tau schedule to use, “linear”`or `”quadratic”

sampling_step(x_tau_i: Tensor, i: Tensor) Tensor[source]#

Sample from \(p_\theta(x_\tau_{i-1}|x_\tau_i)\)

Parameters:
  • x_tau_i – image of shape \((N, C, H, W)\)

  • i\(i\) in \(\tau_i\)

Returns:

generated sample of shape \((N, C, H, W)\)

generate(img_size: Tuple[int, int, int, int]) Tensor[source]#

Generate image of shape \((N, C, H, W)\) faster by only sampling the sub sequence

Parameters:

img_size – image size to generate as a tuple \((N, C, H, W)\)

Returns:

generated image of shape \((N, C, H, W)\)