Diffusers documentation

Procesador de atención

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

Procesador de atención

Un procesador de atención es una clase para aplicar diferentes tipos de mecanismos de atención.

AttnProcessor

clase diffusers.models.attention_processor.AttnProcessor

< >

( )

Procesador predeterminado para realizar cálculos relacionados con la atención.

clase diffusers.models.attention_processor.AttnProcessor2_0

< >

( )

Procesador para implementar la atención de producto escalar (habilitado de forma predeterminada si está utilizando PyTorch 2.0).

clase diffusers.models.attention_processor.AttnAddedKVProcessor

< >

( )

Procesador para realizar cálculos relacionados con la atención con matrices de clave y valor adicionales y aprendibles para el codificador de texto.

clase diffusers.models.attention_processor.AttnAddedKVProcessor2_0

< >

( )

Procesador para realizar atención de producto escalar (habilitado de forma predeterminada si está usando PyTorch 2.0), con matrices adicionales de clave y valor aprendibles para el codificador de texto.

clase diffusers.models.attention_processor.AttnProcessorNPU

< >

( )

Procesador para implementar flash attention usando torch_npu. Torch_npu solo admite los tipos de datos fp16 y bf16. Si se utiliza fp32, se empleará F.scaled_dot_product_attention para el cálculo, pero el efecto de aceleración en la NPU no es significativo.

clase diffusers.models.attention_processor.FusedAttnProcessor2_0

< >

( )

Procesador para implementar la atención de producto escalar (activado de forma predeterminada si está usando PyTorch 2.0). Utiliza capas de proyección fusionadas. Para los módulos de autoatención, todas las matrices de proyección (es decir, query, key, value) se fusionan. Para los módulos de atención cruzada, las matrices de proyección de key y value se fusionan.

> Esta API es actualmente 🧪 experimental y puede cambiar en el futuro.

Allegro

clase diffusers.models.attention_processor.AllegroAttnProcessor2_0

< >

( )

Procesador para implementar la atención de producto escalar (habilitado de forma predeterminada si está utilizando PyTorch 2.0). Se utiliza en el modelo Allegro. Aplica una capa de normalización y un embebido rotatorio en los vectores de consulta y clave.

AuraFlow

clase diffusers.models.attention_processor.AuraFlowAttnProcessor2_0

< >

( )

Procesador de atención utilizado típicamente en el procesamiento de Aura Flow.

clase diffusers.models.attention_processor.FusedAuraFlowAttnProcessor2_0

< >

( )

Procesador de atención utilizado típicamente en el procesamiento de Aura Flow con proyecciones fusionadas.

CogVideoX

clase diffusers.models.attention_processor.CogVideoXAttnProcessor2_0

< >

( )

Procesador para implementar la atención de producto escalar para el modelo CogVideoX. Aplica un embebido rotacional a los vectores de consulta y clave, pero no incluye normalización espacial.

clase diffusers.models.attention_processor.FusedCogVideoXAttnProcessor2_0

< >

( )

Procesador para implementar la atención de producto escalar para el modelo CogVideoX. Aplica un embebido rotacional a los vectores de consulta y clave, pero no incluye normalización espacial.

DreamLite

clase diffusers.models.unets.unet_dreamlite.DreamLiteAttnProcessor2_0

< >

( )

Procesador para implementar la atención de producto escalar con soporte para Grouped Query Attention (GQA / MQA).

Idéntico a AttnProcessor2_0 excepto que la rama de reshape de key/value maneja correctamente attn.kv_heads != attn.heads al hacer reshape de K/V a kv_heads y luego aplicar repeat_interleave hasta attn.heads. Esto es requerido por el UNet de DreamLite, que combina GQA con qk_norm — una combinación que el AttnProcessor2_0 predeterminado no maneja. SDPA se delega a dispatch_attention_fn para que se pueda usar cualquiera de los backends de atención de diffusers (SDPA nativo de PyTorch, FlashAttention, etc.).

Custom Diffusion

clase 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, por defecto True) — Si se deben entrenar de nuevo las matrices de clave y valor correspondientes a las características del texto.
  • train_q_out (bool, por defecto True) — Si se deben entrenar nuevas matrices de consulta correspondientes a las características latentes de la imagen.
  • hidden_size (int, opcional, valor predeterminado None) — El tamaño oculto de la capa de atención.
  • cross_attention_dim (int, opcional, valor predeterminado None) — El número de canales en encoder_hidden_states.
  • out_bias (bool, por defecto True) — Si se incluye el parámetro de sesgo en train_q_out.
  • dropout (float, opcional, valor predeterminado 0.0) — La probabilidad de dropout a utilizar.

