Buckets:

hf-doc-build/doc / diffusers /main /fr /api /models /sd3_transformer2d.md
mishig's picture
|
download
raw
6.45 kB

Modèle Transformer SD3

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

SD3Transformer2DModel[[diffusers.SD3Transformer2DModel]]

diffusers.SD3Transformer2DModel[[diffusers.SD3Transformer2DModel]]

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

Source

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 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égendes.

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 transformateur à double flux à utiliser.

qk_norm (str, facultatif, valeur par défaut None) : La normalisation à utiliser pour la requête et la clé 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[[diffusers.SD3Transformer2DModel.enable_forward_chunking]]

enable_forward_chunking(chunk_size: int | None = None, dim: int = 0)

Source

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 séquence).

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

forward[[diffusers.SD3Transformer2DModel.forward]]

forward(hidden_states: Tensor, encoder_hidden_states: Tensor = None, pooled_projections: Tensor = None, timestep: LongTensor = None, block_controlnet_hidden_states: list = None, joint_attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True, skip_layers: list[int] | None = None)

Source

Paramètres :

hidden_states (torch.Tensor de forme (batch size, channel, height, width)) : hidden_states en 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 de transformeur.

joint_attention_kwargs (dict, facultatif) : Un dictionnaire de kwargs qui, s'il est spécifié, est transmis à l'AttentionProcessor tel que 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.

Retourne :

Si return_dict est True, un ~models.transformer_2d.Transformer2DModelOutput est renvoyé, sinon un tuple dont le premier élément est le tenseur d'échantillon.

La méthode forward du SD3Transformer2DModel.

fuse_qkv_projections[[diffusers.SD3Transformer2DModel.fuse_qkv_projections]]

fuse_qkv_projections()

Source

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[[diffusers.SD3Transformer2DModel.unfuse_qkv_projections]]

unfuse_qkv_projections()

Source

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

> Cette API est 🧪 expérimentale.

Xet Storage Details

Size:
6.45 kB
·
Xet hash:
a38d77418aca06dbdb269a7cec11c3a6d8193bbd9b54a01feef8b333670ba059

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.