class_docstr: ## Base class for sampling algorithms
docstr: ### Sampling Loop
  
  :param shape: is the shape of the generated images in the
      form `[batch_size, channels, height, width]`
  :param cond: is the conditional embeddings $c$
  :param temperature: is the noise temperature (random noise gets multiplied by this)
  :param x_last: is $x_T$. If not provided random noise will be used.
  :param uncond_scale: is the unconditional guidance scale $s$. This is used for
      $\epsilon_  heta(x_t, c) = s\epsilon_       ext{cond}(x_t, c) + (s - 1)\epsilon_    ext{cond}(x_t, c_u)$
  :param uncond_cond: is the conditional embedding for empty prompt $c_u$
  :param skip_steps: is the number of time steps to skip.
code: def sample(
      self,
      shape: List[int],
      cond: torch.Tensor,
      repeat_noise: bool = False,
      temperature: float = 1.0,
      x_last: Optional[torch.Tensor] = None,
      uncond_scale: float = 1.0,
      uncond_cond: Optional[torch.Tensor] = None,
      skip_steps: int = 0,
  ):
      """
      ### Sampling Loop
  
      :param shape: is the shape of the generated images in the
          form `[batch_size, channels, height, width]`
      :param cond: is the conditional embeddings $c$
      :param temperature: is the noise temperature (random noise gets multiplied by this)
      :param x_last: is $x_T$. If not provided random noise will be used.
      :param uncond_scale: is the unconditional guidance scale $s$. This is used for
          $\epsilon_\theta(x_t, c) = s\epsilon_\text{cond}(x_t, c) + (s - 1)\epsilon_\text{cond}(x_t, c_u)$
      :param uncond_cond: is the conditional embedding for empty prompt $c_u$
      :param skip_steps: is the number of time steps to skip.
      """
      raise NotImplementedError()
  
file_path: annotated_deep_learning_paper_implementations/labml_nn/diffusion/stable_diffusion/sampler/__init__.py
imports: from typing import Optional, List
  import torch
  from labml_nn.diffusion.stable_diffusion.latent_diffusion import LatentDiffusion
label_desc: Use image node_id 3 for calling the DiffusionSampler obj's underlying member method code with example usage: obj.sample(shape, cond, repeat_noise, temperature, x_last, uncond_scale, uncond_cond, skip_steps) without return types