Buckets:

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

StableAudio3DiTModel

Un Diffusion Transformer (DiT) de prédiction de vitesse à flux rectifié pour la génération audio, utilisé dans Stable Audio 3.

Chaque StableAudio3DiTBlock effectue :

  1. Auto-attention — attention multi-têtes différentielle avec des embeddings de position rotatifs (RoPE).
  2. Attention croisée — porte son attention sur la séquence de jetons issue de l'encodeur de texte T5Gemma.
  3. Feed-forward — projection SwiGLU.

Le modèle est conditionné sur un timestep (fonctions de Fourier exponentielles → projection linéaire) et un vecteur de conditionnement global (embedding de durée issu de StableAudio3DurationEmbedder).

StableAudio3DiTModel[[diffusers.StableAudio3DiTModel]]

diffusers.StableAudio3DiTModel[[diffusers.StableAudio3DiTModel]]

diffusers.StableAudio3DiTModel(io_channels: int = 256, patch_size: int = 1, embed_dim: int = 1536, depth: int = 24, num_heads: int = 24, cond_token_dim: int = 768, global_cond_dim: int = 768, local_add_cond_dim: int = 257, timestep_features_dim: int = 256, ff_mult: float = 4.0, num_memory_tokens: int = 64, use_differential_attention: bool = True)

Source

Paramètres :

io_channels (int, par défaut 256) : Nombre de canaux latents.

patch_size (int, par défaut 1) : Taille du patch temporel appliquée avant le transformer.

embed_dim (int, par défaut 1536) : Dimension cachée du Transformer.

depth (int, par défaut 24) : Nombre de couches StableAudio3DiTBlock.

num_heads (int, par défaut 24) : Nombre de têtes d'attention.

cond_token_dim (int, par défaut 768) : Dimension des jetons de contexte de l'attention croisée.

global_cond_dim (int, par défaut 768) : Dimension de l'embedding de durée globale.

local_add_cond_dim (int, par défaut 257) : Canaux du tenseur local-additif (inpaint).

timestep_features_dim (int, par défaut 256) : Dimension de sortie des caractéristiques de pas de temps de Fourier.

ff_mult (float, par défaut 4.0) : facteur d'expansion du réseau de propagation avant SwiGLU.

num_memory_tokens (int, par défaut 64) : Nombre de jetons de mémoire apprenables.

use_differential_attention (bool, par défaut True) : Active l'attention auto/croisée différentielle.

Le backbone Diffusion Transformer (DiT) de Stable Audio 3.

Le modèle prend en entrée un lot de latents audio bruités, un pas de temps scalaire, un contexte d'attention croisée (jetons de texte et de durée projetés) et un plongement de durée global, et prédit le champ de vitesse (objectif de flux rectifié).

Conditionnement :

  • Le contexte d'attention croisée (encoder_hidden_states) est projeté par to_cond_embed.
  • L'embedding de durée globale (global_hidden_states) est projeté par to_global_embed, additionné à l'embedding de pas de temps, puis étendu par global_cond_embedder en modulation AdaLN par bloc.
  • local_add_cond (inpainting) est projeté par bloc par to_local_embed.

num_memory_tokens jetons apprenables sont ajoutés au début de la séquence audio à l'intérieur du transformateur et supprimés avant la projection de sortie.

forward[[diffusers.StableAudio3DiTModel.forward]]

forward(hidden_states: Tensor, timestep: Tensor, encoder_hidden_states: Tensor, global_hidden_states: Tensor, encoder_attention_mask: typing.Optional[torch.Tensor] = None, local_add_cond: typing.Optional[torch.Tensor] = None, return_dict: bool = True)

Source

Paramètres :

hidden_states (torch.Tensor) : Audio latent bruité (batch, io_channels, T).

timestep (torch.Tensor) : Pas de diffusion (batch,) dans [0, 1].

encoder_hidden_states (torch.Tensor) : Contexte d'attention croisée (batch, T_ctx, cond_token_dim).

global_hidden_states (torch.Tensor) : Embedding de durée globale (batch, global_cond_dim).

encoder_attention_mask (torch.Tensor, facultatif) : Masque booléen (batch, T_ctx), True = valide.

local_add_cond (torch.Tensor, facultatif) : Conditionnement additif local (inpaint) (batch, local_add_cond_dim, T).

return_dict (bool, par défaut True) : Indique s'il faut retourner un StableAudio3DiTModelOutput.

Retourne : StableAudio3DiTModelOutput ou tuple

le champ de vitesse prédit, de même forme que hidden_states.

StableAudio3DiTBlock[[diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock]]

diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock[[diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock]]

diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock(dim: int, context_dim: int, dim_heads: int = 64, use_differential: bool = True, ff_mult: float = 4.0, local_add_cond_dim: int = 257)

Source

Bloc de transformateur SA3 DiT unique.

Ordre des opérations :

  1. Auto-attention auto-régressive modulée par AdaLN (RoPE partiel, normalisation RMS QK)
  2. Attention croisée vers le contexte texte/durée (pré-norm RMS simple)
  3. Réseau de neurones à avant (feed-forward) SwiGLU modulé par AdaLN

La modulation AdaLN est to_scale_shift_gate + global_modulation, divisée en six blocs (scale_attn, shift_attn, gate_attn, scale_ff, shift_ff, gate_ff). Chaque branche à porte est mise à l'échelle par sigmoid(1 - gate). L'attention croisée n'est pas modulée par AdaLN, conformément à la référence (cross_attend_norm est une simple norme RMS).

Lorsque local_seq est fourni (inpainting), il est projeté par bloc par to_local_embed et ajouté aux positions audio du flux résiduel après l'attention croisée (et avant le réseau de neurones feed-forward), conformément à la référence.

StableAudio3DiTModelOutput[[diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput]]

diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput[[diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput]]

diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput(sample: Tensor)

Source

Paramètres :

sample (torch.Tensor) : Le champ de vitesse prédit, de la même forme que l'entrée hidden_states.

La sortie de StableAudio3DiTModel.

Xet Storage Details

Size:
7.17 kB
·
Xet hash:
22782c9058a6aab016d7295b46021c0da5281ed8e5af58ae666e3b597f32221b

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