Buckets:

hf-doc-build/doc / diffusers /main /id /api /models /autoencoder_same.md
mishig's picture
|
download
raw
9.64 kB

AutoencoderSAME

Autoencoder SAME (Semantically-Aligned Music Encoder) digunakan oleh Stable Audio 3 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]]

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

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

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,).

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

encode(sample: Tensor, return_dict: bool = True)

Sumber

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]]

decode(latents: Tensor, return_dict: bool = True)

Sumber

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]]

forward(sample: Tensor, return_dict: bool = True)

Sumber

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]]

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

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]]

diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput(latents: Tensor)

Sumber

Output dari AutoencoderSAME.encode().

AutoencoderSAMEDecoderOutput[[diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput]]

diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput[[diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput]]

diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput(sample: Tensor)

Sumber

Output dari AutoencoderSAME.decode().

Xet Storage Details

Size:
9.64 kB
·
Xet hash:
e530a204f8d4d34f69ab7893fb543e791a3d48d50cf840f79849d4e837fc92ea

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