Diffusers documentation

MiniMaxH3Scheduler

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

MiniMaxH3Scheduler

MiniMaxH3Scheduler é o scheduler Euler de fluxo retificado (eta = 0) com um deslocamento exponencial de sigma usado por MiniMax-H3, sigma' = s * sigma / (1 + (s - 1) * sigma).

Os pipelines do MiniMax-H3 registram dois deles, porque os latentes de vídeo e de áudio seguem dois agendamentos diferentes dentro de uma única chamada do transformer por passo: scheduler carrega o agendamento de vídeo (shift=12.0 nos checkpoints liberados) e audio_scheduler o de áudio (shift=3.0).

MiniMaxH3Scheduler

classe diffusers.MiniMaxH3Scheduler

< >

( shift: float = 12.0stochastic_sampling: bool = Falseshift_provided_sigmas: bool | None = None )

Parâmetros

  • shift (float, padrão 12.0) — Deslocamento exponencial aplicado à grade de sigma, sigma' = s*sigma / (1 + (s-1)*sigma). Os checkpoints lançados usam 12.0 para latentes de vídeo e 3.0 para latentes de áudio.
  • stochastic_sampling (bool, padrão False) — Substitui a mistura de Euler por uma atualização de re-ruído: prevê a amostra limpa e, em seguida, aplica re-ruído até o próximo sigma com ruído novo. Os adaptadores de poucas etapas do Pika H3 Flex foram treinados para essa atualização; os checkpoints base não foram.
  • shift_provided_sigmas (bool, opcional) — Se os sigmas explícitos passados para set_timesteps() são uma grade base que o scheduler desloca, como sua grade linspace, ou um agendamento finalizado tomado literalmente. Se não definido, significa literalmente com um aviso de depreciação; o padrão se torna True na 0.44.0.

Agendador Euler de fluxo retificado (eta = 0) com um deslocamento exponencial de sigma, conforme utilizado pelo MiniMax-H3.

index_for_timestep

< >

( timestep: typing.Union[float, torch.Tensor] ) → int

Parâmetros

  • timestep (float ou torch.Tensor) — Um valor obtido de self.timesteps. O agendamento é estritamente crescente em t, portanto a correspondência é única.

Retorna

int

O índice de timestep.

Mapeia um valor de timestep para seu índice na agenda.

scale_noise

< >

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

Parâmetros

  • sample (torch.FloatTensor) — A amostra limpa x_0.
  • timestep (float ou torch.FloatTensor) — O tempo alvo em [0, 1]; 1 retorna sample inalterado.
  • noise (torch.FloatTensor) — O ruído a ser misturado.

Retorna

torch.FloatTensor

A amostra com ruído.

Processo de propagação do fluxo retificado, na convenção de t do MiniMax-H3: x_t = t*x_0 + (1 - t)*noise.

MiniMax-H3 usa isso para adicionar ruído às suas âncoras de condicionamento, onde t é o nível noise_aug em vez de uma entrada do agendamento, portanto timestep é tomado pelo valor de face e não é consultado em self.timesteps.

set_begin_index

< >

( begin_index: int = 0 )

Parâmetros

  • begin_index (int, padrão 0) — O índice inicial do agendador.

Define o índice inicial para o agendador.

set_shift

< >

( shift: float )

Parâmetros

  • shift (float) — O deslocamento exponencial a ser usado para o próximo agendamento.

Substitui o deslocamento de sigma configurado; chame antes de set_timesteps().

MiniMax-H3 expõe isso por solicitação como flow_shift (vídeo) / audio_flow_shift (áudio).

set_timesteps

< >

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

Parâmetros

  • num_inference_steps (int, opcional) — Número de pontos da grade de sigma, incluindo o terminal 0. Ignorado quando sigmas é fornecido.
  • device (str ou torch.device, opcional) — Dispositivo para o qual os tensores do agendamento são movidos. A própria grade é sempre construída na CPU em float32, de modo que o agendamento não dependa do acelerador.
  • sigmas (list[float] ou torch.Tensor, opcional) — Uma grade explícita, estritamente decrescente e terminando em 0.0. Com shift_provided_sigmas=True, é uma grade base em [0, 1] que passa pelo shift como a grade linspace; caso contrário, é usada literalmente (padrão obsoleto).

Construa o agendamento de sigma / timestep.

A grade é linspace(1, 0, num_inference_steps) submetida ao deslocamento exponencial, com duplicados consecutivos colapsados, ou os sigmas explícitos, também deslocados quando shift_provided_sigmas está definido. O terminal 0 já faz parte da grade — o deslocamento mapeia 0 exatamente para 0 — de modo que o agendamento mantém num_inference_steps sigmas e dirige num_inference_steps - 1 avaliações do modelo, expostas como self.timesteps = 1 - sigmas[:-1].

etapa

< >

( model_output: FloatTensortimestep: typing.Union[float, torch.FloatTensor]sample: FloatTensorgenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool = True ) → MiniMaxH3SchedulerOutput or tuple

Parâmetros

  • model_output (torch.FloatTensor) — A previsão de velocidade do transformer no timestep.
  • timestep (float ou torch.FloatTensor) — O timestep atual, um dos self.timesteps (portanto, timestep == 1 - sigma).
  • sample (torch.FloatTensor) — A amostra atual x_t.
  • generator (torch.Generator, opcional) — O gerador do qual o novo ruído é extraído com stochastic_sampling; não utilizado caso contrário.
  • return_dict (bool, padrão True) — Se deve retornar um MiniMaxH3SchedulerOutput em vez de uma tupla simples.

Retorna

MiniMaxH3SchedulerOutput ou tuple

a amostra para a próxima etapa.

Faça um passo de Euler (eta = 0) ou um passo de re-ruído com stochastic_sampling.

A saída do modelo é uma velocidade em direção aos dados, portanto a estimativa desruída é x0 = x_t + (1 - t) * v — observe o +, o oposto da convenção usual de flow-match. A atualização é então a mistura x_next = r*x_t + (1 - r)*x0 com r = sigma_next / sigma, avaliada em float32 para amostras de meia precisão. Com stochastic_sampling, a atualização é x_next = (1 - sigma_next) * x0 + sigma_next * noise com ruído novo de generator, tudo em float32, de modo que o último passo (sigma_next = 0) retorna x0.

MiniMaxH3SchedulerOutput

classe diffusers.schedulers.scheduling_minimax_h3.MiniMaxH3SchedulerOutput

< >

( prev_sample: FloatTensor )

Parâmetros

  • prev_sample (torch.FloatTensor) — Amostra calculada x_{t+1} para o próximo passo do loop de desruidamento.

Classe de saída para a saída da função step do agendador.

Update on GitHub