class_docstr: `UniPCMultistepScheduler` is a training-free framework designed for the fast sampling of diffusion models.
  
  This model inherits from [`SchedulerMixin`] and [`ConfigMixin`]. Check the superclass documentation for the generic
  methods the library implements for all schedulers such as loading and saving.
  
  Args:
      num_train_timesteps (`int`, defaults to 1000):
          The number of diffusion steps to train the model.
      beta_start (`float`, defaults to 0.0001):
          The starting `beta` value of inference.
      beta_end (`float`, defaults to 0.02):
          The final `beta` value.
      beta_schedule (`str`, defaults to `"linear"`):
          The beta schedule, a mapping from a beta range to a sequence of betas for stepping the model. Choose from
          `linear`, `scaled_linear`, or `squaredcos_cap_v2`.
      trained_betas (`np.ndarray`, *optional*):
          Pass an array of betas directly to the constructor to bypass `beta_start` and `beta_end`.
      solver_order (`int`, default `2`):
          The UniPC order which can be any positive integer. The effective order of accuracy is `solver_order + 1`
          due to the UniC. It is recommended to use `solver_order=2` for guided sampling, and `solver_order=3` for
          unconditional sampling.
      prediction_type (`str`, defaults to `epsilon`, *optional*):
          Prediction type of the scheduler function; can be `epsilon` (predicts the noise of the diffusion process),
          `sample` (directly predicts the noisy sample`) or `v_prediction` (see section 2.4 of [Imagen
          Video](https://imagen.research.google/video/paper.pdf) paper).
      thresholding (`bool`, defaults to `False`):
          Whether to use the "dynamic thresholding" method. This is unsuitable for latent-space diffusion models such
          as Stable Diffusion.
      dynamic_thresholding_ratio (`float`, defaults to 0.995):
          The ratio for the dynamic thresholding method. Valid only when `thresholding=True`.
      sample_max_value (`float`, defaults to 1.0):
          The threshold value for dynamic thresholding. Valid only when `thresholding=True` and `predict_x0=True`.
      predict_x0 (`bool`, defaults to `True`):
          Whether to use the updating algorithm on the predicted x0.
      solver_type (`str`, default `bh2`):
          Solver type for UniPC. It is recommended to use `bh1` for unconditional sampling when steps < 10, and `bh2`
          otherwise.
      lower_order_final (`bool`, default `True`):
          Whether to use lower-order solvers in the final steps. Only valid for < 15 inference steps. This can
          stabilize the sampling of DPMSolver for steps < 15, especially for steps <= 10.
      disable_corrector (`list`, default `[]`):
          Decides which step to disable the corrector to mitigate the misalignment between `epsilon_theta(x_t, c)`
          and `epsilon_theta(x_t^c, c)` which can influence convergence for a large guidance scale. Corrector is
          usually disabled during the first few steps.
      solver_p (`SchedulerMixin`, default `None`):
          Any other scheduler that if specified, the algorithm becomes `solver_p + UniC`.
      use_karras_sigmas (`bool`, *optional*, defaults to `False`):
          Whether to use Karras sigmas for step sizes in the noise schedule during the sampling process. If `True`,
          the sigmas are determined according to a sequence of noise levels {σi}.
      timestep_spacing (`str`, defaults to `"linspace"`):
          The way the timesteps should be scaled. Refer to Table 2 of the [Common Diffusion Noise Schedules and
          Sample Steps are Flawed](https://huggingface.co/papers/2305.08891) for more information.
      steps_offset (`int`, defaults to 0):
          An offset added to the inference steps. You can use a combination of `offset=1` and
          `set_alpha_to_one=False` to make the last step use step 0 for the previous alpha product like in Stable
          Diffusion.
class_docstr_tok: ["`","UniPCMultistepScheduler","`","is","a","training-free","framework","designed","for","the","fast","sampling","of","diffusion","models",".","This","model","inherits","from","[","`","SchedulerMixin","`","]","and","[","`","ConfigMixin","`","]",".","Check","the","superclass","documentation","for","the","generic","methods","the","library","implements","for","all","schedulers","such","as","loading","and","saving",".","Args",":","num_train_timesteps","(","`","int","`",",","defaults","to","1000",")",":","The","number","of","diffusion","steps","to","train","the","model",".","beta_start","(","`","float","`",",","defaults","to","0.0001",")",":","The","starting","`","beta","`","value","of","inference",".","beta_end","(","`","float","`",",","defaults","to","0.02",")",":","The","final","`","beta","`","value",".","beta_schedule","(","`","str","`",",","defaults","to","`","``","linear","''","`",")",":","The","beta","schedule",",","a","mapping","from","a","beta","range","to","a","sequence","of","betas","for","stepping","the","model",".","Choose","from","`","linear","`",",","`","scaled_linear","`",",","or","`","squaredcos_cap_v2","`",".","trained_betas","(","`","np.ndarray","`",",","*","optional","*",")",":","Pass","an","array","of","betas","directly","to","the","constructor","to","bypass","`","beta_start","`","and","`","beta_end","`",".","solver_order","(","`","int","`",",","default","`","2","`",")",":","The","UniPC","order","which","can","be","any","positive","integer",".","The","effective","order","of","accuracy","is","`","solver_order","+","1","`","due","to","the","UniC",".","It","is","recommended","to","use","`","solver_order=2","`","for","guided","sampling",",","and","`","solver_order=3","`","for","unconditional","sampling",".","prediction_type","(","`","str","`",",","defaults","to","`","epsilon","`",",","*","optional","*",")",":","Prediction","type","of","the","scheduler","function",";","can","be","`","epsilon","`","(","predicts","the","noise","of","the","diffusion","process",")",",","`","sample","`","(","directly","predicts","the","noisy","sample","`",")","or","`","v_prediction","`","(","see","section","2.4","of","[","Imagen","Video","]","(","https",":","\/\/imagen.research.google\/video\/paper.pdf",")","paper",")",".","thresholding","(","`","bool","`",",","defaults","to","`","False","`",")",":","Whether","to","use","the","``","dynamic","thresholding","''","method",".","This","is","unsuitable","for","latent-space","diffusion","models","such","as","Stable","Diffusion",".","dynamic_thresholding_ratio","(","`","float","`",",","defaults","to","0.995",")",":","The","ratio","for","the","dynamic","thresholding","method",".","Valid","only","when","`","thresholding=True","`",".","sample_max_value","(","`","float","`",",","defaults","to","1.0",")",":","The","threshold","value","for","dynamic","thresholding",".","Valid","only","when","`","thresholding=True","`","and","`","predict_x0=True","`",".","predict_x0","(","`","bool","`",",","defaults","to","`","True","`",")",":","Whether","to","use","the","updating","algorithm","on","the","predicted","x0",".","solver_type","(","`","str","`",",","default","`","bh2","`",")",":","Solver","type","for","UniPC",".","It","is","recommended","to","use","`","bh1","`","for","unconditional","sampling","when","steps","<","10",",","and","`","bh2","`","otherwise",".","lower_order_final","(","`","bool","`",",","default","`","True","`",")",":","Whether","to","use","lower-order","solvers","in","the","final","steps",".","Only","valid","for","<","15","inference","steps",".","This","can","stabilize","the","sampling","of","DPMSolver","for","steps","<","15",",","especially","for","steps","<","=","10.","disable_corrector","(","`","list","`",",","default","`","[","]","`",")",":","Decides","which","step","to","disable","the","corrector","to","mitigate","the","misalignment","between","`","epsilon_theta","(","x_t",",","c",")","`","and","`","epsilon_theta","(","x_t^c",",","c",")","`","which","can","influence","convergence","for","a","large","guidance","scale",".","Corrector","is","usually","disabled","during","the","first","few","steps",".","solver_p","(","`","SchedulerMixin","`",",","default","`","None","`",")",":","Any","other","scheduler","that","if","specified",",","the","algorithm","becomes","`","solver_p","+","UniC","`",".","use_karras_sigmas","(","`","bool","`",",","*","optional","*",",","defaults","to","`","False","`",")",":","Whether","to","use","Karras","sigmas","for","step","sizes","in","the","noise","schedule","during","the","sampling","process",".","If","`","True","`",",","the","sigmas","are","determined","according","to","a","sequence","of","noise","levels","{","\u03c3i","}",".","timestep_spacing","(","`","str","`",",","defaults","to","`","``","linspace","''","`",")",":","The","way","the","timesteps","should","be","scaled",".","Refer","to","Table","2","of","the","[","Common","Diffusion","Noise","Schedules","and","Sample","Steps","are","Flawed","]","(","https",":","\/\/huggingface.co\/papers\/2305.08891",")","for","more","information",".","steps_offset","(","`","int","`",",","defaults","to","0",")",":","An","offset","added","to","the","inference","steps",".","You","can","use","a","combination","of","`","offset=1","`","and","`","set_alpha_to_one=False","`","to","make","the","last","step","use","step","0","for","the","previous","alpha","product","like","in","Stable","Diffusion","."]
code: def _sigma_to_t(self, sigma, log_sigmas):
      # get log sigma
      log_sigma = np.log(np.maximum(sigma, 1e-10))
  
      # get distribution
      dists = log_sigma - log_sigmas[:, np.newaxis]
  
      # get sigmas range
      low_idx = (
          np.cumsum((dists >= 0), axis=0)
          .argmax(axis=0)
          .clip(max=log_sigmas.shape[0] - 2)
      )
      high_idx = low_idx + 1
  
      low = log_sigmas[low_idx]
      high = log_sigmas[high_idx]
  
      # interpolate sigmas
      w = (low - log_sigma) / (low - high)
      w = np.clip(w, 0, 1)
  
      # transform interpolation to time range
      t = (1 - w) * low_idx + w * high_idx
      t = t.reshape(sigma.shape)
      return t
  
imports: import math
  from typing import List, Optional, Tuple, Union
  import numpy
  import torch
  from ..configuration_utils import ConfigMixin, register_to_config
  from ..utils import deprecate
  from .scheduling_utils import KarrasDiffusionSchedulers, SchedulerMixin, SchedulerOutput
label_desc: Use image node_id 5 for calling the UniPCMultistepScheduler obj's underlying member method code with example usage: obj._sigma_to_t(sigma, log_sigmas) and returns: t