# FlowMatchHeunDiscreteScheduler

`FlowMatchHeunDiscreteScheduler` основан на сэмплировании flow-matching, представленном в [EDM](https://huggingface.co/papers/2403.03206).

## FlowMatchHeunDiscreteScheduler[[diffusers.FlowMatchHeunDiscreteScheduler]]

#### diffusers.FlowMatchHeunDiscreteScheduler[[diffusers.FlowMatchHeunDiscreteScheduler]]

```python
diffusers.FlowMatchHeunDiscreteScheduler(num_train_timesteps: int = 1000, shift: float = 1.0)
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L43)

**Параметры:**

num_train_timesteps (`int`, по умолчанию 1000) : Количество шагов диффузии для обучения модели.

shift (`float`, по умолчанию 1.0) : Сдвиг для расписания временных шагов.

Планировщик Хуна.

Эта модель наследуется от [SchedulerMixin](/docs/diffusers/v0.43.0/ru/api/schedulers/overview#diffusers.SchedulerMixin) и [ConfigMixin](/docs/diffusers/v0.43.0/ru/api/configuration#diffusers.ConfigMixin). Общие методы, которые библиотека реализует для всех планировщиков, такие как загрузка и сохранение, описаны в документации суперкласса.

#### index_for_timestep[[diffusers.FlowMatchHeunDiscreteScheduler.index_for_timestep]]

```python
index_for_timestep(timestep: typing.Union[float, torch.FloatTensor], schedule_timesteps: typing.Optional[torch.FloatTensor] = None)
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L179)

**Параметры:**

timestep (`float` или `torch.FloatTensor`) : значение шага времени, которое нужно найти в расписании.

schedule_timesteps (`torch.FloatTensor`, *необязательный*) : Расписание временных шагов, в котором выполняется поиск. Если `None`, используется `self.timesteps`.

**Возвращает:** `int`

Индекс шага времени в расписании.

Найдите индекс заданного шага времени в расписании шагов времени.

#### scale_noise[[diffusers.FlowMatchHeunDiscreteScheduler.scale_noise]]

```python
scale_noise(sample: FloatTensor, timestep: typing.Union[float, torch.FloatTensor], noise: FloatTensor)
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L106)

**Параметры:**

sample (`torch.FloatTensor`) : Входной образец.

timestep (`float` или `torch.FloatTensor`) : Текущий шаг (timestep) в цепочке диффузии.

noise (`torch.FloatTensor`) : Тензор шума.

**Возвращает:** `torch.FloatTensor`

Масштабированный входной образец.

Прямой процесс в flow-matching

#### set_begin_index[[diffusers.FlowMatchHeunDiscreteScheduler.set_begin_index]]

```python
set_begin_index(begin_index: int = 0)
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L96)

**Параметры:**

begin_index (`int`, по умолчанию `0`) : Начальный индекс для планировщика.

Устанавливает начальный индекс для планировщика. Эта функция должна выполняться из конвейера перед инференсом.

#### set_timesteps[[diffusers.FlowMatchHeunDiscreteScheduler.set_timesteps]]

```python
set_timesteps(num_inference_steps: int, device: typing.Union[str, torch.device] = None)
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L139)

**Параметры:**

num_inference_steps (`int`) : Количество шагов диффузии, используемое при генерации образцов с помощью предобученной модели.

device (`str` или `torch.device`, *необязательный*) : Устройство, на которое следует переместить шаги. Если `None`, шаги не перемещаются.

Устанавливает дискретные временные шаги, используемые для цепочки диффузии (выполняется перед инференсом).

#### шаг[[diffusers.FlowMatchHeunDiscreteScheduler.step]]

```python
step(model_output: FloatTensor, timestep: typing.Union[float, torch.FloatTensor], sample: FloatTensor, s_churn: float = 0.0, s_tmin: float = 0.0, s_tmax: float = inf, s_noise: float = 1.0, generator: typing.Optional[torch.Generator] = None, return_dict: bool = True)
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L225)

**Параметры:**

model_output (`torch.FloatTensor`) : Прямой вывод из обученной диффузионной модели.

timestep (`float` или `torch.FloatTensor`) : Текущий дискретный шаг времени в цепочке диффузии.

sample (`torch.FloatTensor`) : Текущая инстанция сэмпла, созданная процессом диффузии.

s_churn (`float`) : Параметр стохастичности, управляющий количеством шума, добавляемого во время выборки. Более высокие значения увеличивают случайность.

s_tmin (`float`) : Минимальный порог шага для применения стохастичности. Шум добавляется только к шагам, превышающим это значение.

s_tmax (`float`) : Максимальный порог шага для применения стохастичности. Шум добавляется только к шагам, значения которых меньше этого порога.

s_noise (`float`, по умолчанию 1.0) : Коэффициент масштабирования шума, добавляемого к образцу.

generator (`torch.Generator`, *необязательный*) : генератор случайных чисел.

return_dict (`bool`) : Возвращать кортеж `FlowMatchHeunDiscreteSchedulerOutput` или нет.

**Возвращает:** `FlowMatchHeunDiscreteSchedulerOutput` или `tuple`

Если `True`, возвращается `FlowMatchHeunDiscreteSchedulerOutput`, иначе возвращается кортеж, первым элементом которого является тензор сэмпла.

Предскажите образец из предыдущего шага времени, обращая SDE. Эта функция распространяет процесс диффузии от выходов обученной модели (чаще всего — предсказанного шума).

