# StableAudioDiTModel

来自 [Stable Audio Open](https://huggingface.co/papers/2407.14358) 的用于音频波形的 Transformer 模型。

## StableAudioDiTModel[[diffusers.StableAudioDiTModel]]

#### diffusers.StableAudioDiTModel[[diffusers.StableAudioDiTModel]]

```python
diffusers.StableAudioDiTModel(sample_size: int = 1024, in_channels: int = 64, num_layers: int = 24, attention_head_dim: int = 64, num_attention_heads: int = 24, num_key_value_attention_heads: int = 12, out_channels: int = 64, cross_attention_dim: int = 768, time_proj_dim: int = 256, global_states_input_dim: int = 1536, cross_attention_input_dim: int = 768)
```

[源代码](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/stable_audio_transformer.py#L183)

**参数：**

sample_size ( `int`，*可选*，默认值为 1024)：输入样本的大小。

in_channels (`int`，*可选*，默认值为 64)：输入中的通道数。

num_layers (`int`，*可选*，默认为 24)：要使用的 Transformer 块层数。

attention_head_dim (`int`，*可选*，默认为 64)：每个头中的通道数。

num_attention_heads (`int`，*可选*，默认为 24)：用于查询状态的注意力头数量。

num_key_value_attention_heads (`int`，*可选*，默认为 12)：用于键和值状态的注意力头数量。

out_channels (`int`，默认为 64)：输出通道数。

cross_attention_dim ( `int`，*optional*，默认值为 768)：交叉注意力投影的维度。

time_proj_dim ( `int`，*可选*，默认为 256)：时间步内投影的维度。

global_states_input_dim ( `int`，*optional*，默认值为 1536)：全局隐藏状态投影的输入维度。

cross_attention_input_dim ( `int`，*optional*，默认值为 768)：交叉注意力投影的输入维度

Stable Audio 中引入的 Diffusion Transformer 模型。

参考：https://github.com/Stability-AI/stable-audio-tools

#### forward[[diffusers.StableAudioDiTModel.forward]]

```python
forward(hidden_states: FloatTensor, timestep: LongTensor = None, encoder_hidden_states: FloatTensor = None, global_hidden_states: FloatTensor = None, rotary_embedding: FloatTensor = None, return_dict: bool = True, attention_mask: typing.Optional[torch.LongTensor] = None, encoder_attention_mask: typing.Optional[torch.LongTensor] = None)
```

[源代码](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/stable_audio_transformer.py#L282)

**参数：**

hidden_states (`torch.FloatTensor`，形状为 `(batch size, in_channels, sequence_len)`)：输入 `hidden_states`。

timestep ( `torch.LongTensor`) ：用于指示去噪步骤。

encoder_hidden_states (`torch.FloatTensor`，形状为 `(batch size, encoder_sequence_len, cross_attention_input_dim)`)：要使用的条件嵌入（根据输入条件（例如提示词）计算得出的嵌入）。

global_hidden_states (`torch.FloatTensor`，形状为 `(batch size, global_sequence_len, global_states_input_dim)`)：将前置到隐藏状态的全局嵌入。

rotary_embedding (`torch.Tensor`) : 在注意力计算过程中应用于查询和键张量的旋转嵌入。

return_dict (`bool`，*可选*，默认为 `True`)：是否返回 `~models.transformer_2d.Transformer2DModelOutput` 而不是普通元组。

attention_mask (`torch.Tensor`，形状为 `(batch_size, sequence_len)`，*可选*)：用于避免对填充（padding）标记索引执行注意力机制的掩码，由两个文本编码器的注意力掩码拼接而成。掩码值取自 `[0, 1]`： - 对于**未掩码**的标记，值为 1； - 对于**已掩码**的标记，值为 0。

encoder_attention_mask (`torch.Tensor`，形状为 `(batch_size, sequence_len)`，*可选*)：用于避免对填充 token 的交叉注意力索引执行注意力的掩码，由两个文本编码器的注意力掩码拼接而成。掩码值取自 `[0, 1]`： - 对于**未掩码**的 token，值为 1； - 对于**已掩码**的 token，值为 0。

**返回值：**

如果 `return_dict` 为 True，则返回 `~models.transformer_2d.Transformer2DModelOutput`，否则返回一个 `tuple`，其中第一个元素是样本张量。

[StableAudioDiTModel](/docs/diffusers/main/zh/api/models/stable_audio_transformer#diffusers.StableAudioDiTModel) 的前向方法。

#### set_default_attn_processor[[diffusers.StableAudioDiTModel.set_default_attn_processor]]

```python
set_default_attn_processor()
```

[源代码](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/stable_audio_transformer.py#L276)

禁用自定义注意力处理器并设置默认的注意力实现。

