Diffusers documentation

PixArtTransformer2DModel

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

PixArtTransformer2DModel

Un modelo Transformer para datos similares a imágenes de PixArt-Alpha y PixArt-Sigma.

PixArtTransformer2DModel

clase diffusers.PixArtTransformer2DModel

< >

( num_attention_heads: int = 16attention_head_dim: int = 72in_channels: int = 4out_channels: int | None = 8num_layers: int = 28dropout: float = 0.0norm_num_groups: int = 32cross_attention_dim: int | None = 1152attention_bias: bool = Truesample_size: int = 128patch_size: int = 2activation_fn: str = 'gelu-approximate'num_embeds_ada_norm: int | None = 1000upcast_attention: bool = Falsenorm_type: str = 'ada_norm_single'norm_elementwise_affine: bool = Falsenorm_eps: float = 1e-06interpolation_scale: int | None = Noneuse_additional_conditions: bool | None = Nonecaption_channels: int | None = Noneattention_type: str | None = 'default' )

Parámetros

  • num_attention_heads (int, opcional, valor predeterminado 16) — El número de cabezas a utilizar para la atención multi-cabeza.
  • attention_head_dim (int, opcional, valor predeterminado 72) — El número de canales en cada cabeza.
  • in_channels (int, valor predeterminado 4) — El número de canales en la entrada.
  • out_channels (int, opcional) — El número de canales en la salida. Especifique este parámetro si el número de canales de salida difiere del de entrada.
  • num_layers (int, opcional, valor predeterminado 28) — El número de capas de bloques Transformer a utilizar.
  • dropout (float, opcional, valor predeterminado 0.0) — La probabilidad de dropout a utilizar dentro de los bloques Transformer.
  • norm_num_groups (int, opcional, valor predeterminado 32) — Número de grupos para la normalización de grupos dentro de los bloques Transformer.
  • cross_attention_dim (int, opcional) — La dimensionalidad de las capas de atención cruzada, que normalmente coincide con la dimensionalidad oculta del codificador.
  • attention_bias (bool, opcional, predeterminado a True) — Configura si la atención de los bloques Transformer debe incluir un parámetro de sesgo.
  • sample_size (int, por defecto 128) — El ancho de las imágenes latentes. Este parámetro se fija durante el entrenamiento.
  • patch_size (int, valor predeterminado 2) — Tamaño de los parches que procesa el modelo, relevante para arquitecturas que trabajan con datos no secuenciales.
  • activation_fn (str, opcional, predeterminado a “gelu-approximate”) — Función de activación a utilizar en las redes feed-forward dentro de los bloques Transformer.
  • num_embeds_ada_norm (int, opcional, valor predeterminado 1000) — Número de embeddings para AdaLayerNorm, fijo durante el entrenamiento y afecta los pasos máximos de desruido durante la inferencia.
  • upcast_attention (bool, opcional, predeterminado a False) — Si es true, convierte las dimensiones del mecanismo de atención a un tipo de mayor precisión para un posible mejor rendimiento.
  • norm_type (str, opcional, por defecto “ada_norm_zero”) — Especifica el tipo de normalización utilizado, puede ser ‘ada_norm_zero’.
  • norm_elementwise_affine (bool, opcional, predeterminado a False) — Si es true, habilita los parámetros afines por elemento en las capas de normalización.
  • norm_eps (float, opcional, valor predeterminado 1e-6) — Una constante pequeña que se suma al denominador en las capas de normalización para evitar la división por cero.
  • interpolation_scale (int, opcional) — Factor de escala a utilizar durante la interpolación de los embeddings de posición.
  • use_additional_conditions (bool, opcional) — Si estamos usando condiciones adicionales como entradas.
  • attention_type (str, opcional, predeterminado a “default”) — Tipo de mecanismo de atención que se utilizará.
  • caption_channels (int, opcional, predeterminado a None) — Número de canales para usar en la proyección de los embeddings de la descripción.
  • use_linear_projection (bool, opcional, predeterminado a False) — Argumento obsoleto. Se eliminará en una versión futura.
  • num_vector_embeds (bool, opcional, predeterminado a False) — Argumento obsoleto. Se eliminará en una versión futura.

Un modelo Transformer 2D tal como se introdujo en la familia de modelos PixArt (https://huggingface.co/papers/2310.00426, https://huggingface.co/papers/2403.04692).

forward

< >

( hidden_states: Tensorencoder_hidden_states: typing.Optional[torch.Tensor] = Nonetimestep: typing.Optional[torch.LongTensor] = Noneadded_cond_kwargs: dict = Nonecross_attention_kwargs: dict = Noneattention_mask: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True )

Parámetros

  • hidden_states (torch.FloatTensor de forma (batch size, channel, height, width)) — Estados ocultos de entrada hidden_states.
  • encoder_hidden_states (torch.FloatTensor de forma (batch size, sequence len, embed dims), opcional) — Incrustados condicionales para la capa de atención cruzada. Si no se proporcionan, la atención cruzada predeterminada es la autoatención.
  • timestep (torch.LongTensor, opcional) — Se utiliza para indicar el paso de desruido. Paso temporal opcional que se aplica como un embedding en AdaLayerNorm.
  • added_cond_kwargs — (dict[str, Any], opcional): Condiciones adicionales que se usarán como entradas.
  • cross_attention_kwargs ( dict[str, Any], opcional) — Un diccionario de kwargs que, si se especifica, se pasa al AttentionProcessor definido en self.processor dentro de diffusers.models.attention_processor.
  • attention_mask ( torch.Tensor, opcional) — Una máscara de atención de forma (batch, key_tokens) se aplica a encoder_hidden_states. Si 1, la máscara se conserva; en caso contrario, si 0, se descarta. La máscara se convertirá en un sesgo, que añade valores negativos grandes a las puntuaciones de atención correspondientes a los tokens “descartados”.
  • encoder_attention_mask ( torch.Tensor, opcional) — Máscara de atención cruzada aplicada a encoder_hidden_states. Se admiten dos formatos:
    • Máscara (batch, sequence_length) True = conservar, False = descartar.
    • Sesgo (batch, 1, sequence_length) 0 = conservar, -10000 = descartar.

    Si ndim == 2: se interpretará como una máscara y luego se convertirá en un sesgo coherente con el formato anterior. Este sesgo se sumará a las puntuaciones de atención cruzada.

  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un UNet2DConditionOutput en lugar de una tupla simple.

El método forward de PixArtTransformer2DModel.

fuse_qkv_projections

< >

( )

Habilita las proyecciones QKV fusionadas. Para los módulos de autoatención, todas las matrices de proyección (es decir, consulta, clave y valor) se fusionan. Para los módulos de atención cruzada, las matrices de proyección de clave y valor se fusionan.

> Esta API es 🧪 experimental.

set_default_attn_processor

< >

( )

Desactiva los procesadores de atención personalizados y establece la implementación de atención predeterminada.

Es seguro usar simplemente AttnProcessor() ya que PixArt no tiene procesadores de atención exóticos en el modelo predeterminado.

unfuse_qkv_projections

< >

( )

Desactiva la proyección QKV fusionada si está habilitada.

> Esta API es 🧪 experimental.

Update on GitHub