Diffusers documentation

Modèle Transformer SD3

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

Modèle Transformer SD3

Le modèle Transformer introduit dans Stable Diffusion 3. Sa nouveauté réside dans le bloc transformer MMDiT.

SD3Transformer2DModel

classe diffusers.SD3Transformer2DModel

< >

( sample_size: int = 128patch_size: int = 2in_channels: int = 16num_layers: int = 18attention_head_dim: int = 64num_attention_heads: int = 18joint_attention_dim: int = 4096caption_projection_dim: int = 1152pooled_projection_dim: int = 2048out_channels: int = 16pos_embed_max_size: int = 96dual_attention_layers: tuple = ()qk_norm: str | None = None )

Paramètres

  • sample_size (int, par défaut 128) — La largeur/hauteur des latents. Cette valeur est fixe pendant l’entraînement, car elle est utilisée pour apprendre un certain nombre d’embeddings de position.
  • patch_size (int, par défaut 2) — Taille des patches pour découper les données d'entrée en petits patches.
  • in_channels (int, par défaut 16) — Le nombre de canaux latents dans l'entrée.
  • num_layers (int, par défaut 18) — Le nombre de blocs de transformeurs à utiliser.
  • attention_head_dim (int, par défaut 64) — Le nombre de canaux dans chaque tête.
  • num_attention_heads (int, par défaut 18) — Le nombre de têtes à utiliser pour l'attention multi-têtes.
  • joint_attention_dim (int, par défaut 4096) — La dimension d'embedding à utiliser pour l'attention conjointe texte-image.
  • caption_projection_dim (int, par défaut 1152) — La dimension d'incorporation des incorporations de légende.
  • pooled_projection_dim (int, par défaut 2048) — La dimension d'incorporation des projections de texte agrégées.
  • out_channels (int, par défaut 16) — Le nombre de canaux latents dans la sortie.
  • pos_embed_max_size (int, par défaut 96) — La hauteur/largeur latente maximale des embeddings positionnels.
  • dual_attention_layers (tuple[int, ...], par défaut ()) — Le nombre de blocs de transformateurs à double flux à utiliser.
  • qk_norm (str, facultatif, par défaut None) — La normalisation à utiliser pour les requêtes et les clés dans la couche d'attention. Si None, aucune normalisation n'est utilisée.

Le modèle Transformer introduit dans Stable Diffusion 3.

enable_forward_chunking

< >

( chunk_size: int | None = Nonedim: int = 0 )

Paramètres

  • chunk_size (int, facultatif) — La taille des blocs des couches feed-forward. Si non spécifiée, la couche feed-forward est exécutée individuellement sur chaque tenseur de dim=dim.
  • dim (int, facultatif, par défaut 0) — La dimension sur laquelle le calcul feed-forward doit être découpé. Choisissez entre dim=0 (batch) ou dim=1 (longueur de la séquence).

Définit le processeur d'attention à utiliser feed forward chunking.

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensor = Nonepooled_projections: Tensor = Nonetimestep: LongTensor = Noneblock_controlnet_hidden_states: list = Nonejoint_attention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = Trueskip_layers: list[int] | None = None )

Paramètres

  • hidden_states (torch.Tensor de forme (batch size, channel, height, width)) — hidden_states d'entrée.
  • encoder_hidden_states (torch.Tensor de forme (batch size, sequence_len, embed_dims)) — Embeddings conditionnels (embeddings calculés à partir des conditions d’entrée telles que les prompts) à utiliser.
  • pooled_projections (torch.Tensor de forme (batch_size, projection_dim)) — Embeddings projetés à partir des embeddings des conditions d'entrée.
  • timestep (torch.LongTensor) — Utilisé pour indiquer l'étape de débruitage.
  • block_controlnet_hidden_states (list de torch.Tensor) — Une liste de tenseurs qui, si elle est spécifiée, est ajoutée aux résidus des blocs du transformeur.
  • joint_attention_kwargs (dict, 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.
  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un ~models.transformer_2d.Transformer2DModelOutput plutôt qu'un simple tuple.
  • skip_layers (list de int, facultatif) — Une liste d'indices de couches à ignorer lors du passage avant.

La méthode forward du SD3Transformer2DModel.

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.

unfuse_qkv_projections

< >

( )

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

> Cette API est 🧪 expérimentale.

Update on GitHub