Diffusers documentation

PNDMScheduler

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

PNDMScheduler

PNDMScheduler, или псевдочисленные методы для диффузионных моделей, использует более продвинутые техники интегрирования ОДУ, такие как метод Рунге-Кутты и линейный многошаговый метод. Исходная реализация доступна по адресу crowsonkb/k-diffusion.

PNDMScheduler

класс diffusers.PNDMScheduler

< >

( num_train_timesteps: int = 1000beta_start: float = 0.0001beta_end: float = 0.02beta_schedule: str = 'linear'trained_betas: numpy.ndarray | list[float] | None = Noneskip_prk_steps: bool = Falseset_alpha_to_one: bool = Falseprediction_type: typing.Literal['epsilon', 'v_prediction'] = 'epsilon'timestep_spacing: typing.Literal['linspace', 'leading', 'trailing'] = 'leading'steps_offset: int = 0 )

Параметры

  • num_train_timesteps (int, по умолчанию 1000) — Количество шагов диффузии для обучения модели.
  • beta_start (float, по умолчанию 0.0001) — Начальное значение beta для вывода.
  • beta_end (float, по умолчанию 0.02) — Конечное значение beta.
  • beta_schedule ("linear", "scaled_linear" или "squaredcos_cap_v2", по умолчанию "linear") — Расписание бета, отображающее диапазон значений бета в последовательность бета для шагов модели.
  • trained_betas (np.ndarray, необязательный) — Передайте массив betas непосредственно в конструктор, чтобы обойти beta_start и beta_end.
  • skip_prk_steps (bool, по умолчанию False) — Позволяет планировщику пропускать шаги метода Рунге–Кутты, которые, согласно оригинальной статье, необходимы перед шагами PLMS.
  • set_alpha_to_one (bool, по умолчанию False) — Каждый шаг диффузии использует значение произведения альф на этом шаге и на предыдущем. Для последнего шага предыдущего альфа нет. Если этот параметр установлен в True, произведение предыдущей альфы фиксируется в 1, иначе используется значение альфы на шаге 0.
  • prediction_type ("epsilon" или "v_prediction", по умолчанию "epsilon") — Тип предсказания функции планировщика; может быть epsilon (предсказывает шум диффузионного процесса) или v_prediction (см. раздел 2.4 статьи Imagen Video).
  • timestep_spacing ("linspace", "leading", or "trailing", defaults to "leading") — The way the timesteps should be scaled. Refer to Table 2 of the Common Diffusion Noise Schedules and Sample Steps are Flawed for more information.
  • steps_offset (int, по умолчанию 0) — Смещение, добавляемое к шагам инференса, как требуется некоторыми семействами моделей.

PNDMScheduler использует псевдочисленные методы для диффузионных моделей, такие как метод Рунге-Кутты и линейный многошаговый метод.

Эта модель наследуется от SchedulerMixin и ConfigMixin. Общую документацию по методам, которые библиотека реализует для всех планировщиков (например, загрузка и сохранение), см. в документации суперкласса.

add_noise

< >

( original_samples: Tensornoise: Tensortimesteps: IntTensor ) → torch.Tensor

Параметры

  • original_samples (torch.Tensor) — Исходные образцы, к которым будет добавлен шум.
  • noise (torch.Tensor) — Шум, который нужно добавить к образцам.
  • timesteps (torch.IntTensor) — Шаги, указывающие уровень шума для каждого образца.

Возвращает

torch.Tensor

Шумные образцы.

Добавьте шум к исходным образцам в соответствии с величиной шума на каждом шаге (это процесс прямой диффузии).

scale_model_input

< >

( sample: Tensor*args**kwargs ) → torch.Tensor

Параметры

  • sample (torch.Tensor) — Входной образец.

Возвращает

torch.Tensor

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

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

set_timesteps

< >

( num_inference_steps: intdevice: typing.Union[str, torch.device] = None )

Параметры

  • num_inference_steps (int) — Количество шагов диффузии, используемых при генерации образцов с помощью предобученной модели.
  • device (str или torch.device, необязательный) — Устройство, на которое следует переместить шаги. Если None, шаги не перемещаются.

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

шаг

< >

( model_output: Tensortimestep: intsample: Tensorreturn_dict: bool = True ) → SchedulerOutput or tuple

Параметры

  • model_output (torch.Tensor) — Прямой вывод из обученной диффузионной модели.
  • timestep (int) — Текущий дискретный шаг в цепочке диффузии.
  • sample (torch.Tensor) — Текущий экземпляр сэмпла, созданный процессом диффузии.
  • return_dict (bool, по умолчанию True) — Определяет, возвращать ли SchedulerOutput или tuple.

Возвращает

SchedulerOutput или tuple

If return_dict is True, SchedulerOutput is returned, otherwise a tuple is returned where the first element is the sample tensor.

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

step_plms

< >

( model_output: Tensortimestep: intsample: Tensorreturn_dict: bool = True ) → SchedulerOutput or tuple

Параметры

  • model_output (torch.Tensor) — Прямой вывод из обученной диффузионной модели.
  • timestep (int) — Текущий дискретный шаг в цепочке диффузии.
  • sample (torch.Tensor) — Текущий экземпляр сэмпла, созданный процессом диффузии.
  • return_dict (bool, по умолчанию True) — Определяет, возвращать ли объект SchedulerOutput или кортеж.

Возвращает

SchedulerOutput или tuple

If return_dict is True, SchedulerOutput is returned, otherwise a tuple is returned where the first element is the sample tensor.

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

step_prk

< >

( model_output: Tensortimestep: intsample: Tensorreturn_dict: bool = True ) → SchedulerOutput or tuple

Параметры

  • model_output (torch.Tensor) — Прямой вывод из обученной диффузионной модели.
  • timestep (int) — Текущий дискретный шаг в цепочке диффузии.
  • sample (torch.Tensor) — Текущий экземпляр сэмпла, созданный процессом диффузии.
  • return_dict (bool, по умолчанию True) — Определяет, возвращать ли объект SchedulerOutput или кортеж.

Возвращает

SchedulerOutput или tuple

If return_dict is True, SchedulerOutput is returned, otherwise a tuple is returned where the first element is the sample tensor.

Предскажите образец из предыдущего шага времени, обращая SDE. Эта функция распространяет образец с помощью метода Рунге-Кутты. Она выполняет четыре прямых прохода для приближения решения дифференциального уравнения.

SchedulerOutput

класс diffusers.schedulers.scheduling_utils.SchedulerOutput

< >

( prev_sample: Tensor )

Параметры

  • prev_sample (torch.Tensor формы (batch_size, num_channels, height, width) для изображений) — Вычисленная выборка (x_{t-1}) предыдущего шага. prev_sample следует использовать как следующий вход модели в цикле шумоподавления.

Базовый класс для результата функции step планировщика.

Update on GitHub