Diffusers documentation

Processador de Atenção

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

Processador de Atenção

Um processador de atenção é uma classe para aplicar diferentes tipos de mecanismos de atenção.

AttnProcessor

classe diffusers.models.attention_processor.AttnProcessor

< >

( )

Processador padrão para realizar cálculos relacionados à atenção.

classe diffusers.models.attention_processor.AttnProcessor2_0

< >

( )

Processador para implementar atenção de produto escalar (ativado por padrão se você estiver usando PyTorch 2.0).

classe diffusers.models.attention_processor.AttnAddedKVProcessor

< >

( )

Processador para realizar cálculos relacionados à atenção com matrizes de chave e valor adicionais e aprendíveis para o codificador de texto.

classe diffusers.models.attention_processor.AttnAddedKVProcessor2_0

< >

( )

Processador para executar atenção de produto escalar (habilitado por padrão se você estiver usando PyTorch 2.0), com matrizes de chave e valor adicionais aprendíveis para o codificador de texto.

classe diffusers.models.attention_processor.AttnProcessorNPU

< >

( )

Processador para implementar flash attention usando torch_npu. O torch_npu suporta apenas os tipos de dados fp16 e bf16. Se fp32 for usado, F.scaled_dot_product_attention será usado para o cálculo, mas o efeito de aceleração na NPU não é significativo.

classe diffusers.models.attention_processor.FusedAttnProcessor2_0

< >

( )

Processador para implementar atenção de produto escalar escalonado (habilitado por padrão se você estiver usando PyTorch 2.0). Ele usa camadas de projeção fundidas. Para os módulos de autoatenção, todas as matrizes de projeção (ou seja, query, key, value) são fundidas. Para os módulos de atenção cruzada, as matrizes de projeção de key e value são fundidas.

> Esta API é atualmente 🧪 experimental e pode mudar no futuro.

Allegro

classe diffusers.models.attention_processor.AllegroAttnProcessor2_0

< >

( )

Processador para implementar atenção de produto escalar (habilitado por padrão se você estiver usando PyTorch 2.0). Isso é usado no modelo Allegro. Ele aplica uma camada de normalização e incorporação rotacional nos vetores de consulta e chave.

AuraFlow

classe diffusers.models.attention_processor.AuraFlowAttnProcessor2_0

< >

( )

Processador de atenção usado tipicamente no processamento do Aura Flow.

classe diffusers.models.attention_processor.FusedAuraFlowAttnProcessor2_0

< >

( )

Processador de atenção usado tipicamente no processamento do Aura Flow com projeções fundidas.

CogVideoX

classe diffusers.models.attention_processor.CogVideoXAttnProcessor2_0

< >

( )

Processador para implementar a atenção de produto escalar (scaled dot-product attention) para o modelo CogVideoX. Ele aplica um incorporação rotacional (rotary embedding) nos vetores de consulta e chave, mas não inclui normalização espacial.

classe diffusers.models.attention_processor.FusedCogVideoXAttnProcessor2_0

< >

( )

Processador para implementar a atenção de produto escalar (scaled dot-product attention) para o modelo CogVideoX. Ele aplica um incorporação rotacional (rotary embedding) nos vetores de consulta e chave, mas não inclui normalização espacial.

DreamLite

classe diffusers.models.unets.unet_dreamlite.DreamLiteAttnProcessor2_0

< >

( )

Processador para implementar atenção de produto escalar com suporte a Grouped Query Attention (GQA / MQA).

Idêntico ao AttnProcessor2_0, exceto que o ramo de reshape de chave/valor trata corretamente attn.kv_heads != attn.heads ao fazer o reshape de K/V para kv_heads e, em seguida, aplicando repeat_interleave até attn.heads. Isso é necessário para o DreamLite UNet, que combina GQA com qk_norm — uma combinação que o AttnProcessor2_0 padrão não trata. O SDPA é delegado ao dispatch_attention_fn, permitindo o uso de qualquer um dos backends de atenção do diffusers (SDPA nativo do PyTorch, FlashAttention, etc.).

Custom Diffusion

classe diffusers.models.attention_processor.CustomDiffusionAttnProcessor

< >

( train_kv: bool = Truetrain_q_out: bool = Truehidden_size: int | None = Nonecross_attention_dim: int | None = Noneout_bias: bool = Truedropout: float = 0.0 )

