Diffusers documentation
StableAudio3DiTModel
StableAudio3DiTModel
Một Diffusion Transformer (DiT) dự đoán vận tốc rectified-flow cho việc tạo âm thanh, được sử dụng trong Stable Audio 3.
Mỗi StableAudio3DiTBlock thực hiện:
- Self-attention — chú ý đa đầu vi phân với nhúng vị trí quay (RoPE).
- Chú ý chéo — chú ý đến chuỗi token từ bộ mã hóa văn bản T5Gemma.
- Feed-forward — chiếu SwiGLU.
Mô hình được điều kiện hóa dựa trên timestep (đặc trưng Fourier mũ → chiếu tuyến tính) và một vector điều kiện toàn cục (nhúng thời lượng từ StableAudio3DurationEmbedder).
StableAudio3DiTModel
lớp diffusers.StableAudio3DiTModel
< source >( 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 )
Tham số
- io_channels (
int, mặc định là 256) — Số lượng kênh tiềm ẩn. - patch_size (
int, mặc định là 1) — Kích thước patch thời gian được áp dụng trước transformer. - embed_dim (
int, mặc định là 1536) — Kích thước ẩn của Transformer. - depth (
int, mặc định là 24) — Số lượng lớpStableAudio3DiTBlock. - num_heads (
int, mặc định là 24) — Số lượng đầu chú ý. - cond_token_dim (
int, mặc định là 768) — Kích thước của các token ngữ cảnh trong cross-attention. - global_cond_dim (
int, mặc định là 768) — Kích thước của embedding thời lượng toàn cục. - local_add_cond_dim (
int, mặc định là 257) — Số kênh của tensor local-additive (inpaint). - timestep_features_dim (
int, mặc định là 256) — Kích thước đầu ra của các đặc trưng bước thời gian Fourier. - ff_mult (
float, mặc định là 4.0) — Hệ số mở rộng mạng truyền thẳng SwiGLU. - num_memory_tokens (
int, mặc định là 64) — Số lượng token bộ nhớ có thể học. - use_differential_attention (
bool, mặc định làTrue) — Bật differential self/cross attention.
Khung xương Diffusion Transformer (DiT) của Stable Audio 3.
Mô hình nhận vào một lô (batch) các ẩn (latents) âm thanh nhiễu, một bước thời gian (timestep) vô hướng, ngữ cảnh chú ý chéo (cross-attention context) (gồm các token văn bản và token thời lượng đã được chiếu), cùng một nhúng (embedding) thời lượng toàn cục, và dự đoán trường vận tốc (mục tiêu rectified-flow).
Điều kiện:
- Bối cảnh cross-attention (
encoder_hidden_states) được chiếu bởito_cond_embed. - Vector nhúng thời lượng toàn cục (
global_hidden_states) được chiếu bởito_global_embed, cộng với vector nhúng bước thời gian, sau đó được mở rộng bởiglobal_cond_embedderthành điều biến AdaLN cho từng khối. local_add_cond(inpainting) được chiếu theo từng khối bởito_local_embed.
num_memory_tokens token có thể học được được thêm vào đầu chuỗi âm thanh bên trong transformer và được loại bỏ trước khi thực hiện phép chiếu đầu ra.
forward
< source >( 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
Tham số
- hidden_states (
torch.Tensor) — Âm thanh tiềm ẩn có nhiễu(batch, io_channels, T). - timestep (
torch.Tensor) — Timestep khuếch tán(batch,)trong[0, 1]. - encoder_hidden_states (
torch.Tensor) — Ngữ cảnh cross-attention(batch, T_ctx, cond_token_dim). - global_hidden_states (
torch.Tensor) — Nhúng thời lượng toàn cục(batch, global_cond_dim). - encoder_attention_mask (
torch.Tensor, tùy chọn) — Mặt nạ Bool(batch, T_ctx),True= hợp lệ. - local_add_cond (
torch.Tensor, optional) — Điều kiện local-additive (inpaint)(batch, local_add_cond_dim, T). - return_dict (
bool, mặc định làTrue) — Xác định có trả về mộtStableAudio3DiTModelOutputhay không.
Trả về
StableAudio3DiTModelOutput hoặc tuple
trường vận tốc dự đoán, có cùng hình dạng với hidden_states.
StableAudio3DiTBlock
lớp diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock
< source >( dim: intcontext_dim: intdim_heads: int = 64use_differential: bool = Trueff_mult: float = 4.0local_add_cond_dim: int = 257 )
Khối transformer DiT SA3 đơn.
Thứ tự thực hiện:
- Tự chú ý điều biến bằng AdaLN (RoPE một phần, chuẩn hóa QK RMS)
- Cross-attention đến ngữ cảnh văn bản/thời lượng (RMS pre-norm thông thường)
- Mạng tiền xử lý SwiGLU được điều biến bởi AdaLN
Điều chế AdaLN là to_scale_shift_gate + global_modulation, được chia thành sáu phần (scale_attn, shift_attn, gate_attn, scale_ff, shift_ff, gate_ff). Mỗi nhánh có cổng được nhân với sigmoid(1 - gate). Cross-attention không được điều chế bằng AdaLN, phù hợp với tham chiếu (cross_attend_norm là một RMS norm thông thường).
Khi local_seq được cung cấp (inpainting), nó được chiếu theo từng khối bởi to_local_embed và được cộng vào các vị trí âm thanh của luồng dư sau cross-attention (và trước feed-forward), khớp với tham chiếu.
StableAudio3DiTModelOutput
lớp diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput
< source >( sample: Tensor )
Đầu ra của StableAudio3DiTModel.