Buckets:

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

StableAudio3DiTModel

Diffusion Transformer (DiT) prediksi kecepatan rectified-flow untuk generasi audio, digunakan dalam Stable Audio 3.

Setiap StableAudio3DiTBlock melakukan:

  1. Self-attention — perhatian multi-kepala diferensial dengan penanam posisi rotasi (RoPE).
  2. Cross-attention — memperhatikan urutan token dari pengkode teks T5Gemma.
  3. Feed-forward — Proyeksi SwiGLU.

Model dikondisikan pada timestep (fitur Fourier eksponensial → proyeksi linear) dan vektor kondisioning global (embedding durasi dari 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)

Sumber

Parameter:

io_channels (int, defaultnya 256) : Jumlah kanal laten.

patch_size (int, defaultnya 1) : Ukuran patch temporal yang diterapkan sebelum transformer.

embed_dim (int, defaultnya 1536) : Dimensi tersembunyi Transformer.

depth (int, defaultnya 24) : Jumlah lapisan StableAudio3DiTBlock.

num_heads (int, defaultnya 24) : Jumlah kepala perhatian.

cond_token_dim (int, defaultnya 768) : Dimensi dari token konteks cross-attention.

global_cond_dim (int, defaultnya 768) : Dimensi dari embedding durasi global.

local_add_cond_dim (int, defaultnya 257) : Saluran dari tensor lokal-aditif (inpaint).

timestep_features_dim (int, defaultnya 256) : Dimensi output dari fitur timestep Fourier.

ff_mult (float, default 4.0) : Faktor ekspansi feed-forward SwiGLU.

num_memory_tokens (int, defaultnya 64) : Jumlah token memori yang dapat dipelajari.

use_differential_attention (bool, defaultnya True) : Aktifkan perhatian diri/silang diferensial.

Backbone Diffusion Transformer (DiT) dari Stable Audio 3.

Model menerima batch dari latens audio berisik, timestep skalar, konteks cross-attention (token teks dan durasi yang diproyeksikan), serta embedding durasi global, lalu memprediksi medan kecepatan (objektif rectified-flow).

Kondisioning:

  • Konteks cross-attention (encoder_hidden_states) diproyeksikan oleh to_cond_embed.
  • Embedding durasi global (global_hidden_states) diproyeksikan oleh to_global_embed, dijumlahkan dengan embedding timestep, kemudian diperluas oleh global_cond_embedder menjadi modulasi AdaLN per blok.
  • local_add_cond (inpainting) diproyeksikan per blok oleh to_local_embed.

num_memory_tokens token yang dapat dipelajari ditambahkan di awal urutan audio di dalam transformer dan dihapus sebelum proyeksi output.

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)

Sumber

Parameter:

hidden_states (torch.Tensor) : Audio laten berisik (batch, io_channels, T).

timestep (torch.Tensor) : Timestep difusi (batch,) dalam [0, 1].

encoder_hidden_states (torch.Tensor) : Konteks cross-attention (batch, T_ctx, cond_token_dim).

global_hidden_states (torch.Tensor) : Embedding durasi global (batch, global_cond_dim).

encoder_attention_mask (torch.Tensor, opsional) : Mask Bool (batch, T_ctx), True = valid.

local_add_cond (torch.Tensor, opsional) : Kondisioning aditif lokal (inpaint) (batch, local_add_cond_dim, T).

return_dict (bool, defaultnya True) : Apakah akan mengembalikan StableAudio3DiTModelOutput.

Mengembalikan: StableAudio3DiTModelOutput atau tuple

medan kecepatan yang diprediksi, dengan bentuk yang sama seperti 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)

Sumber

Blok transformer SA3 DiT tunggal.

Urutan operasi:

  1. Self-attention yang dimodulasi AdaLN (RoPE parsial, RMS QK-norm)
  2. Cross-attention ke konteks teks/durasi (pre-norm RMS polos)
  3. Feed-forward SwiGLU yang dimodulasi oleh AdaLN

Modulasi AdaLN adalah to_scale_shift_gate + global_modulation, yang dipecah menjadi enam bagian (scale_attn, shift_attn, gate_attn, scale_ff, shift_ff, gate_ff). Setiap cabang yang diberi gerbang (gated) diskalakan dengan sigmoid(1 - gate). Cross-attention tidak dimodulasi dengan AdaLN, sesuai dengan referensi (cross_attend_norm adalah RMS norm biasa).

Ketika local_seq diberikan (inpainting), ia diproyeksikan per blok oleh to_local_embed dan ditambahkan ke posisi audio dari residual stream setelah cross-attention (dan sebelum feed-forward), sesuai dengan referensi.

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)

Sumber

Parameter:

sample (torch.Tensor) : Medan kecepatan yang diprediksi, dengan bentuk yang sama seperti input hidden_states.

Output dari StableAudio3DiTModel.

Xet Storage Details

Size:
6.79 kB
·
Xet hash:
fd926dcc5ab2bb6bd80b0b167b2009b6ca6420c62e81db59515b736ac7c633b8

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