# HeliosScheduler

`HeliosScheduler` is based on the pyramidal flow-matching sampling introduced in [Helios](https://huggingface.co/papers).

## HeliosScheduler[[diffusers.HeliosScheduler]]

- **model_output** (`torch.Tensor`) --
  The direct output from the learned diffusion model.
- **timestep** (`int`) --
  The current discrete timestep in the diffusion chain.
- **sample** (`torch.Tensor`) --
  A current instance of a sample created by the diffusion process.`torch.Tensor`The converted model output.

Convert the model output to the corresponding type the UniPC algorithm needs.

initialize the global timesteps and sigmas

Init the timesteps for each stage

- **this_model_output** (`torch.Tensor`) --
  The model outputs at `x_t`.
- **this_timestep** (`int`) --
  The current timestep `t`.
- **last_sample** (`torch.Tensor`) --
  The generated sample before the last predictor `x_{t-1}`.
- **this_sample** (`torch.Tensor`) --
  The generated sample after the last predictor `x_{t}`.
- **order** (`int`) --
  The `p` of UniC-p at this step. The effective order of accuracy should be `order + 1`.`torch.Tensor`The corrected sample tensor at the current timestep.

One step for the UniC (B(h) version).

- **model_output** (`torch.Tensor`) --
  The direct output from the learned diffusion model at the current timestep.
- **prev_timestep** (`int`) --
  The previous discrete timestep in the diffusion chain.
- **sample** (`torch.Tensor`) --
  A current instance of a sample created by the diffusion process.
- **order** (`int`) --
  The order of UniP at this timestep (corresponds to the *p* in UniPC-p).`torch.Tensor`The sample tensor at the previous timestep.

One step for the UniP (B(h) version). Alternatively, `self.solver_p` is used if is specified.

- **begin_index** (`int`) --
  The begin index for the scheduler.

Sets the begin index for the scheduler. This function should be run from pipeline before the inference.

Setting the timesteps and sigmas for each stage

- **mu** (`float`) --
  The mu parameter for the time shift.
- **sigma** (`float`) --
  The sigma parameter for the time shift.
- **t** (`torch.Tensor`) --
  The input timesteps.`torch.Tensor`The time-shifted timesteps.

Apply time shifting to the sigmas.

scheduling_helios

