Diffusers documentation
HeliosScheduler
HeliosScheduler
HeliosScheduler é baseado no amostramento de fluxo-piramidal introduzido em Helios.
HeliosScheduler
classe diffusers.HeliosScheduler
< source >( num_train_timesteps: int = 1000shift: float = 1.0stages: int = 3stage_range: list = [0, 0.3333333333333333, 0.6666666666666666, 1]gamma: float = 0.3333333333333333thresholding: bool = Falseprediction_type: str = 'flow_prediction'solver_order: int = 2predict_x0: bool = Truesolver_type: str = 'bh2'lower_order_final: bool = Truedisable_corrector: list[int] = []solver_p: SchedulerMixin = Noneuse_flow_sigmas: bool = Truescheduler_type: str = 'unipc'use_dynamic_shifting: bool = Falsetime_shift_type: typing.Literal['exponential', 'linear'] = 'exponential' )
convert_model_output
< source >( model_output: Tensor*argssample: Tensor = Nonesigma: Tensor = None**kwargs ) → torch.Tensor
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. - sigma (
torch.Tensor, opcional) — O sigma da etapa atual no agendamento de ruído.
Retorna
torch.Tensor
A saída do modelo convertido.
Converta a saída do modelo para o tipo correspondente necessário pelo algoritmo UniPC.
inicializar os timesteps e sigmas globais
Inicialize os timesteps para cada etapa
multistep_uni_c_bh_update
< source >( this_model_output: Tensor*argslast_sample: Tensor = Nonethis_sample: Tensor = Noneorder: int = Nonesigma_before: Tensor = Nonesigma: Tensor = None**kwargs ) → torch.Tensor
Parâmetros
- this_model_output (
torch.Tensor) — As saídas do modelo emx_t. - this_timestep (
int) — O timestep atualt. - last_sample (
torch.Tensor) — A amostra gerada antes do último preditorx_{t-1}. - this_sample (
torch.Tensor) — A amostra gerada após o último preditorx_{t}. - order (
int) — Opde UniC-p nesta etapa. A ordem de precisão efetiva deve serorder + 1. - sigma_before (
torch.Tensor, opcional) — O sigma da etapa anterior no agendamento de ruído. - sigma (
torch.Tensor, opcional) — O sigma da etapa atual no agendamento de ruído.
Retorna
torch.Tensor
O tensor de amostra corrigido no timestep atual.
Um passo para o UniC (versão B(h)).
multistep_uni_p_bh_update
< source >( model_output: Tensor*argssample: Tensor = Noneorder: int = Nonesigma: Tensor = Nonesigma_next: Tensor = None**kwargs ) → torch.Tensor
Parâmetros
- model_output (
torch.Tensor) — A saída direta do modelo de difusão aprendido no timestep atual. - prev_timestep (
int) — O passo de tempo discreto anterior na cadeia de difusão. - sample (
torch.Tensor) — Uma instância atual de uma amostra criada pelo processo de difusão. - order (
int) — A ordem do UniP neste timestep (corresponde ao p em UniPC-p). - sigma (
torch.Tensor, opcional) — O sigma da etapa atual no agendamento de ruído. - sigma_next (
torch.Tensor, opcional) — O sigma do próximo passo no agendamento de ruído.
Retorna
torch.Tensor
O tensor de amostra no passo de tempo anterior.
Um passo para o UniP (versão B(h)). Alternativamente, self.solver_p é usado se especificado.
set_begin_index
< source >( begin_index: int = 0 )
Define o índice inicial para o agendador. Esta função deve ser executada a partir do pipeline antes da inferência.
set_timesteps
< source >( num_inference_steps: intstage_index: int | None = Nonedevice: typing.Union[str, torch.device] = Nonesigmas: bool | None = Nonemu: bool | None = Noneis_amplify_first_chunk: bool = False )
Definindo os timesteps e sigmas para cada etapa
time_shift
< source >( mu: floatsigma: floatt: Tensor ) → torch.Tensor
Aplicar o deslocamento temporal aos sigmas.
scheduling_helios
Update on GitHub