code: def step(
      self,
      model_output: Union[paddle.Tensor, np.ndarray],
      timestep: int,
      sample: Union[paddle.Tensor, np.ndarray],
  ):
      if (
          self.counter < len(self.prk_timesteps)
          and not self.config.skip_prk_steps
      ):
          return self.step_prk(
              model_output=model_output,
              timestep=timestep,
              sample=sample,
          )
      else:
          return self.step_plms(
              model_output=model_output,
              timestep=timestep,
              sample=sample,
          )
  
file_path: PaddleHub/modules/image/text_to_image/stable_diffusion/diffusers/schedulers/scheduling_pndm.py
imports: import math
  from typing import Union
  import numpy
  import paddle
  from ..configuration_utils import ConfigMixin
  from ..configuration_utils import register_to_config
  from .scheduling_utils import SchedulerMixin
label_desc: Use image node_id 3 for calling the PNDMScheduler obj's underlying member method code with example usage: obj.step(model_output, timestep, sample) and returns: self, self