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 é baseado em DPM-Solver: A Fast ODE Solver for Diffusion Probabilistic Model Sampling in Around 10 Steps e DPM-Solver++: Fast Solver for Guided Sampling of Diffusion Probabilistic Models, especificamente para modelos CogVideoX.

CogVideoXDPMScheduler

classe 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 )

Parâmetros

  • num_train_timesteps (int, padrão 1000) — O número de etapas de difusão para treinar o modelo.
  • beta_start (float, padrão 0.0001) — O valor inicial de beta para a inferência.
  • beta_end (float, padrão 0.02) — O valor final de beta.
  • beta_schedule (str, padrão "linear") — O agendamento de beta, um mapeamento de um intervalo de beta para uma sequência de betas para o passo do modelo. Escolha entre linear, scaled_linear ou squaredcos_cap_v2.
  • trained_betas (np.ndarray, opcional) — Passe um array de betas diretamente para o construtor para ignorar beta_start e beta_end.
  • clip_sample (bool, padrão True) — Recorta a amostra prevista para estabilidade numérica.
  • clip_sample_range (float, padrão 1.0) — A magnitude máxima para o recorte de amostras. Válido apenas quando clip_sample=True.
  • set_alpha_to_one (bool, padrão True) — Cada etapa de difusão usa o valor do produto dos alfas nessa etapa e na etapa anterior. Para a etapa final, não há um alfa anterior. Quando esta opção é True, o produto do alfa anterior é fixado em 1; caso contrário, é usado o valor do alfa na etapa 0.
  • steps_offset (int, padrão 0) — Um deslocamento adicionado às etapas de inferência, conforme exigido por algumas famílias de modelos.
  • 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, padrão False) — Se deve usar o método de “limiar dinâmico”. Isso não é adequado para modelos de difusão em espaço latente, como o Stable Diffusion.
  • dynamic_thresholding_ratio (float, padrão 0.995) — A proporção para o método de limiar dinâmico. Válido apenas quando thresholding=True.
  • sample_max_value (float, padrão 1.0) — O valor de limiar para o limiar dinâmico. Válido apenas quando thresholding=True.
  • timestep_spacing (str, padrão "leading") — A forma como os timesteps devem ser escalados. Consulte a Tabela 2 do artigo Common Diffusion Noise Schedules and Sample Steps are Flawed para mais informações. Escolha entre leading, linspace ou trailing.
  • rescale_betas_zero_snr (bool, padrão False) — Se deve reescalar os betas para ter SNR terminal zero. Isso permite que o modelo gere amostras muito claras e escuras, em vez de limitá-lo a amostras com brilho médio. Relacionado de forma solta a --offset_noise.
  • snr_shift_scale (float, padrão 3.0) — Escala de deslocamento para SNR.

DDIMScheduler estende o procedimento de remoção de ruído introduzido em modelos probabilísticos de difusão de desruído (DDPMs) com orientação não-markoviana.

Este modelo herda de SchedulerMixin e ConfigMixin. Consulte a documentação da superclasse para os métodos genéricos que a biblioteca implementa para todos os agendadores, como carregamento e salvamento.

add_noise

< >

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

Parâmetros

  • original_samples (torch.Tensor) — As amostras originais às quais o ruído será adicionado.
  • noise (torch.Tensor) — O ruído a ser adicionado às amostras.
  • timesteps (torch.IntTensor) — Os timesteps que indicam o nível de ruído para cada amostra.

Retorna

torch.Tensor

As amostras ruidosas.

Adicione ruído às amostras originais de acordo com a magnitude do ruído em cada timestep (este é o processo de difusão direta).

get_mult

< >

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

Parâmetros

  • h (torch.Tensor) — A diferença de log-SNR.
  • r (torch.Tensor) — A razão das diferenças de log-SNR.
  • alpha_prod_t (torch.Tensor) — O produto acumulado dos alfas no timestep atual.
  • alpha_prod_t_prev (torch.Tensor) — O produto acumulado dos alfas no passo de tempo anterior.
  • alpha_prod_t_back (torch.Tensor, opcional) — O produto acumulado dos alfas no passo de tempo anterior ao passo de tempo anterior.

Retorna

tuple

Uma tupla contendo os multiplicadores.

Calcule os multiplicadores para a amostra anterior e a amostra original prevista.

get_variables

< >

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

Parâmetros

  • alpha_prod_t (torch.Tensor) — O produto acumulado dos alfas no timestep atual.
  • alpha_prod_t_prev (torch.Tensor) — O produto acumulado dos alfas no passo de tempo anterior.
  • alpha_prod_t_back (torch.Tensor, opcional) — O produto acumulado dos alfas no passo de tempo anterior ao passo de tempo anterior.

Retorna

tuple

Uma tupla contendo as variáveis h, r, lamb, lamb_next.

Calcule as variáveis usadas para DPM-Solver++ (2M) referenciando a implementação original.

get_velocity

< >

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

Parâmetros

  • sample (torch.Tensor) — A amostra de entrada.
  • noise (torch.Tensor) — O tensor de ruído.
  • timesteps (torch.IntTensor) — Os timesteps para o cálculo da velocidade.

Retorna

torch.Tensor

A velocidade calculada.

Calcule a previsão de velocidade a partir da amostra e do ruído de acordo com a fórmula de velocidade.

scale_model_input

< >

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

Parâmetros

  • sample (torch.Tensor) — A amostra de entrada.
  • timestep (int, opcional) — O timestep atual na cadeia de difusão.

Retorna

torch.Tensor

Uma amostra de entrada escalada.

Garante a intercambiabilidade com agendadores que precisam escalar a entrada do modelo de desruidamento dependendo do passo de tempo atual.

set_timesteps

< >

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

Parâmetros

  • num_inference_steps (int) — O número de etapas de difusão usadas ao gerar amostras com um modelo pré-treinado.
  • device (str ou torch.device, opcional) — O dispositivo para o qual os timesteps devem ser movidos. Se None (o padrão), os timesteps não são movidos.

Define os passos discretos usados para a cadeia de difusão (a ser executado antes da inferência).

etapa

< >

( 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

Parâmetros

  • model_output (torch.Tensor) — A saída direta do modelo de difusão aprendido.
  • old_pred_original_sample (torch.Tensor) — A amostra original prevista a partir do passo anterior.
  • timestep (int) — O timestep discreto atual na cadeia de difusão.
  • timestep_back (int) — O timestep para o qual olhar para trás.
  • sample (torch.Tensor) — Uma instância atual de uma amostra criada pelo processo de difusão.
  • eta (float) — O peso do ruído para o ruído adicionado na etapa de difusão.
  • use_clipped_model_output (bool, padrão False) — Se True, calcula o model_output “corrigido” a partir da amostra original prevista recortada. Necessário porque a amostra original prevista é recortada para [-1, 1] quando self.config.clip_sample é True. Se nenhum recorte tiver ocorrido, o model_output “corrigido” coincidiria com o fornecido como entrada e use_clipped_model_output não teria efeito.
  • generator (torch.Generator, opcional) — Um gerador de números aleatórios.
  • variance_noise (torch.Tensor) — Alternativa para gerar ruído com generator fornecendo diretamente o ruído para a variância em si. Útil para métodos como CycleDiffusion.
  • return_dict (bool, opcional, padrão True) — Se deve ou não retornar um DDIMSchedulerOutput ou tuple.

Retorna

DDIMSchedulerOutput ou tuple

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

Preveja a amostra do passo de tempo anterior revertendo o SDE. Esta função propaga o processo de difusão a partir das saídas do modelo aprendido (na maioria das vezes, o ruído previsto).

Update on GitHub