class_docstr: ## Base class for sampling algorithms
docstr: ### Painting Loop
  
  :param x: is $x_{T'}$ of shape `[batch_size, channels, height, width]`
  :param cond: is the conditional embeddings $c$
  :param t_start: is the sampling step to start from, $T'$
  :param orig: is the original image in latent page which we are in paining.
  :param mask: is the mask to keep the original image.
  :param orig_noise: is fixed noise to be added to the original image.
  :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$
code: def paint(
      self,
      x: torch.Tensor,
      cond: torch.Tensor,
      t_start: int,
      *,
      orig: Optional[torch.Tensor] = None,
      mask: Optional[torch.Tensor] = None,
      orig_noise: Optional[torch.Tensor] = None,
      uncond_scale: float = 1.0,
      uncond_cond: Optional[torch.Tensor] = None,
  ):
      """
      ### Painting Loop
  
      :param x: is $x_{T'}$ of shape `[batch_size, channels, height, width]`
      :param cond: is the conditional embeddings $c$
      :param t_start: is the sampling step to start from, $T'$
      :param orig: is the original image in latent page which we are in paining.
      :param mask: is the mask to keep the original image.
      :param orig_noise: is fixed noise to be added to the original image.
      :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$
      """
      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 4 for calling the DiffusionSampler obj's underlying member method code with example usage: obj.paint(x, cond, t_start) without return types