Parâmetros

  • train_kv (bool, padrão True) — Se treinar novas matrizes de chave e valor correspondentes aos recursos de texto.
  • train_q_out (bool, padrão True) — Se treinar novas matrizes de consulta correspondentes aos recursos latentes da imagem.
  • hidden_size (int, opcional, padrão None) — O tamanho oculto da camada de atenção.
  • cross_attention_dim (int, opcional, padrão None) — O número de canais em encoder_hidden_states.
  • out_bias (bool, padrão True) — Se deve incluir o parâmetro de viés em train_q_out.
  • dropout (float, opcional, padrão 0.0) — A probabilidade de dropout a ser utilizada.

Processador para implementar a atenção no método Custom Diffusion.

classe diffusers.models.attention_processor.CustomDiffusionAttnProcessor2_0

< >

( train_kv: bool = Truetrain_q_out: bool = Truehidden_size: int | None = Nonecross_attention_dim: int | None = Noneout_bias: bool = Truedropout: float = 0.0 )

Parâmetros

  • train_kv (bool, padrão True) — Se treinar novas matrizes de chave e valor correspondentes aos recursos de texto.
  • train_q_out (bool, padrão True) — Se treinar novas matrizes de consulta correspondentes aos recursos latentes da imagem.
  • hidden_size (int, opcional, padrão None) — O tamanho oculto da camada de atenção.
  • cross_attention_dim (int, opcional, padrão None) — O número de canais em encoder_hidden_states.
  • out_bias (bool, padrão True) — Se deve incluir o parâmetro de viés em train_q_out.
  • dropout (float, opcional, padrão 0.0) — A probabilidade de dropout a ser utilizada.

Processor para implementar atenção para o método Custom Diffusion usando a atenção de produto escalar eficiente em memória do PyTorch 2.0.

classe diffusers.models.attention_processor.CustomDiffusionXFormersAttnProcessor

< >

( train_kv: bool = Truetrain_q_out: bool = Falsehidden_size: int | None = Nonecross_attention_dim: int | None = Noneout_bias: bool = Truedropout: float = 0.0attention_op: Callable | None = None )

Parâmetros

  • train_kv (bool, padrão True) — Se treinar novas matrizes de chave e valor correspondentes aos recursos de texto.
  • train_q_out (bool, padrão True) — Se treinar novas matrizes de consulta correspondentes aos recursos latentes da imagem.
  • hidden_size (int, opcional, padrão None) — O tamanho oculto da camada de atenção.
  • cross_attention_dim (int, opcional, padrão None) — O número de canais em encoder_hidden_states.
  • out_bias (bool, padrão True) — Se deve incluir o parâmetro de viés em train_q_out.
  • dropout (float, opcional, padrão 0.0) — A probabilidade de dropout a ser utilizada.
  • attention_op (Callable, opcional, padrão None) — O operador base a ser usado como operador de atenção. Recomenda-se definir como None e permitir que o xFormers escolha o melhor operador.

Processador para implementar atenção eficiente em memória usando xFormers para o método Custom Diffusion.

Flux

classe diffusers.models.attention_processor.FluxAttnProcessor2_0

< >

( *args**kwargs )

classe diffusers.models.attention_processor.FusedFluxAttnProcessor2_0

< >

( *args**kwargs )

classe diffusers.models.attention_processor.FluxSingleAttnProcessor2_0

< >

( *args**kwargs )

Processador para implementar atenção de produto escalar (ativado por padrão se você estiver usando PyTorch 2.0).

Hunyuan

classe diffusers.models.attention_processor.HunyuanAttnProcessor2_0

< >

( )

Processador para implementar atenção de produto escalar (habilitado por padrão se você estiver usando PyTorch 2.0). Isso é usado no modelo HunyuanDiT. Ele aplica uma camada de normalização s e incorporação rotacional nos vetores de consulta e chave.

classe diffusers.models.attention_processor.FusedHunyuanAttnProcessor2_0

< >

( )

Processador para implementar atenção de produto escalar (habilitado por padrão se você estiver usando PyTorch 2.0) com camadas de projeção fundidas. Isso é usado no modelo HunyuanDiT. Ele aplica uma camada de normalização s e incorporação rotacional nos vetores de consulta e chave.

classe diffusers.models.attention_processor.PAGHunyuanAttnProcessor2_0

< >

( )

Processador para implementar atenção de produto escalar (habilitado por padrão se você estiver usando PyTorch 2.0). Isso é usado no modelo HunyuanDiT. Ele aplica uma camada de normalização e incorporação rotacional nos vetores de consulta e chave. Esta variante do processador emprega Pertubed Attention Guidance.

classe diffusers.models.attention_processor.PAGCFGHunyuanAttnProcessor2_0

< >

( )