Procesador para implementar la atención en el método Custom Diffusion.

clase 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, por defecto True) — Si se deben entrenar de nuevo las matrices de clave y valor correspondientes a las características del texto.
  • train_q_out (bool, por defecto True) — Si se deben entrenar nuevas matrices de consulta correspondientes a las características latentes de la imagen.
  • hidden_size (int, opcional, valor predeterminado None) — El tamaño oculto de la capa de atención.
  • cross_attention_dim (int, opcional, valor predeterminado None) — El número de canales en encoder_hidden_states.
  • out_bias (bool, por defecto True) — Si se incluye el parámetro de sesgo en train_q_out.
  • dropout (float, opcional, valor predeterminado 0.0) — La probabilidad de dropout a utilizar.

Procesador para implementar la atención en el método Custom Diffusion utilizando la atención de producto escalar eficiente en memoria de PyTorch 2.0.

clase 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, por defecto True) — Si se deben entrenar de nuevo las matrices de clave y valor correspondientes a las características del texto.
  • train_q_out (bool, por defecto True) — Si se deben entrenar nuevas matrices de consulta correspondientes a las características latentes de la imagen.
  • hidden_size (int, opcional, valor predeterminado None) — El tamaño oculto de la capa de atención.
  • cross_attention_dim (int, opcional, valor predeterminado None) — El número de canales en encoder_hidden_states.
  • out_bias (bool, por defecto True) — Si se incluye el parámetro de sesgo en train_q_out.
  • dropout (float, opcional, valor predeterminado 0.0) — La probabilidad de dropout a utilizar.
  • attention_op (Callable, opcional, valor predeterminado None) — El operador base que se utilizará como operador de atención. Se recomienda establecerlo en None y permitir que xFormers elija el mejor operador.

Procesador para implementar atención eficiente en memoria usando xFormers para el método Custom Diffusion.

Flux

clase diffusers.models.attention_processor.FluxAttnProcessor2_0

< >

( *args**kwargs )

clase diffusers.models.attention_processor.FusedFluxAttnProcessor2_0

< >

( *args**kwargs )

clase diffusers.models.attention_processor.FluxSingleAttnProcessor2_0

< >

( *args**kwargs )

Procesador para implementar la atención de producto escalar (habilitado de forma predeterminada si está utilizando PyTorch 2.0).

Hunyuan

clase diffusers.models.attention_processor.HunyuanAttnProcessor2_0

< >

( )

Procesador para implementar la atención de producto escalar (habilitado de forma predeterminada si está utilizando PyTorch 2.0). Se utiliza en el modelo HunyuanDiT. Aplica una capa de normalización s y un embebido rotatorio en los vectores de consulta y clave.

clase diffusers.models.attention_processor.FusedHunyuanAttnProcessor2_0

< >

( )

Procesador para implementar la atención de producto punto escalado (habilitado de forma predeterminada si está usando PyTorch 2.0) con capas de proyección fusionadas. Esto se utiliza en el modelo HunyuanDiT. Aplica una capa de normalización s y un embebido rotatorio en los vectores de consulta y clave.

clase diffusers.models.attention_processor.PAGHunyuanAttnProcessor2_0

< >

( )

Procesador para implementar la atención de producto escalar (habilitado de forma predeterminada si está usando PyTorch 2.0). Se utiliza en el modelo HunyuanDiT. Aplica una capa de normalización y un embebido rotatorio en los vectores de consulta y clave. Esta variante del procesador emplea Pertubed Attention Guidance.

clase diffusers.models.attention_processor.PAGCFGHunyuanAttnProcessor2_0

< >

( )

Procesador para implementar la atención de producto escalar (habilitado de forma predeterminada si está usando PyTorch 2.0). Se utiliza en el modelo HunyuanDiT. Aplica una capa de normalización y un embebido rotatorio en los vectores de consulta y clave. Esta variante del procesador emplea Pertubed Attention Guidance.

IdentitySelfAttnProcessor2_0

clase diffusers.models.attention_processor.PAGIdentitySelfAttnProcessor2_0

