# 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](https://stability.ai/news-updates/meet-stable-audio-3-the-model-family-built-for-artistic-experimentation-with-open-weight-models).

Mỗi `StableAudio3DiTBlock` thực hiện:

1. **Self-attention** — chú ý đa đầu vi phân với nhúng vị trí quay (RoPE).
2. **Chú ý chéo** — chú ý đến chuỗi token từ bộ mã hóa văn bản T5Gemma.
3. **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](/docs/diffusers/main/vi/api/pipelines/stable_audio_3#diffusers.StableAudio3DurationEmbedder)).

## StableAudio3DiTModel[[diffusers.StableAudio3DiTModel]]

#### diffusers.StableAudio3DiTModel[[diffusers.StableAudio3DiTModel]]

```python
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)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_stable_audio3.py#L403)

**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ớp `StableAudio3DiTBlock`.

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 chiều đầ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 feed-forward của SwiGLU.

num_memory_tokens (`int`, mặc định là 64) : Số lượng token bộ nhớ có thể học được.

use_differential_attention (`bool`, mặc định là `True`) : Bật chú ý tự/chéo khác biệt.

Khung xương Diffusion Transformer (DiT) của [Stable Audio 3](https://stability.ai/news/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ởi `to_cond_embed`.
- Vector nhúng thời lượng toàn cục (`global_hidden_states`) được chiếu bởi `to_global_embed`, cộng với vector nhúng bước thời gian, sau đó được mở rộng bởi `global_cond_embedder` thành điều biến AdaLN cho từng khối.
- `local_add_cond` (inpainting) được chiếu theo từng khối bởi `to_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[[diffusers.StableAudio3DiTModel.forward]]

```python
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)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_stable_audio3.py#L521)

**Tham số:**

hidden_states (`torch.Tensor`) : Âm thanh tiềm ẩn nhiễu `(batch, io_channels, T)`.

timestep (`torch.Tensor`) : Bước thời gian 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ảng Bool `(batch, T_ctx)`, `True` = hợp lệ.

local_add_cond (`torch.Tensor`, *tùy chọn*) : Điều kiện local-additive (inpaint) `(batch, local_add_cond_dim, T)`.

return_dict (`bool`, mặc định là `True`) : Có nên trả về một `StableAudio3DiTModelOutput` hay 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[[diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock]]

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

```python
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)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_stable_audio3.py#L316)

Khối transformer DiT SA3 đơn.

Thứ tự thực hiện:
1. Tự chú ý điều biến bằng AdaLN (RoPE một phần, chuẩn hóa QK RMS)
2. Cross-attention đến ngữ cảnh văn bản/thời lượng (RMS pre-norm thông thường)
3. 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[[diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput]]

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

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

[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_stable_audio3.py#L34)

**Tham số:**

sample (`torch.Tensor`) : Trường vận tốc dự đoán, có cùng hình dạng với đầu vào `hidden_states`.

Đầu ra của [StableAudio3DiTModel](/docs/diffusers/main/vi/api/models/stable_audio_3_transformer#diffusers.StableAudio3DiTModel).

