code: def dpm_sampling_fn(
      self,
      shape,
      steps,
      conditioning=None,
      unconditional_conditioning=None,
      unconditional_guidance_scale=1.0,
      x_T=None,
  ):
      device = self.model.betas.device
      if x_T is None:
          img = torch.randn(
              shape, generator=self.model.rng, device=device
          )
      else:
          img = x_T
  
      ns = NoiseScheduleVP(
          "discrete", alphas_cumprod=self.alphas_cumprod
      )
  
      model_fn = model_wrapper(
          lambda x, t, c: self.model.apply_model(x, t, c),
          ns,
          model_type=MODEL_TYPES[self.model.parameterization],
          guidance_type="classifier-free",
          condition=conditioning,
          unconditional_condition=unconditional_conditioning,
          guidance_scale=unconditional_guidance_scale,
      )
      dpm_solver = DPMSolver(
          model_fn, ns, predict_x0=True, thresholding=False
      )
      x = dpm_solver.sample(
          img,
          steps=steps,
          skip_type="time_uniform",
          method="multistep",
          order=2,
          lower_order_final=True,
      )
  
      return x.to(device), None
  
file_path: NeMo/nemo/collections/multimodal/models/text_to_image/stable_diffusion/samplers/sampler_dpm.py
imports: import torch
  from nemo.collections.multimodal.models.text_to_image.stable_diffusion.samplers import Sampler
  from nemo.collections.multimodal.models.text_to_image.stable_diffusion.samplers.base_sampler import AbstractBaseSampler
  from .dpmsolver import DPMSolver, NoiseScheduleVP, model_wrapper
label_desc: Use image node_id 3 for calling the DPMSolverSampler obj's underlying member method code with example usage: obj.dpm_sampling_fn(shape, steps, conditioning, unconditional_conditioning, unconditional_guidance_scale, x_T) and returns: x,  None