# 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) : key와 value 상태에 사용할 head의 수입니다.

out_channels (`int`, 기본값 64) : 출력 채널 수.

cross_attention_dim ( `int`, *선택 사항*, 기본값 768) : 크로스 어텐션 투영의 차원.

time_proj_dim ( `int`, *선택 사항*, 기본값 256) : timestep 내부 투영의 차원.

global_states_input_dim ( `int`, *선택 사항*, 기본값 1536) : 전역 은닉 상태 투영의 입력 차원입니다.

cross_attention_input_dim ( `int`, *선택 사항*, 기본값 768) : 크로스 어텐션 투영의 입력 차원

Stable Audio에서 소개한 Diffusion Transformer 모델입니다.

Reference: 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`, shape `(batch size, in_channels, sequence_len)`) : 입력 `hidden_states`.

timestep ( `torch.LongTensor`) : 노이즈 제거 단계를 나타내는 데 사용됩니다.

encoder_hidden_states (`torch.FloatTensor`, shape `(batch size, encoder_sequence_len, cross_attention_input_dim)`) : 사용할 조건 임베딩(프롬프트와 같은 입력 조건에서 계산된 임베딩).

global_hidden_states (`torch.FloatTensor`, shape `(batch size, global_sequence_len, global_states_input_dim)`) : hidden states 앞에 추가될 global embeddings입니다.

rotary_embedding (`torch.Tensor`) : attention 계산 시 query 및 key 텐서에 적용할 rotary embeddings입니다.

return_dict (`bool`, *선택 사항*, 기본값 `True`) : 일반 튜플 대신 `~models.transformer_2d.Transformer2DModelOutput`을 반환할지 여부.

attention_mask (`torch.Tensor`, shape `(batch_size, sequence_len)`, *선택 사항*) : 패딩 토큰 인덱스에 대한 어텐션을 수행하지 않도록 방지하는 마스크로, 두 텍스트 인코더의 어텐션 마스크를 연결하여 구성됩니다. `[0, 1]`에서 선택된 마스크 값: - **마스크되지 않은** 토큰은 1, - **마스크된** 토큰은 0.

encoder_attention_mask (`torch.Tensor`, shape `(batch_size, sequence_len)`, *선택 사항*) : 두 텍스트 인코더의 어텐션 마스크를 연결하여 형성된 크로스 어텐션 인덱스에서 패딩 토큰에 대한 어텐션 수행을 방지하기 위한 마스크. `[0, 1]`에서 선택된 마스크 값: - **마스크되지 않은** 토큰은 1, - **마스크된** 토큰은 0.

**반환값:**

`return_dict`가 True이면 `~models.transformer_2d.Transformer2DModelOutput`이 반환되고, 그렇지 않으면 첫 번째 요소가 샘플 텐서인 `tuple`이 반환됩니다.

[StableAudioDiTModel](/docs/diffusers/main/ko/api/models/stable_audio_transformer#diffusers.StableAudioDiTModel)의 forward 메서드입니다.

#### 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)

커스텀 어텐션 프로세서를 비활성화하고 기본 어텐션 구현을 설정합니다.