< >

( )

Procesador para implementar PAG mediante atención de producto escalar (habilitado de forma predeterminada si está utilizando PyTorch 2.0). Referencia de PAG: https://huggingface.co/papers/2403.17377

clase diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0

< >

( )

Procesador para implementar PAG mediante atención de producto escalar (habilitado de forma predeterminada si está utilizando PyTorch 2.0). Referencia de PAG: https://huggingface.co/papers/2403.17377

IP-Adapter

clase diffusers.models.attention_processor.IPAdapterAttnProcessor

< >

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

Parámetros

  • hidden_size (int) — El tamaño oculto de la capa de atención.
  • cross_attention_dim (int) — El número de canales en encoder_hidden_states.
  • num_tokens (int, tuple[int] o list[int], por defecto (4,)) — La longitud de contexto de las características de la imagen.
  • scale (float o listafloat, valor predeterminado 1.0) — la escala de peso del prompt de imagen.

Procesador de atención para múltiples IP-Adapters.

clase diffusers.models.attention_processor.IPAdapterAttnProcessor2_0

< >

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

Parámetros

  • hidden_size (int) — El tamaño oculto de la capa de atención.
  • cross_attention_dim (int) — El número de canales en encoder_hidden_states.
  • num_tokens (int, tuple[int] o list[int], por defecto (4,)) — La longitud de contexto de las características de la imagen.
  • scale (float o list[float], por defecto 1.0) — la escala de peso del prompt de imagen.

Procesador de atención para IP-Adapter para PyTorch 2.0.

clase 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) — El número de canales ocultos.
  • ip_hidden_states_dim (int) — La dimensión de las características de la imagen.
  • head_dim (int) — El número de canales por cabeza.
  • timesteps_emb_dim (int, por defecto 1280) — El número de canales de entrada para la incrustación de paso de tiempo.
  • scale (float, por defecto 0.5) — Escala de IP-Adapter.

Procesador de atención para IP-Adapter, utilizado típicamente en el procesamiento de las proyecciones de autoatención similares a SD3, con información adicional basada en imágenes y embeddings de timestep.

JointAttnProcessor2_0

clase diffusers.models.attention_processor.JointAttnProcessor2_0

< >

( )

Procesador de atención utilizado típicamente en el procesamiento de las proyecciones de autoatención similares a SD3.

clase diffusers.models.attention_processor.PAGJointAttnProcessor2_0

< >

( )

Procesador de atención utilizado típicamente en el procesamiento de las proyecciones de autoatención similares a SD3.

clase diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0

< >

( )

Procesador de atención utilizado típicamente en el procesamiento de las proyecciones de autoatención similares a SD3.

clase diffusers.models.attention_processor.FusedJointAttnProcessor2_0

< >

( )

Procesador de atención utilizado típicamente en el procesamiento de las proyecciones de autoatención similares a SD3.

LoRA

clase diffusers.models.attention_processor.LoRAAttnProcessor

< >

( )

Procesador para implementar atención con LoRA.

clase diffusers.models.attention_processor.LoRAAttnProcessor2_0

< >

( )

Procesador para implementar la atención con LoRA (habilitado de forma predeterminada si estás usando PyTorch 2.0).

clase diffusers.models.attention_processor.LoRAAttnAddedKVProcessor

< >

( )

Procesador para implementar atención con LoRA con matrices adicionales de clave y valor aprendibles para el codificador de texto.

clase diffusers.models.attention_processor.LoRAXFormersAttnProcessor

< >

( )

Procesador para implementar atención con LoRA usando xFormers.

Lumina-T2X

clase diffusers.models.attention_processor.LuminaAttnProcessor2_0

< >

( )

Procesador para implementar la atención de producto escalar (habilitado de forma predeterminada si está utilizando PyTorch 2.0). Se utiliza en el modelo LuminaNextDiT. Aplica una capa de normalización s y un embebido rotatorio en los vectores de consulta y clave.

Mochi

clase diffusers.models.attention_processor.MochiAttnProcessor2_0

< >

( )

Procesador de atención utilizado en Mochi.

clase diffusers.models.attention_processor.MochiVaeAttnProcessor2_0

< >

( )

Procesador de atención utilizado en Mochi VAE.

Sana

clase diffusers.models.attention_processor.SanaLinearAttnProcessor2_0

