Buckets:

hf-doc-build/doc / diffusers /v0.43.0 /id /api /models /autoencoder_same.md
mishig's picture
|
download
raw
9.66 kB
# AutoencoderSAME
Autoencoder **SAME** (Semantically-Aligned Music Encoder) digunakan oleh [Stable Audio 3](https://stability.ai/news-updates/meet-stable-audio-3-the-model-family-built-for-artistic-experimentation-with-open-weight-models) untuk mengompres waveform audio stereo menjadi sekuens laten yang ringkas dan merekonstruksinya.
Encoder menumpuk modul `SAMETransformerResamplingBlock`, di mana masing-masing modul mengelompokkan sejumlah tetap frame patch audio dan menghasilkan satu token output yang dapat dipelajari melalui transformer diferensial. Dekoder membalik proses ini, memperluas setiap token laten kembali menjadi patch frame audio.
Bottleneck soft-norm (`SoftNormBottleneck`) menormalisasi latens sebelum dan sesudah model difusi, menyediakan dinamika pelatihan yang stabil.
## AutoencoderSAME[[diffusers.AutoencoderSAME]]
#### diffusers.AutoencoderSAME[[diffusers.AutoencoderSAME]]
```python
diffusers.AutoencoderSAME(audio_channels: int = 2, patch_size: int = 256, encoder_channels: int = 128, encoder_c_mults: typing.List[int] = (6,), encoder_strides: typing.List[int] = (16,), encoder_transformer_depths: typing.List[int] = (6,), latent_dim: int = 256, use_differential_attention: bool = True, dim_heads: int = 64, ff_mult: int = 3, sliding_window: int = 1, encoder_sinusoidal_blocks: typing.List[int] = (0,), decoder_sinusoidal_blocks: typing.List[int] = (0,), sampling_rate: int = 44100)
```
[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L608)
**Parameter:**
audio_channels : Jumlah kanal audio (2 untuk stereo).
patch_size : Ukuran patch non-tumpang tindih yang diterapkan sebelum encoder TRB (dan dibalik setelah decoder TRB). Berkontribusi `patch_size ×` terhadap rasio downsampling total. Nilai produksi: 256.
encoder_channels : Jumlah channel dasar untuk TRB. 128 untuk SAME-S, 256 untuk SAME-L.
encoder_c_mults : Pengali channel untuk setiap level TRB (satu entri per TRB). Baik SAME-S maupun SAME-L menggunakan `(6,)` — satu TRB yang dimensi tersembunyinya adalah `encoder_channels × 6`.
encoder_strides : Stride down-/up-sampling untuk setiap level TRB. Baik SAME-S maupun SAME-L menggunakan `(16,)` — satu TRB dengan stride 16.
encoder_transformer_depths : Lapisan Transformer per level TRB. 6 untuk SAME-S, 12 untuk SAME-L.
latent_dim : Dimensi ruang laten. 256 untuk kedua varian.
use_differential_attention : Jika `True`, gunakan differential attention di dalam setiap blok transformer TRB (default aktif untuk SAME-S/L).
dim_heads : Dimensi head perhatian. 64 untuk SAME-S/L produksi.
ff_mult : Faktor ekspansi feed-forward SwiGLU.
sliding_window : Setengah lebar jendela geser (dalam latens) untuk perhatian band-mask. Penggunaan SAME-S/L produksi menggunakan 1.
encoder_sinusoidal_blocks : Jumlah per-TRB lapisan transformer berurutan yang menggunakan gating FFN `sin` di encoder (SAME-L: `(0,)`).
decoder_sinusoidal_blocks : Jumlah per-TRB lapisan transformer berurutan yang menggunakan gating FFN `sin` di decoder (SAME-L: `(8,)`).
sampling_rate : Laju sampel audio dalam Hz (mis. 44100).
Autoencoder Semantically-Aligned Music Encoder (SAME) dari *Stable Audio 3* ([arXiv 2605.17991](https://arxiv.org/abs/2605.17991)).
Model ini terdiri dari:
- **Embedding patch** — membentuk ulang audio stereo menjadi patch yang tidak tumpang tindih, menukar waktu dengan saluran (`patch_size ×` downsample, tanpa parameter yang dipelajari).
- **Stack encoder TRB** — blok `SAMETransformerResamplingBlock` yang melakukan downsampling lebih lanjut dengan faktor `∏(encoder_strides)`.
- **Bottleneck soft-norm** — normalisasi afine yang dapat dipelajari dengan standar deviasi berjalan.
- **Stack TRB decoder** — mencerminkan encoder secara terbalik.
- **Unpatch** — membentuk ulang channel ke dimensi waktu.
Rasio downsampling total: `patch_size × ∏(encoder_strides)`.
Hyperparameter bawaan cocok dengan checkpoint **SAME-S** (`stabilityai/SAME-S`). Untuk memuat **SAME-L** (`stabilityai/SAME-L`, yang digunakan oleh SA3 Medium), berikan `encoder_channels=256, encoder_transformer_depths=(12,)`.
```python
# SAME-S (108 M params, used by SA3 small models) model = AutoencoderSAME() # default values
# SAME-L (852 M params, used by SA3 Medium) model = AutoencoderSAME(encoder_channels=256,
encoder_transformer_depths=(12,))
```
#### encode[[diffusers.AutoencoderSAME.encode]]
```python
encode(sample: Tensor, return_dict: bool = True)
```
[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L733)
**Parameter:**
sample : tensor waveform `(B, audio_channels, T)`.
return_dict : Jika `True` kembalikan `AutoencoderSAMEOutput`.
**Mengembalikan:**
Tensor laten dengan bentuk `(B, latent_dim, T // downsampling_ratio)` (dibungkus dalam `AutoencoderSAMEOutput` ketika *return_dict* adalah `True`).
Enkode audio stereo ke latents.
#### decode[[diffusers.AutoencoderSAME.decode]]
```python
decode(latents: Tensor, return_dict: bool = True)
```
[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L758)
**Parameter:**
latents : tensor laten `(B, latent_dim, T_latent)`.
return_dict : Jika `True` kembalikan `AutoencoderSAMEDecoderOutput`.
**Mengembalikan:**
Tensor waveform dengan bentuk `(B, audio_channels, T_latent × downsampling_ratio)` (dibungkus dalam `AutoencoderSAMEDecoderOutput` ketika *return_dict* adalah `True`).
Decode latents kembali ke audio stereo.
#### forward[[diffusers.AutoencoderSAME.forward]]
```python
forward(sample: Tensor, return_dict: bool = True)
```
[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L783)
**Parameter:**
sample : tensor waveform `(B, audio_channels, T)`.
return_dict : Jika `True` kembalikan `AutoencoderSAMEDecoderOutput`.
**Mengembalikan:**
Gelombang yang direkonstruksi (bentuknya sama dengan *sample*, mungkin lebih panjang karena padding), dibungkus dalam `AutoencoderSAMEDecoderOutput` ketika *return_dict* bernilai `True`.
Enkode dan segera dekode *sample* (rekonstruksi).
## SAMETransformerResamplingBlock[[diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock]]
#### diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock[[diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock]]
```python
diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock(in_channels: int, out_channels: int, stride: int, mode: str = 'encoder', transformer_depth: int = 3, dim_heads: int = 128, use_differential: bool = True, ff_mult: int = 3, sliding_window: int = 1, sinusoidal_blocks: int = 0)
```
[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L294)
**Parameter:**
in_channels : Jumlah saluran input.
out_channels : Jumlah kanal output.
stride : Faktor down-/up-sampling.
mode : `"encoder"` atau `"decoder"`.
transformer_depth : Jumlah lapisan `TransformerBlock`.
dim_heads : Dimensi kepala perhatian.
use_differential : Apakah akan menggunakan differential attention.
ff_mult : Faktor ekspansi feed-forward.
sliding_window : Setengah lebar jendela geser dalam latens (setengah lebar pita adalah `sliding_window * (stride + 1)`).
sinusoidal_blocks : Jumlah lapisan transformer akhir yang menggunakan gating FFN `sin` alih-alih SiLU.
Blok bangunan inti dari SAME.
**Mode encoder** (stride S): Mengelompokkan S frame input berurutan menjadi satu segmen, menambahkan satu embedding output yang dapat dipelajari, lalu menjalankan D lapisan transformer di atas urutan segmen yang telah diratakan penuh dan hanya mempertahankan embedding output → downsample sebesar S.
**Mode decoder** (stride S): Mengelompokkan 1 frame input dengan S embedding output yang dapat dipelajari, menjalankan D lapisan transformer di atas urutan datar penuh, lalu mempertahankan S embedding output → upsample sebesar S.
Attention menggunakan mask pita *sliding-window* yang tumpang tindih di atas urutan segmen yang diratakan: setiap token memperhatikan `sliding_window * (stride + 1)` tetangga di setiap sisi. RoPE dihitung di atas panjang urutan penuh. Ini persis sesuai dengan implementasi referensi (satu chunk non-tumpang tindih hanya akan cocok untuk satu segmen).
## AutoencoderSAMEOutput[[diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput]]
#### diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput[[diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput]]
```python
diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput(latents: Tensor)
```
[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L52)
Output dari [AutoencoderSAME.encode()](/docs/diffusers/v0.43.0/id/api/models/autoencoder_same#diffusers.AutoencoderSAME.encode).
## AutoencoderSAMEDecoderOutput[[diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput]]
#### diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput[[diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput]]
```python
diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput(sample: Tensor)
```
[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L59)
Output dari [AutoencoderSAME.decode()](/docs/diffusers/v0.43.0/id/api/models/autoencoder_same#diffusers.AutoencoderSAME.decode).

Xet Storage Details

Size:
9.66 kB
·
Xet hash:
95fee8ab73b58e9a393e6bf4a710ccb966757ab1df0abd64d6bcb71b85922b5e

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.