Diffusers documentation
DDIMInverseScheduler
DDIMInverseScheduler
DDIMInverseScheduler é o agendador invertido de Denoising Diffusion Implicit Models (DDIM), de Jiaming Song, Chenlin Meng e Stefano Ermon.
A implementação é baseada principalmente na definição de inversão DDIM de Null-text Inversion for Editing Real Images using Guided Diffusion Models.
DDIMInverseScheduler
classe diffusers.DDIMInverseScheduler
< source >( num_train_timesteps: int = 1000beta_start: float = 0.0001beta_end: float = 0.02beta_schedule: typing.Literal['linear', 'scaled_linear', 'squaredcos_cap_v2'] = '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.0timestep_spacing: typing.Literal['leading', 'trailing'] = 'leading'rescale_betas_zero_snr: bool = False**kwargs )
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 debetapara a inferência. - beta_end (
float, padrão 0.02) — O valor final debeta. - 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 entrelinear,scaled_linearousquaredcos_cap_v2. - trained_betas (
np.ndarray, opcional) — Passe um array de betas diretamente para o construtor para ignorarbeta_startebeta_end. - clip_sample (
bool, padrãoTrue) — 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 quandoclip_sample=True. - set_alpha_to_one (
bool, padrãoTrue) — 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 0; caso contrário, é usado o valor do alfa na etapanum_train_timesteps - 1. - 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 toepsilon, optional) — Prediction type of the scheduler function; can beepsilon(predicts the noise of the diffusion process),sample(directly predicts the noisy sample) orv_prediction` (see section 2.4 of Imagen Video paper). - 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. - rescale_betas_zero_snr (
bool, padrãoFalse) — 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.
DDIMInverseScheduler é o agendador reverso de DDIMScheduler.
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.
scale_model_input
< source >( sample: Tensortimestep: int | None = None ) → torch.Tensor
Garante a intercambiabilidade com agendadores que precisam escalar a entrada do modelo de desruidamento dependendo do passo de tempo atual.
set_timesteps
< source >( num_inference_steps: intdevice: typing.Union[str, torch.device, NoneType] = None )
Define os passos discretos usados para a cadeia de difusão (a ser executado antes da inferência).
etapa
< source >( model_output: Tensortimestep: intsample: Tensorreturn_dict: bool = True ) → ~schedulers.scheduling_ddim_inverse.DDIMInverseSchedulerOutput or tuple
Parâmetros
- model_output (
torch.Tensor) — A saída direta do modelo de difusão aprendido. - timestep (
int) — O timestep discreto atual na cadeia de difusão. - sample (
torch.Tensor) — Uma instância atual de uma amostra criada pelo processo de difusão. - return_dict (
bool, opcional, padrãoTrue) — Se deve ou não retornar um~schedulers.scheduling_ddim_inverse.DDIMInverseSchedulerOutputoutuple.
Retorna
~schedulers.scheduling_ddim_inverse.DDIMInverseSchedulerOutput ou tuple
Se `return_dict` é True, ~schedulers.scheduling_ddim_inverse.DDIMInverseSchedulerOutput é
retornado, caso contrário, uma tupla é retornada em que o primeiro elemento é o tensor da amostra.
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).