Diffusers documentation
HeliosScheduler
HeliosScheduler
HeliosScheduler основан на пирамидальном flow-matching-сэмплировании, представленном в Helios.
HeliosScheduler
класс diffusers.HeliosScheduler
< source >( num_train_timesteps: int = 1000shift: float = 1.0stages: int = 3stage_range: list = [0, 0.3333333333333333, 0.6666666666666666, 1]gamma: float = 0.3333333333333333thresholding: bool = Falseprediction_type: str = 'flow_prediction'solver_order: int = 2predict_x0: bool = Truesolver_type: str = 'bh2'lower_order_final: bool = Truedisable_corrector: list = []solver_p: SchedulerMixin = Noneuse_flow_sigmas: bool = Truescheduler_type: str = 'unipc'use_dynamic_shifting: bool = Falsetime_shift_type: typing.Literal['exponential', 'linear'] = 'exponential' )
convert_model_output
< source >( model_output: Tensor*argssample: Tensor = Nonesigma: Tensor = None**kwargs ) → torch.Tensor
Параметры
- model_output (
torch.Tensor) — Прямой вывод из обученной диффузионной модели. - timestep (
int) — Текущий дискретный шаг в цепочке диффузии. - sample (
torch.Tensor) — Текущий экземпляр сэмпла, созданный процессом диффузии. - sigma (
torch.Tensor, необязательный) — Сигма текущего шага в расписании шума.
Возвращает
torch.Tensor
Вывод сконвертированной модели.
Преобразуйте выход модели в соответствующий тип, необходимый для алгоритма UniPC.
инициализировать глобальные шаги и сигмы
Инициализация шагов времени для каждого этапа
multistep_uni_c_bh_update
< source >( this_model_output: Tensor*argslast_sample: Tensor = Nonethis_sample: Tensor = Noneorder: int = Nonesigma_before: Tensor = Nonesigma: Tensor = None**kwargs ) → torch.Tensor
Параметры
- this_model_output (
torch.Tensor) — Выход модели в точкеx_t. - this_timestep (
int) — Текущий шагt. - last_sample (
torch.Tensor) — Сгенерированный образец перед последним предикторомx_{t-1}. - this_sample (
torch.Tensor) — Сгенерированный образец после последнего предиктораx_{t}. - order (
int) — Значениеpдля UniC-p на данном шаге. Эффективный порядок точности должен быть равенorder + 1. - sigma_before (
torch.Tensor, необязательный) — Сигма предыдущего шага в расписании шума. - sigma (
torch.Tensor, необязательный) — Сигма текущего шага в расписании шума.
Возвращает
torch.Tensor
Скорректированный тензор образца на текущем шаге времени.
Один шаг для UniC (версия B(h)).
multistep_uni_p_bh_update
< source >( model_output: Tensor*argssample: Tensor = Noneorder: int = Nonesigma: Tensor = Nonesigma_next: Tensor = None**kwargs ) → torch.Tensor
Параметры
- model_output (
torch.Tensor) — Прямой вывод обученной диффузионной модели на текущем шаге. - prev_timestep (
int) — Предыдущий дискретный шаг времени в цепочке диффузии. - sample (
torch.Tensor) — Текущий экземпляр сэмпла, созданный процессом диффузии. - order (
int) — Порядок UniP на этом шаге времени (соответствует p в UniPC-p). - sigma (
torch.Tensor, необязательный) — Сигма текущего шага в расписании шума. - sigma_next (
torch.Tensor, необязательный) — Сигма следующего шага в расписании шума.
Возвращает
torch.Tensor
Тензор выборки на предыдущем шаге.
Один шаг для UniP (версия B(h)). В качестве альтернативы, если указано, используется self.solver_p.
set_begin_index
< source >( begin_index: int = 0 )
Устанавливает начальный индекс для планировщика. Эта функция должна выполняться из конвейера перед инференсом.
set_timesteps
< source >( num_inference_steps: intstage_index: int | None = Nonedevice: typing.Union[str, torch.device] = Nonesigmas: bool | None = Nonemu: bool | None = Noneis_amplify_first_chunk: bool = False )
Настройка шагов и сигм для каждого этапа
time_shift
< source >( mu: floatsigma: floatt: Tensor ) → torch.Tensor
Примените сдвиг по времени к сигмам.
scheduling_helios
Update on GitHub