Processador para implementar atenção de produto escalar (habilitado por padrão se você estiver usando PyTorch 2.0). Isso é usado no modelo HunyuanDiT. Ele aplica uma camada de normalização e incorporação rotacional nos vetores de consulta e chave. Esta variante do processador emprega Pertubed Attention Guidance.

IdentitySelfAttnProcessor2_0

classe diffusers.models.attention_processor.PAGIdentitySelfAttnProcessor2_0

< >

( )

Processador para implementar PAG usando atenção de produto escalar (habilitado por padrão se você estiver usando PyTorch 2.0). Referência de PAG: https://huggingface.co/papers/2403.17377

classe diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0

< >

( )

Processador para implementar PAG usando atenção de produto escalar (habilitado por padrão se você estiver usando PyTorch 2.0). Referência de PAG: https://huggingface.co/papers/2403.17377

IP-Adapter

classe diffusers.models.attention_processor.IPAdapterAttnProcessor

< >

( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0 )

Parâmetros

  • hidden_size (int) — O tamanho oculto da camada de atenção.
  • cross_attention_dim (int) — O número de canais em encoder_hidden_states.
  • num_tokens (int, tuple[int] ou list[int], padrão (4,)) — O comprimento do contexto dos recursos da imagem.
  • scale (float ou listafloat, padrão 1.0) — a escala de peso do prompt de imagem.

Processador de atenção para múltiplos IP-Adapters.

classe diffusers.models.attention_processor.IPAdapterAttnProcessor2_0

< >

( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0 )

Parâmetros

  • hidden_size (int) — O tamanho oculto da camada de atenção.
  • cross_attention_dim (int) — O número de canais em encoder_hidden_states.
  • num_tokens (int, tuple[int] ou list[int], padrão (4,)) — O comprimento do contexto dos recursos da imagem.
  • scale (float ou list[float], padrão 1.0) — a escala de peso do prompt de imagem.

Processador de atenção para IP-Adapter para PyTorch 2.0.

classe diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0

< >

( hidden_size: intip_hidden_states_dim: inthead_dim: inttimesteps_emb_dim: int = 1280scale: float = 0.5 )

Parâmetros

  • hidden_size (int) — O número de canais ocultos.
  • ip_hidden_states_dim (int) — A dimensão dos recursos da imagem.
  • head_dim (int) — O número de canais de cabeçalho.
  • timesteps_emb_dim (int, padrão 1280) — O número de canais de entrada para a incorporação de passo de tempo.
  • scale (float, padrão 0.5) — Escala do IP-Adapter.

Processador de atenção para IP-Adapter usado tipicamente no processamento das projeções de autoatenção semelhantes às do SD3, com informações adicionais baseadas em imagem e incorporações de passo de tempo.

JointAttnProcessor2_0

classe diffusers.models.attention_processor.JointAttnProcessor2_0

< >

( )

Processador de atenção usado tipicamente no processamento das projeções de autoatenção semelhantes às do SD3.

classe diffusers.models.attention_processor.PAGJointAttnProcessor2_0

< >

( )

Processador de atenção usado tipicamente no processamento das projeções de autoatenção semelhantes às do SD3.

classe diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0

< >

( )

Processador de atenção usado tipicamente no processamento das projeções de autoatenção semelhantes às do SD3.

classe diffusers.models.attention_processor.FusedJointAttnProcessor2_0

< >

( )

Processador de atenção usado tipicamente no processamento das projeções de autoatenção semelhantes às do SD3.

LoRA

classe diffusers.models.attention_processor.LoRAAttnProcessor

< >

( )

Processador para implementar atenção com LoRA.

classe diffusers.models.attention_processor.LoRAAttnProcessor2_0

< >

( )

Processador para implementar atenção com LoRA (habilitado por padrão se você estiver usando PyTorch 2.0).

classe diffusers.models.attention_processor.LoRAAttnAddedKVProcessor

< >

( )

Processador para implementar atenção com LoRA com matrizes de chave e valor adicionais e aprendíveis para o codificador de texto.

classe diffusers.models.attention_processor.LoRAXFormersAttnProcessor

< >

( )

Processador para implementar atenção com LoRA usando xFormers.

Lumina-T2X

classe diffusers.models.attention_processor.LuminaAttnProcessor2_0

< >

( )

Processador para implementar atenção de produto escalar (habilitado por padrão se você estiver usando PyTorch 2.0). Isso é usado no modelo LuminaNextDiT. Ele aplica uma camada de normalização s e incorporação rotacional nos vetores de consulta e chave.

Mochi

classe diffusers.models.attention_processor.MochiAttnProcessor2_0

< >

( )

Processador de atenção usado no Mochi.

