Diffusers documentation

KDPM2DiscreteScheduler

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

KDPM2DiscreteScheduler

The KDPM2DiscreteScheduler is inspired by the Elucidating the Design Space of Diffusion-Based Generative Models paper, and the scheduler is ported from and created by Katherine Crowson.

Исходная кодовая база доступна по адресу crowsonkb/k-diffusion.

KDPM2DiscreteScheduler

класс diffusers.KDPM2DiscreteScheduler

< >

( num_train_timesteps: int = 1000beta_start: float = 0.00085beta_end: float = 0.012beta_schedule: str = 'linear'trained_betas: numpy.ndarray | list[float] | None = Noneuse_karras_sigmas: bool = Falseuse_exponential_sigmas: bool = Falseuse_beta_sigmas: bool = Falseprediction_type: str = 'epsilon'timestep_spacing: str = 'linspace'steps_offset: int = 0 )

Параметры

  • num_train_timesteps (int, по умолчанию 1000) — Количество шагов диффузии для обучения модели.
  • beta_start (float, по умолчанию 0.00085) — Начальное значение beta для вывода.
  • beta_end (float, по умолчанию 0.012) — Конечное значение beta.
  • beta_schedule (str, по умолчанию "linear") — Расписание бета, отображающее диапазон значений бета в последовательность бета для шагов модели. Выберите linear или scaled_linear.
  • trained_betas (np.ndarray или list[float], необязательный) — Передайте массив betas непосредственно в конструктор, чтобы обойти beta_start и beta_end.
  • use_karras_sigmas (bool, по умолчанию False) — Использовать ли Karras sigmas для определения размеров шагов в расписании шума во время процесса сэмплирования. Если True, значения сигм определяются согласно последовательности уровней шума {σi}.
  • use_exponential_sigmas (bool, по умолчанию False) — Использовать ли экспоненциальные сигмы для размеров шагов в расписании шума во время процесса выборки.
  • use_beta_sigmas (bool, defaults to False) — Whether to use beta sigmas for step sizes in the noise schedule during the sampling process. Refer to Beta Sampling is All You Need for more information.
  • prediction_type (str, defaults to "epsilon") — 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 (str, 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) — Смещение, добавляемое к шагам инференса, как требуется некоторыми семействами моделей.

KDPM2DiscreteScheduler is inspired by the DPMSolver2 and Algorithm 2 from the Elucidating the Design Space of Diffusion-Based Generative Models paper.

Эта модель наследуется от 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

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

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

set_begin_index

< >

( begin_index: int = 0 )

Параметры

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

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

set_timesteps

< >

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

Параметры

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

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

шаг

< >

( model_output: typing.Union[torch.Tensor, numpy.ndarray]timestep: typing.Union[float, torch.Tensor]sample: typing.Union[torch.Tensor, numpy.ndarray]return_dict: bool = True )

Параметры

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

Предскажите образец из предыдущего шага времени, обращая 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