# RFD4ProteinaScheduler

`RFD4ProteinaScheduler` — это временной сэмплер потока с перемасштабированием скоростей для RFD4-Proteína, работающий с одной модальностью. В конвейере используются два экземпляра: один для каркаса (`bb_ca`, координаты в нанометрах) и один для локальных латентов на токен (`local_latents`), каждый со своим собственным временным расписанием, расписанием шума и перемасштабированием. См. [RFD4ProteinaPipeline](/docs/diffusers/v0.43.0/ru/api/pipelines/rfd4_proteina#diffusers.RFD4ProteinaPipeline) для цикла сэмплирования.

## RFD4ProteinaScheduler[[diffusers.RFD4ProteinaScheduler]]

#### diffusers.RFD4ProteinaScheduler[[diffusers.RFD4ProteinaScheduler]]

```python
diffusers.RFD4ProteinaScheduler(schedule_mode: str, noise_mode: str, tsr_k: float, tsr_sigma: float, tail_steps: int = 10, tail_step_multiplier: int = 2, t_lim_ode: float = 0.95, t_lim_ode_below: float = 0.02)
```

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

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

schedule_mode (`str`) : Интервал между временами шума и данных: `"log"` или `"power"`.

noise_mode (`str`) : Форма шума, вводимого в стохастическое окно: `"1/t"` или `"tan"`.

tsr_k (`float`) : Насколько низкой становится температура выборки; чем выше значение, тем ниже температура.

tsr_sigma (`float`) : Скорость достижения низкой температуры; чем выше значение, тем быстрее.

tail_steps (`int`, по умолчанию `10`) : Количество последних интервалов, которые в `tail_step_multiplier` раз мельче остальных.

tail_step_multiplier (`int`, по умолчанию `2`) : Насколько мельче будут финальные интервалы.

t_lim_ode (`float`, по умолчанию `0.95`) : После этого времени шаг является детерминированным.

t_lim_ode_below (`float`, по умолчанию `0.02`) : Ниже этого значения шаг является детерминированным.

Сэмплер потока с временной перенормировкой скоростей для одной модальности RFD4-Proteína.

Пайплайн объединяет две модальности — backbone и локальные латенты для каждого токена — каждая из которых использует собственный планировщик. Они различаются по временному расписанию, расписанию шума и способу масштабирования.

Вызывайте `set_timesteps` перед сэмплированием. Значения времени увеличиваются от шума к чистым данным. Планировщик отслеживает текущий интервал и не должен использоваться совместно для параллельных генераций.

#### set_timesteps[[diffusers.RFD4ProteinaScheduler.set_timesteps]]

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

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

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

num_inference_steps (`int`) : Количество интервалов интегрирования.

device (`str` или `torch.device`, *необязательный*) : Устройство для `timesteps`. Длины интервалов и коэффициенты шума остаются на CPU.

start_time (`float`, *optional*) : Время начала частичной диффузии в диапазоне `[0, 1)`. Опустите для полной генерации.

Разрешите расписание и сбросьте курсор интеграции.

#### add_noise[[diffusers.RFD4ProteinaScheduler.add_noise]]

```python
add_noise(original_samples: Tensor, noise: Tensor, timesteps: typing.Union[float, torch.Tensor])
```

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

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

original_samples (`torch.Tensor`) : Чистое состояние `(batch, tokens, D)`.

noise (`torch.Tensor`) : Шум той же формы, сгенерированный вызывающей стороной.

timesteps (`float` или `torch.Tensor`) : Время в диапазоне `[0, 1)`, скаляр или `(batch,)`.

Сэмплируйте прямую маргинальную `(1 - t) * noise + t * clean`.

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

```python
step(model_output: Tensor, timestep: Tensor, sample: Tensor, emit_mask: Tensor, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, return_dict: bool = True)
```

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

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

model_output (`torch.Tensor`) : Предсказанная скорость, с формой, как у `sample`.

timestep (`torch.Tensor`) : следующий элемент `timesteps`. Шаги, выходящие за пределы порядка, отклоняются.

sample (`torch.Tensor`) : Текущее состояние `(B, N, D)`.

emit_mask (`torch.Tensor`) : Булево `(B, N)`, true для токенов, которые обновляются (не контекст и не заполнение).

generator (`torch.Generator` или `list[torch.Generator]`, *необязательный*) : генератор для одной строки или отдельные генераторы для каждой строки батча. Если их не указать, используется глобальный поток.

return_dict (`bool`, по умолчанию `True`) : возвращает `RFD4ProteinaSchedulerOutput`; в противном случае — кортеж из одного элемента, содержащий состояние.

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

Обновленное состояние.

Выполните один шаг интегрирования и обновите `step_index`.

## RFD4ProteinaSchedulerOutput[[diffusers.schedulers.scheduling_rfd4_proteina.RFD4ProteinaSchedulerOutput]]

#### diffusers.schedulers.scheduling_rfd4_proteina.RFD4ProteinaSchedulerOutput[[diffusers.schedulers.scheduling_rfd4_proteina.RFD4ProteinaSchedulerOutput]]

```python
diffusers.schedulers.scheduling_rfd4_proteina.RFD4ProteinaSchedulerOutput(prev_sample: Tensor)
```

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

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

prev_sample (`torch.Tensor`) : Состояние после шага, с формой `(B, N, D)`: `D` равно 3 для базовой сети (координаты в нанометрах) и ширине латентного пространства для локальных латентов.

Обновленное состояние одной модальности.

