Diffusers documentation

CogVideoXDPMScheduler

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

CogVideoXDPMScheduler

CogVideoXDPMScheduler основан на DPM-Solver: A Fast ODE Solver for Diffusion Probabilistic Model Sampling in Around 10 Steps и DPM-Solver++: Fast Solver for Guided Sampling of Diffusion Probabilistic Models, в частности для моделей CogVideoX.

CogVideoXDPMScheduler

класс diffusers.CogVideoXDPMScheduler

< >

( num_train_timesteps: int = 1000beta_start: float = 0.00085beta_end: float = 0.012beta_schedule: typing.Literal['linear', 'scaled_linear', 'squaredcos_cap_v2'] = 'scaled_linear'trained_betas: numpy.ndarray | list[float] | None = Noneclip_sample: bool = Trueset_alpha_to_one: bool = Truesteps_offset: int = 0prediction_type: typing.Literal['epsilon', 'sample', 'v_prediction'] = 'epsilon'clip_sample_range: float = 1.0sample_max_value: float = 1.0timestep_spacing: typing.Literal['leading', 'linspace', 'trailing'] = 'leading'rescale_betas_zero_snr: bool = Falsesnr_shift_scale: float = 3.0 )

Параметры

  • num_train_timesteps (int, по умолчанию 1000) — Количество шагов диффузии для обучения модели.
  • beta_start (float, по умолчанию 0.0001) — Начальное значение beta для вывода.
  • beta_end (float, по умолчанию 0.02) — Конечное значение beta.
  • beta_schedule (str, по умолчанию "linear") — Расписание beta, отображающее диапазон beta в последовательность значений beta для шагов модели. Выберите одно из значений: linear, scaled_linear или squaredcos_cap_v2.
  • trained_betas (np.ndarray, необязательный) — Передайте массив betas непосредственно в конструктор, чтобы обойти beta_start и beta_end.
  • clip_sample (bool, по умолчанию True) — Обрезает предсказанную выборку для численной стабильности.
  • clip_sample_range (float, по умолчанию 1.0) — Максимальная величина для обрезки выборок. Действительно только при clip_sample=True.
  • set_alpha_to_one (bool, по умолчанию True) — Каждый шаг диффузии использует значение произведения альф на данном шаге и на предыдущем. Для последнего шага предыдущего альфа-значения не существует. Если этот параметр установлен в True, произведение предыдущей альфы фиксируется в 1, в противном случае используется значение альфы на шаге 0.
  • steps_offset (int, по умолчанию 0) — Смещение, добавляемое к шагам инференса, как требуется некоторыми семействами моделей.
  • prediction_type (str, 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).
  • thresholding (bool, по умолчанию False) — Использовать ли метод «динамического порогового значения». Этот метод не подходит для моделей диффузии в латентном пространстве, таких как Stable Diffusion.
  • dynamic_thresholding_ratio (float, по умолчанию 0.995) — Коэффициент для метода динамического порогового значения. Действительно только при thresholding=True.
  • sample_max_value (float, по умолчанию 1.0) — Пороговое значение для динамического порогового выделения. Действительно только при thresholding=True.
  • timestep_spacing (str, 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. Choose from leading, linspace or trailing.
  • rescale_betas_zero_snr (bool, по умолчанию False) — Определяет, следует ли перемасштабировать беты для нулевого конечного SNR. Это позволяет модели генерировать очень яркие и тёмкие образцы, а не ограничиваться образцами со средней яркостью. Непосредственно связано с --offset_noise.
  • snr_shift_scale (float, по умолчанию 3.0) — Масштаб сдвига для SNR.

DDIMScheduler расширяет процедуру денойзинга, предложенную в вероятностных моделях диффузионного денойзинга (DDPM), с помощью немарковского управления.

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

add_noise

< >

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

Параметры

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

Возвращает

torch.Tensor

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

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

get_mult

< >

( h: Tensorr: Tensoralpha_prod_t: Tensoralpha_prod_t_prev: Tensoralpha_prod_t_back: typing.Optional[torch.Tensor] = None ) → tuple

Параметры

  • h (torch.Tensor) — Разница логарифмов отношения сигнал/шум.
  • r (torch.Tensor) — Коэффициент разницы логарифмов отношения сигнал/шум.
  • alpha_prod_t (torch.Tensor) — Кумулятивное произведение альф на текущем шаге.
  • alpha_prod_t_prev (torch.Tensor) — Кумулятивное произведение альф на предыдущем шаге.
  • alpha_prod_t_back (torch.Tensor, необязательный) — Кумулятивное произведение альф на шаге, предшествующем предыдущему шагу.

Возвращает

tuple

Кортеж, содержащий множители.

Вычислите множители для предыдущего примера и предсказанного исходного примера.

get_variables

< >

( alpha_prod_t: Tensoralpha_prod_t_prev: Tensoralpha_prod_t_back: typing.Optional[torch.Tensor] = None ) → tuple

Параметры

  • alpha_prod_t (torch.Tensor) — Кумулятивное произведение альф на текущем шаге.
  • alpha_prod_t_prev (torch.Tensor) — Кумулятивное произведение альф на предыдущем шаге.
  • alpha_prod_t_back (torch.Tensor, необязательный) — Кумулятивное произведение альф на шаге, предшествующем предыдущему шагу.

Возвращает

tuple

Кортеж, содержащий переменные h, r, lamb, lamb_next.

Вычислите переменные, используемые в DPM-Solver++ (2M), ссылаясь на исходную реализацию.

get_velocity

< >

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

Параметры

  • sample (torch.Tensor) — Входной образец.
  • noise (torch.Tensor) — Тензор шума.
  • timesteps (torch.IntTensor) — Шаги для вычисления скорости.

Возвращает

torch.Tensor

Вычисленная скорость.

Вычислите предсказание скорости из выборки и шума согласно формуле скорости.

scale_model_input

< >

( sample: Tensortimestep: int | None = None ) → torch.Tensor

Параметры

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

Возвращает

torch.Tensor

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

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

set_timesteps

< >

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

Параметры

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

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

шаг

< >

( model_output: Tensorold_pred_original_sample: Tensortimestep: inttimestep_back: intsample: Tensoreta: float = 0.0use_clipped_model_output: bool = Falsegenerator: typing.Optional[torch.Generator] = Nonevariance_noise: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = False ) → DDIMSchedulerOutput or tuple

Параметры

  • model_output (torch.Tensor) — Прямой вывод из обученной диффузионной модели.
  • old_pred_original_sample (torch.Tensor) — Предсказанный исходный образец на предыдущем шаге.
  • timestep (int) — Текущий дискретный шаг в цепочке диффузии.
  • timestep_back (int) — Шаг времени, к которому нужно обратиться.
  • sample (torch.Tensor) — Текущий экземпляр сэмпла, созданный процессом диффузии.
  • eta (float) — Вес шума для добавляемого шума на шаге диффузии.
  • use_clipped_model_output (bool, по умолчанию False) — Если True, вычисляет «скорректированный» model_output из обрезанного предсказанного исходного образца. Это необходимо, так как предсказанный исходный образец обрезается до [-1, 1], когда self.config.clip_sample равно True. Если обрезка не выполнялась, «скорректированный» model_output совпадет с переданным на вход, и use_clipped_model_output не оказывает влияния.
  • generator (torch.Generator, необязательный) — Генератор случайных чисел.
  • variance_noise (torch.Tensor) — Альтернатива генерации шума с помощью generator путём прямого предоставления шума для самой дисперсии. Полезно для методов, таких как CycleDiffusion.
  • return_dict (bool, необязательный, по умолчанию True) — Определяет, возвращать ли DDIMSchedulerOutput или tuple.

Возвращает

DDIMSchedulerOutput или tuple

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

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

Update on GitHub