Diffusers documentation

EulerAncestralDiscreteScheduler

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

EulerAncestralDiscreteScheduler

Планировщик, использующий анцестральное сэмплирование с шагами метода Эйлера. Это быстрый планировщик, который часто позволяет получать качественные результаты за 20–30 шагов. Планировщик основан на исходной реализации k-diffusion, созданной Katherine Crowson.

EulerAncestralDiscreteScheduler

класс diffusers.EulerAncestralDiscreteScheduler

< >

( num_train_timesteps: int = 1000beta_start: float = 0.0001beta_end: float = 0.02beta_schedule: str = 'linear'trained_betas: numpy.ndarray | list[float] | None = Noneprediction_type: str = 'epsilon'timestep_spacing: str = 'linspace'steps_offset: int = 0rescale_betas_zero_snr: bool = False )

Параметры

  • 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") — Расписание бета, отображающее диапазон бета в последовательность значений бета для шагов модели. Выберите одно из значений: linear, scaled_linear или squaredcos_cap_v2.
  • trained_betas (np.ndarray, необязательный) — Передайте массив betas непосредственно в конструктор, чтобы обойти beta_start и beta_end.
  • prediction_type ("epsilon", "sample", or "v_prediction", defaults to "epsilon", optional) — Prediction type of the scheduler function; can be epsilon (predicts the noise of the diffusion process), sample (directly predicts the noisy sample) or v_prediction` (see section 2.4 of Imagen Video paper).
  • timestep_spacing ("linspace", "leading", or "trailing", defaults to "linspace") — 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) — Смещение, добавляемое к шагам инференса, как требуется некоторыми семействами моделей.
  • rescale_betas_zero_snr (bool, по умолчанию False) — Определяет, следует ли перемасштабировать беты для нулевого конечного SNR. Это позволяет модели генерировать очень яркие и тёмкие образцы, а не ограничиваться образцами со средней яркостью. Непосредственно связано с --offset_noise.

Анцестральное сэмплирование с шагами метода Эйлера.

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

add_noise

< >

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

Параметры

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

Возвращает

torch.Tensor

Шумовые образцы с добавленным шумом, масштабированным в соответствии с расписанием шагов времени.

Добавьте шум к исходным образцам в соответствии с расписанием шума на указанных временных шагах.

index_for_timestep

< >

( timestep: typing.Union[float, torch.Tensor]schedule_timesteps: typing.Optional[torch.Tensor] = None ) → int

Параметры

  • timestep (float или torch.Tensor) — Значение шага, которое нужно найти в расписании.
  • schedule_timesteps (torch.Tensor, необязательный) — Расписание временных шагов, в котором выполняется поиск. Если None, используется self.timesteps.

Возвращает

int

Индекс шага времени в расписании. Для самого первого шага возвращает второй индекс, если существует несколько совпадений, чтобы избежать пропуска сигмы при начале с середины расписания (например, для image-to-image).

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

scale_model_input

< >

( sample: Tensortimestep: typing.Union[float, torch.Tensor] ) → torch.Tensor

Параметры

  • sample (torch.Tensor) — Входной образец.
  • timestep (float или torch.Tensor) — Текущий шаг в цепочке диффузии.

Возвращает

torch.Tensor

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

Обеспечивает совместимость с планировщиками, которым необходимо масштабировать входную данные модели денуазинга в зависимости от текущего шага. Масштабирует входные данные модели денуазинга с помощью (sigma**2 + 1) ** 0.5 для соответствия алгоритму Euler.

set_begin_index

< >

( begin_index: int = 0 )

Параметры

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

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

set_timesteps

< >

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

Параметры

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

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

шаг

< >

( model_output: Tensortimestep: typing.Union[float, torch.Tensor]sample: Tensorgenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool = True ) → EulerAncestralDiscreteSchedulerOutput or tuple

Параметры

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

Возвращает

EulerAncestralDiscreteSchedulerOutput или tuple

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

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

EulerAncestralDiscreteSchedulerOutput

класс diffusers.schedulers.scheduling_euler_ancestral_discrete.EulerAncestralDiscreteSchedulerOutput

< >

( prev_sample: Tensorpred_original_sample: typing.Optional[torch.Tensor] = None )

Параметры

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

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

Update on GitHub