Diffusers documentation

FlowMatchEulerDiscreteScheduler

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

FlowMatchEulerDiscreteScheduler

FlowMatchEulerDiscreteScheduler основан на сэмплировании flow-matching, представленном в Stable Diffusion 3.

FlowMatchEulerDiscreteScheduler

класс diffusers.FlowMatchEulerDiscreteScheduler

< >

( num_train_timesteps: int = 1000shift: float = 1.0use_dynamic_shifting: bool = Falsebase_shift: float | None = 0.5max_shift: float | None = 1.15base_image_seq_len: int = 256max_image_seq_len: int = 4096invert_sigmas: bool = Falseshift_terminal: float = Noneuse_karras_sigmas: bool = Falseuse_exponential_sigmas: bool = Falseuse_beta_sigmas: bool = Falsetime_shift_type: typing.Literal['exponential', 'linear'] = 'exponential'stochastic_sampling: bool = False )

Параметры

  • num_train_timesteps (int, по умолчанию 1000) — Количество шагов диффузии для обучения модели.
  • shift (float, по умолчанию 1.0) — Значение сдвига для расписания временных шагов.
  • use_dynamic_shifting (bool, по умолчанию False) — Применять ли сдвиг временных шагов на лету в зависимости от разрешения изображения.
  • base_shift (float, по умолчанию 0.5) — Значение для стабилизации генерации изображений. Увеличение base_shift снижает вариативность, и изображение становится более согласованным с желаемым результатом.
  • max_shift (float, по умолчанию 1.15) — Допустимое изменение значений для латентных векторов. Увеличение max_shift способствует большему разнообразию, а изображение может стать более преувеличенным или стилизованным.
  • base_image_seq_len (int, по умолчанию 256) — Базовая длина последовательности изображения.
  • max_image_seq_len (int, по умолчанию 4096) — Максимальная длина последовательности изображения.
  • invert_sigmas (bool, по умолчанию False) — Определяет, следует ли инвертировать сигмы.
  • shift_terminal (float, по умолчанию None) — Конечное значение сдвинутого расписания временных шагов.
  • use_karras_sigmas (bool, по умолчанию False) — Использовать ли Karras sigmas для определения размеров шагов в расписании шума при сэмплировании.
  • use_exponential_sigmas (bool, по умолчанию False) — Использовать ли экспоненциальные сигмы для размеров шагов в расписании шума при сэмплировании.
  • use_beta_sigmas (bool, по умолчанию False) — Использовать ли бета-сигмы для шагов в расписании шума при сэмплировании.
  • time_shift_type (str, по умолчанию “exponential”) — Тип сдвига шагов времени, зависящего от динамического разрешения, который необходимо применить. Допустимые значения: “exponential” или “linear”.
  • stochastic_sampling (bool, по умолчанию False) — Использовать ли стохастическую выборку.

Планировщик Эйлера.

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

index_for_timestep

< >

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

Параметры

  • timestep (float или torch.FloatTensor) — Шаг времени, для которого нужно найти индекс.
  • schedule_timesteps (torch.FloatTensor, необязательный) — Шаги расписания, по которым выполняется проверка. Если None, используются шаги расписания планировщика.

Возвращает

int

Индекс шага времени.

Получить индекс для указанного шага.

scale_noise

< >

( sample: FloatTensortimestep: typing.Union[float, torch.FloatTensor]noise: typing.Optional[torch.FloatTensor] = None ) → torch.FloatTensor

Параметры

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

Возвращает

torch.FloatTensor

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

Прямой процесс в flow-matching

set_begin_index

< >

( begin_index: int = 0 )

Параметры

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

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

set_shift

< >

( shift: float )

Параметры

  • shift (float) — Значение сдвига, которое нужно установить.

Устанавливает значение сдвига для планировщика.

set_timesteps

< >

( num_inference_steps: int | None = Nonedevice: typing.Union[str, torch.device] = Nonesigmas: list[float] | None = Nonemu: float | None = Nonetimesteps: list[float] | None = None )

Параметры

  • num_inference_steps (int, необязательный) — Количество шагов диффузии, используемое при генерации образцов с помощью предобученной модели.
  • device (str или torch.device, необязательный) — Устройство, на которое следует переместить шаги. Если None, шаги не перемещаются.
  • sigmas (list[float], необязательный) — Пользовательские значения сигм, используемые для каждого шага диффузии. Если None, сигмы вычисляются автоматически.
  • mu (float, необязательный) — Определяет величину сдвига, применяемую к сигмам при выполнении сдвига шагов времени, зависящего от разрешения.
  • timesteps (list[float], необязательный) — Пользовательские значения для timesteps, используемые на каждом шаге диффузии. Если None, timesteps вычисляются автоматически.

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

шаг

< >

( model_output: FloatTensortimestep: typing.Union[float, torch.FloatTensor]sample: FloatTensors_churn: float = 0.0s_tmin: float = 0.0s_tmax: float = infs_noise: float = 1.0generator: typing.Optional[torch.Generator] = Noneper_token_timesteps: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True ) → FlowMatchEulerDiscreteSchedulerOutput or tuple

Параметры

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

Возвращает

FlowMatchEulerDiscreteSchedulerOutput или tuple

Если True, возвращается FlowMatchEulerDiscreteSchedulerOutput, иначе возвращается кортеж, первым элементом которого является тензор выборки.

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

stretch_shift_to_terminal

< >

( t: Tensor ) → torch.Tensor

Параметры

  • t (torch.Tensor) — Тензор временных шагов, которые нужно растянуть и сдвинуть.

Возвращает

torch.Tensor

Тензор скорректированных шагов, у которого последнее значение равно self.config.shift_terminal.

Растягивает и сдвигает расписание временных шагов, чтобы обеспечить его завершение на заданном значении конфигурации shift_terminal.

Справочник: https://github.com/Lightricks/LTX-Video/blob/a01a171f8fe3d99dce2728d60a73fecf4d4238ae/ltx_video/schedulers/rf.py#L51

time_shift

< >

( mu: floatsigma: floatt: Tensor ) → torch.Tensor

Параметры

  • mu (float) — Параметр mu для сдвига времени.
  • sigma (float) — Параметр sigma для сдвига времени.
  • t (torch.Tensor) — Входные временные шаги.

Возвращает

torch.Tensor

Сдвинутые по времени шаги.

Примените сдвиг по времени к сигмам.

Update on GitHub