< >

( )

Procesador para implementar atención lineal de producto escalar.

clase diffusers.models.attention_processor.SanaMultiscaleAttnProcessor2_0

< >

( )

Procesador para implementar atención cuadrática multiescala.

clase diffusers.models.attention_processor.PAGCFGSanaLinearAttnProcessor2_0

< >

( )

Procesador para implementar atención lineal de producto escalar.

clase diffusers.models.attention_processor.PAGIdentitySanaLinearAttnProcessor2_0

< >

( )

Procesador para implementar atención lineal de producto escalar.

Stable Audio

clase diffusers.models.attention_processor.StableAudioAttnProcessor2_0

< >

( )

Procesador para implementar la atención de producto escalar (habilitado de forma predeterminada si está utilizando PyTorch 2.0). Se utiliza en el modelo Stable Audio. Aplica la incrustación rotacional en los vectores de consulta y clave, y permite MHA, GQA o MQA.

SlicedAttnProcessor

clase diffusers.models.attention_processor.SlicedAttnProcessor

< >

( slice_size: int )

Parámetros

  • slice_size (int, opcional) — El número de pasos para calcular la atención. Utiliza tantas rebanadas como attention_head_dim // slice_size, y attention_head_dim debe ser un múltiplo de slice_size.

Procesador para implementar atención segmentada.

clase diffusers.models.attention_processor.SlicedAttnAddedKVProcessor

< >

( slice_size )

Parámetros

  • slice_size (int, opcional) — El número de pasos para calcular la atención. Utiliza tantas rebanadas como attention_head_dim // slice_size, y attention_head_dim debe ser un múltiplo de slice_size.

Procesador para implementar atención segmentada con matrices de clave y valor adicionales y aprendibles para el codificador de texto.

XFormersAttnProcessor

clase diffusers.models.attention_processor.XFormersAttnProcessor

< >

( attention_op: Callable | None = None )

Parámetros

  • attention_op (Callable, opcional, valor predeterminado None) — El operador base que se utilizará como operador de atención. Se recomienda establecerlo en None y permitir que xFormers elija el mejor operador.

Procesador para implementar atención eficiente en memoria usando xFormers.

clase diffusers.models.attention_processor.XFormersAttnAddedKVProcessor

< >

( attention_op: Callable | None = None )

Parámetros

  • attention_op (Callable, opcional, valor predeterminado None) — El operador base que se utilizará como operador de atención. Se recomienda establecerlo en None y permitir que xFormers elija el mejor operador.

Procesador para implementar atención eficiente en memoria usando xFormers.

XLAFlashAttnProcessor2_0

clase diffusers.models.attention_processor.XLAFlashAttnProcessor2_0

< >

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

Procesador para implementar la atención de producto escalar con el kernel de pallas flash attention si se usa torch_xla.

XFormersJointAttnProcessor

clase diffusers.models.attention_processor.XFormersJointAttnProcessor

< >

( attention_op: Callable | None = None )

Parámetros

  • attention_op (Callable, opcional, valor predeterminado None) — El operador base que se utilizará como operador de atención. Se recomienda establecerlo en None y permitir que xFormers elija el mejor operador.

Procesador para implementar atención eficiente en memoria usando xFormers.

IPAdapterXFormersAttnProcessor

clase diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor

< >

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

Parámetros

  • hidden_size (int) — El tamaño oculto de la capa de atención.
  • cross_attention_dim (int) — El número de canales en encoder_hidden_states.
  • num_tokens (int, tuple[int] o list[int], por defecto (4,)) — La longitud de contexto de las características de la imagen.
  • scale (float o list[float], por defecto 1.0) — la escala de peso del prompt de imagen.
  • attention_op (Callable, opcional, valor predeterminado None) — El operador base que se utilizará como operador de atención. Se recomienda establecerlo en None y permitir que xFormers elija el mejor operador.

Procesador de atención para IP-Adapter que utiliza xFormers.

FluxIPAdapterJointAttnProcessor2_0

clase diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0

< >

( *args**kwargs )

XLAFluxFlashAttnProcessor2_0

clase diffusers.models.attention_processor.XLAFluxFlashAttnProcessor2_0

< >

( *args**kwargs )

Procesador para implementar la atención de producto escalar con el kernel de pallas flash attention si se usa torch_xla.

Update on GitHub