classe diffusers.models.attention_processor.MochiVaeAttnProcessor2_0

< >

( )

Processador de atenção usado no Mochi VAE.

Sana

classe diffusers.models.attention_processor.SanaLinearAttnProcessor2_0

< >

( )

Processador para implementar atenção linear de produto escalar escalonado.

classe diffusers.models.attention_processor.SanaMultiscaleAttnProcessor2_0

< >

( )

Processador para implementar atenção quadrática multiescala.

classe diffusers.models.attention_processor.PAGCFGSanaLinearAttnProcessor2_0

< >

( )

Processador para implementar atenção linear de produto escalar escalonado.

classe diffusers.models.attention_processor.PAGIdentitySanaLinearAttnProcessor2_0

< >

( )

Processador para implementar atenção linear de produto escalar escalonado.

Stable Audio

classe diffusers.models.attention_processor.StableAudioAttnProcessor2_0

< >

( )

Processador para implementar atenção de produto escalar (habilitado por padrão se você estiver usando PyTorch 2.0). Isso é usado no modelo Stable Audio. Ele aplica incorporação rotacional nos vetores de consulta e chave, e permite MHA, GQA ou MQA.

SlicedAttnProcessor

classe diffusers.models.attention_processor.SlicedAttnProcessor

< >

( slice_size: int )

Parâmetros

  • slice_size (int, opcional) — O número de etapas para calcular a atenção. Usa tantos fatias quanto attention_head_dim // slice_size, e attention_head_dim deve ser um múltiplo do slice_size.

Processador para implementar atenção fatiada.

classe diffusers.models.attention_processor.SlicedAttnAddedKVProcessor

< >

( slice_size )

Parâmetros

  • slice_size (int, opcional) — O número de etapas para calcular a atenção. Usa tantos fatias quanto attention_head_dim // slice_size, e attention_head_dim deve ser um múltiplo do slice_size.

Processador para implementar atenção fatiada com matrizes de chave e valor adicionais e aprendíveis para o codificador de texto.

XFormersAttnProcessor

classe diffusers.models.attention_processor.XFormersAttnProcessor

< >

( attention_op: Callable | None = None )

Parâmetros

  • attention_op (Callable, opcional, padrão None) — O operador base a ser usado como operador de atenção. Recomenda-se definir como None e permitir que o xFormers escolha o melhor operador.

Processador para implementar atenção eficiente em memória usando xFormers.

classe diffusers.models.attention_processor.XFormersAttnAddedKVProcessor

< >

( attention_op: Callable | None = None )

Parâmetros

  • attention_op (Callable, opcional, padrão None) — O operador base a ser usado como operador de atenção. Recomenda-se definir como None e permitir que o xFormers escolha o melhor operador.

Processador para implementar atenção eficiente em memória usando xFormers.

XLAFlashAttnProcessor2_0

classe diffusers.models.attention_processor.XLAFlashAttnProcessor2_0

< >

( partition_spec: tuple[str | None, ...] | None = None )

Processador para implementar atenção de produto escalar com o kernel pallas flash attention ao usar torch_xla.

XFormersJointAttnProcessor

classe diffusers.models.attention_processor.XFormersJointAttnProcessor

< >

( attention_op: Callable | None = None )

Parâmetros

  • attention_op (Callable, opcional, padrão None) — O operador base a ser usado como operador de atenção. Recomenda-se definir como None e permitir que o xFormers escolha o melhor operador.

Processador para implementar atenção eficiente em memória usando xFormers.

IPAdapterXFormersAttnProcessor

classe diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor

< >

( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0attention_op: Callable | None = None )

Parâmetros

  • hidden_size (int) — O tamanho oculto da camada de atenção.
  • cross_attention_dim (int) — O número de canais em encoder_hidden_states.
  • num_tokens (int, tuple[int] ou list[int], padrão (4,)) — O comprimento do contexto dos recursos da imagem.
  • scale (float ou list[float], padrão 1.0) — a escala de peso do prompt de imagem.
  • attention_op (Callable, opcional, padrão None) — O operador base a ser usado como operador de atenção. Recomenda-se definir como None e permitir que o xFormers escolha o melhor operador.

Processador de atenção para IP-Adapter usando xFormers.

FluxIPAdapterJointAttnProcessor2_0

classe diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0

< >

( *args**kwargs )

XLAFluxFlashAttnProcessor2_0

classe diffusers.models.attention_processor.XLAFluxFlashAttnProcessor2_0

< >

( *args**kwargs )

Processador para implementar atenção de produto escalar com o kernel pallas flash attention ao usar torch_xla.

Update on GitHub