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 modèle Transformer pour des données de type image issu de PixArt-Alpha et PixArt-Sigma.

PixArtTransformer2DModel

classe 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' )

Paramètres

  • num_attention_heads (int, facultatif, par défaut 16) — Le nombre de têtes à utiliser pour l'attention multi-têtes.
  • attention_head_dim (int, facultatif, par défaut 72) — Le nombre de canaux dans chaque tête.
  • in_channels (int, par défaut 4) — Le nombre de canaux de l'entrée.
  • out_channels (int, optionnel) — Le nombre de canaux dans la sortie. Spécifiez ce paramètre si le nombre de canaux de sortie diffère de celui de l'entrée.
  • num_layers (int, facultatif, par défaut 28) — Le nombre de blocs Transformer à utiliser.
  • dropout (float, facultatif, valeur par défaut 0.0) — La probabilité de dropout à utiliser dans les blocs Transformer.
  • norm_num_groups (int, facultatif, valeur par défaut 32) — Nombre de groupes pour la normalisation par groupe au sein des blocs Transformer.
  • cross_attention_dim (int, optionnel) — La dimensionnalité des couches d'attention croisée, correspondant généralement à la dimension cachée de l'encodeur.
  • attention_bias (bool, facultatif, par défaut True) — Configure si l'attention des blocs Transformer doit contenir un paramètre de biais.
  • sample_size (int, par défaut 128) — La largeur des images latentes. Ce paramètre est fixe pendant l'entraînement.
  • patch_size (int, par défaut 2) — Taille des patches traités par le modèle, pertinente pour les architectures fonctionnant sur des données non séquentielles.
  • activation_fn (str, facultatif, par défaut “gelu-approximate”) — Fonction d'activation à utiliser dans les réseaux feed-forward au sein des blocs Transformer.
  • num_embeds_ada_norm (int, optionnel, par défaut 1000) — Nombre d'embeddings pour AdaLayerNorm, fixé pendant l'entraînement et qui affecte le nombre maximal d'étapes de débruitage pendant l'inférence.
  • upcast_attention (bool, facultatif, par défaut False) — Si true, augmente la précision des dimensions du mécanisme d'attention pour une performance potentiellement améliorée.
  • norm_type (str, optionnel, par défaut “ada_norm_zero”) — Spécifie le type de normalisation utilisé, peut être ‘ada_norm_zero’.
  • norm_elementwise_affine (bool, facultatif, par défaut False) — Si true, active les paramètres affines élément par élément dans les couches de normalisation.
  • norm_eps (float, facultatif, par défaut 1e-6) — Une petite constante ajoutée au dénominateur des couches de normalisation pour éviter la division par zéro.
  • interpolation_scale (int, facultatif) — Facteur d'échelle à utiliser lors de l'interpolation des embeddings de position.
  • use_additional_conditions (bool, optionnel) — Si nous utilisons des conditions supplémentaires en tant qu'entrées.
  • attention_type (str, facultatif, par défaut “default”) — Type de mécanisme d’attention à utiliser.
  • caption_channels (int, facultatif, par défaut None) — Nombre de canaux à utiliser pour projeter les embeddings de légende.
  • use_linear_projection (bool, facultatif, par défaut False) — Argument obsolète. Sera supprimé dans une version future.
  • num_vector_embeds (bool, optionnel, par défaut False) — Argument obsolète. Sera supprimé dans une version future.

Un modèle Transformer 2D tel qu’introduit dans la famille de modèles 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 )

Paramètres

  • hidden_states (torch.FloatTensor de forme (batch size, channel, height, width)) — hidden_states d'entrée.
  • encoder_hidden_states (torch.FloatTensor de forme (batch size, sequence len, embed dims), facultatif) — Embeddings conditionnels pour la couche d'attention croisée. S'ils ne sont pas fournis, l'attention croisée se comporte par défaut comme une auto-attention.
  • timestep (torch.LongTensor, facultatif) — Utilisé pour indiquer l'étape de débruitage. Timestep facultatif à appliquer en tant qu'embedding dans AdaLayerNorm.
  • added_cond_kwargs — (dict[str, Any], facultatif) : Conditions supplémentaires à utiliser en tant qu'entrées.
  • cross_attention_kwargs ( dict[str, Any], facultatif) — Un dictionnaire de kwargs qui, s'il est spécifié, est transmis à l'AttentionProcessor défini sous self.processor dans diffusers.models.attention_processor.
  • attention_mask ( torch.Tensor, facultatif) — Un masque d’attention de forme (batch, key_tokens) est appliqué à encoder_hidden_states. Si la valeur est 1, le masque est conservé ; sinon, si elle est 0, il est ignoré. Le masque est converti en biais, qui ajoute de grandes valeurs négatives aux scores d’attention correspondant aux jetons « ignorés ».
  • encoder_attention_mask ( torch.Tensor, facultatif) — Masque d'attention croisée appliqué aux encoder_hidden_states. Deux formats pris en charge :
    • Masque (batch, sequence_length) True = conserver, False = supprimer.
    • Biais (batch, 1, sequence_length) 0 = conserver, -10000 = supprimer.

    Si ndim == 2 : sera interprété comme un masque, puis converti en un biais cohérent avec le format ci-dessus. Ce biais sera ajouté aux scores d'attention croisée.

  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un UNet2DConditionOutput plutôt qu'un simple tuplet.

La méthode forward du PixArtTransformer2DModel.

fuse_qkv_projections

< >

( )

Active les projections QKV fusionnées. Pour les modules d'auto-attention, toutes les matrices de projection (c'est-à-dire requête, clé, valeur) sont fusionnées. Pour les modules d'attention croisée, les matrices de projection des clés et des valeurs sont fusionnées.

> Cette API est 🧪 expérimentale.

set_default_attn_processor

< >

( )

Désactive les processeurs d'attention personnalisés et définit l'implémentation d'attention par défaut.

Il est sans risque d’utiliser simplement AttnProcessor(), car PixArt ne comporte aucun processeur d’attention exotique dans le modèle par défaut.

unfuse_qkv_projections

< >

( )

Désactive la projection QKV fusionnée si elle est activée.

> Cette API est 🧪 expérimentale.

Update on GitHub