Diffusers documentation
RFD4ProteinaScheduler
RFD4ProteinaScheduler
RFD4ProteinaScheduler — это временной сэмплер потока с перемасштабированием скоростей для RFD4-Proteína, работающий с одной модальностью. В конвейере используются два экземпляра: один для каркаса (bb_ca, координаты в нанометрах) и один для локальных латентов на токен (local_latents), каждый со своим собственным временным расписанием, расписанием шума и перемасштабированием. См. RFD4ProteinaPipeline для цикла сэмплирования.
RFD4ProteinaScheduler
класс diffusers.RFD4ProteinaScheduler
< source >( schedule_mode: strnoise_mode: strtsr_k: floattsr_sigma: floattail_steps: int = 10tail_step_multiplier: int = 2t_lim_ode: float = 0.95t_lim_ode_below: float = 0.02 )
Параметры
- 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
< source >( num_inference_steps: intdevice: typing.Union[str, torch.device, NoneType] = Nonestart_time: float | None = None )
Параметры
- num_inference_steps (
int) — Количество интервалов интегрирования. - device (
strилиtorch.device, необязательный) — Устройство дляtimesteps. Длины интервалов и коэффициенты шума остаются на CPU. - start_time (
float, необязательный) — Начальное время частичной диффузии в диапазоне[0, 1). Пропустите для полной генерации.
Разрешите расписание и сбросьте курсор интеграции.
add_noise
< source >( original_samples: Tensornoise: Tensortimesteps: typing.Union[float, torch.Tensor] )
Сэмплируйте прямую маргинальную (1 - t) * noise + t * clean.
шаг
< source >( model_output: Tensortimestep: Tensorsample: Tensoremit_mask: Tensorgenerator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonereturn_dict: bool = True ) → RFD4ProteinaSchedulerOutput or tuple
Параметры
- model_output (
torch.Tensor) — Предсказанная скорость, с формой, как уsample. - timestep (
torch.Tensor) — Следующий элементtimesteps. Шаги, идущие не по порядку, отклоняются. - sample (
torch.Tensor) — Текущее состояние(B, N, D). - emit_mask (
torch.Tensor) — Булево(B, N), true для токенов, которые обновляются (не контекст и не padding). - generator (
torch.Generatorилиlist[torch.Generator], необязательный) — Генератор для одной строки или отдельные генераторы для каждой строки батча. Если они не указаны, используется глобальный поток. - return_dict (
bool, по умолчаниюTrue) — ВозвращаетRFD4ProteinaSchedulerOutput; в противном случае — кортеж из одного элемента, содержащий состояние.
Возвращает
RFD4ProteinaSchedulerOutput или tuple
Обновленное состояние.
Выполните один шаг интегрирования и обновите step_index.
RFD4ProteinaSchedulerOutput
класс diffusers.schedulers.scheduling_rfd4_proteina.RFD4ProteinaSchedulerOutput
< source >( prev_sample: Tensor )
Обновленное состояние одной модальности.