Diffusers documentation

StableAudio3DiTModel

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

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 pengkondisian global (embedding durasi dari StableAudio3DurationEmbedder).

StableAudio3DiTModel

kelas diffusers.StableAudio3DiTModel

< >

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

Parameter

  • io_channels (int, defaultnya 256) — Jumlah kanal laten.
  • patch_size (int, default 1) — Ukuran patch temporal yang diterapkan sebelum transformer.
  • embed_dim (int, default 1536) — Dimensi tersembunyi Transformer.
  • depth (int, defaultnya 24) — Jumlah lapisan StableAudio3DiTBlock.
  • num_heads (int, defaultnya 24) — Jumlah kepala perhatian.
  • cond_token_dim (int, default 768) — Dimensi token konteks cross-attention.
  • global_cond_dim (int, defaultnya 768) — Dimensi dari embedding durasi global.
  • local_add_cond_dim (int, default 257) — Jumlah channel dari tensor local-additive (inpaint).
  • timestep_features_dim (int, default 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 differential self/cross attention.

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, dan 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

< >

( hidden_states: Tensortimestep: Tensorencoder_hidden_states: Tensorglobal_hidden_states: Tensorencoder_attention_mask: typing.Optional[torch.Tensor] = Nonelocal_add_cond: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True ) → StableAudio3DiTModelOutput or tuple

Parameter

  • hidden_states (torch.Tensor) — Laten audio 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

kelas diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock

< >

( dim: intcontext_dim: intdim_heads: int = 64use_differential: bool = Trueff_mult: float = 4.0local_add_cond_dim: int = 257 )

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

kelas diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput

< >

( sample: Tensor )

Parameter

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

Output dari StableAudio3DiTModel.

Update on GitHub