Diffusers documentation
AutoencoderAYNI
AutoencoderAYNI
SAME (Semantically-Aligned Music Encoder) otoenkoderi, Stable Audio 3 tarafından stereo ses dalga formlarını kompakt bir latent dizisine sıkıştırmak ve yeniden oluşturmak için kullanılır.
Encoder, SAMETransformerResamplingBlock modüllerini yığar; bu modüllerin her biri sabit sayıda ses yama çerçevesini gruplar ve diferansiyel bir dönüştürücü aracılığıyla tek bir öğrenilebilir çıktı jetonu üretir. Decoder bu süreci tersine çevirir ve her gizli jetonu yeniden ses çerçevelerinden oluşan bir yamaya genişletir.
Yumuşak norm darboğazı (SoftNormBottleneck), difüzyon modelinden önce ve sonra latentleri normalize ederek kararlı eğitim dinamikleri sağlar.
AutoencoderAYNI
sınıf diffusers.AutoencoderSAME
< source >( audio_channels: int = 2patch_size: int = 256encoder_channels: int = 128encoder_c_mults: typing.List[int] = (6,)encoder_strides: typing.List[int] = (16,)encoder_transformer_depths: typing.List[int] = (6,)latent_dim: int = 256use_differential_attention: bool = Truedim_heads: int = 64ff_mult: int = 3sliding_window: int = 1encoder_sinusoidal_blocks: typing.List[int] = (0,)decoder_sinusoidal_blocks: typing.List[int] = (0,)sampling_rate: int = 44100 )
Parametreler
- audio_channels — Ses kanal sayısı (stereo için 2).
- patch_size — TRB kodlayıcıdan önce uygulanan (ve TRB çözücüden sonra tersine çevrilen) örtüşmeyen yama boyutu. Toplam indirgeme oranına
patch_size ×katkıda bulunur. Üretim değeri: 256. - encoder_channels — TRB için temel kanal sayısı. SAME-S için 128, SAME-L için 256.
- encoder_c_mults — Her TRB seviyesi için kanal çarpanı (her TRB için bir giriş). Hem SAME-S hem de SAME-L
(6,)kullanır — gizli boyutuencoder_channels × 6olan tek bir TRB. - encoder_strides — Her TRB seviyesi için aşağı/aşağı-örnekleme adımı. Hem
SAME-S hem de SAME-L
(16,)kullanır — adım 16 olan tek bir TRB. - encoder_transformer_depths — TRB seviyesi başına Transformer katmanları. SAME-S için 6, SAME-L için 12.
- latent_dim — Gizli uzayın boyutu. Her iki varyant için de 256.
- use_differential_attention —
Trueise, her TRB transformer bloğu içinde differential attention kullanılır (SAME-S/L için varsayılan olarak açıktır). - dim_heads — Dikkat başlığı boyutu. Üretim SAME-S/L için 64.
- ff_mult — SwiGLU ileri besleme genişleme çarpanı.
- sliding_window — Bant maskesi dikkati için kayan pencere yarı genişliği (latent cinsinden). Üretim SAME-S/L kullanımı 1'dir.
- encoder_sinusoidal_blocks — Kodlayıcıda
sinFFN kapılaması kullanan son transformer katmanlarının TRB başına sayısı (SAME-L:(0,)). - decoder_sinusoidal_blocks — Kodlayıcıda
sinFFN kapılaması kullanan son transformer katmanlarının TRB başına sayısı (SAME-L:(8,)). - sampling_rate — Hz cinsinden ses örneklem hızı (ör. 44100).
Stable Audio 3'ten Semantik Uyumlu Müzik Kodlayıcı (SAME) oto-kodlayıcısı (arXiv 2605.17991).
Model şunlardan oluşur:
- Patch gömme — stereo sesleri örtüşmeyen yamaca dönüştürür, zamanı kanallara takas eder (
patch_size ×örnekleme azaltma, öğrenilen parametre yok). - Encoder TRB yığını —
SAMETransformerResamplingBlockblokları,∏(encoder_strides)çarpanıyla daha fazla indirgeme yapar. - Soft-norm bottleneck — çalışır standart sapma ile öğrenilebilir afin normalizasyon.
- Çözücü TRB yığını — kodlayıcıyı tersine yansıtır.
- Unpatch — kanalları zaman boyutuna geri şekillendirir.
Toplam indirgeme oranı: patch_size × ∏(encoder_strides).
Varsayılan hiperparametreler SAME-S kontrol noktasıyla (stabilityai/SAME-S) eşleşir. SAME-L'yi (stabilityai/SAME-L, SA3 Medium tarafından kullanılır) yüklemek için encoder_channels=256, encoder_transformer_depths=(12,) parametrelerini iletin.
# 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
< source >( sample: Tensorreturn_dict: bool = True )
Stereo sesleri latentlere kodlayın.
decode
< source >( latents: Tensorreturn_dict: bool = True )
Latentleri stereo ses olarak geri çözümlen.
forward
< source >( sample: Tensorreturn_dict: bool = True )
sample'ı kodlayın ve hemen çözümlü (yeniden yapılandırma).
SAMETransformerResamplingBlock
sınıf diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock
< source >( in_channels: intout_channels: intstride: intmode: str = 'encoder'transformer_depth: int = 3dim_heads: int = 128use_differential: bool = Trueff_mult: int = 3sliding_window: int = 1sinusoidal_blocks: int = 0 )
Parametreler
- in_channels — Girdi kanal sayısı.
- out_channels — Çıkış kanal sayısı.
- stride — Aşağı/yukarı örnekleme çarpanı.
- mode —
"encoder"veya"decoder". - transformer_depth —
TransformerBlockkatmanlarının sayısı. - dim_heads — Dikkat başlığı boyutu.
- use_differential — Diferansiyel dikkat kullanılacak mı?
- ff_mult — İleri besleme genişleme çarpanı.
- sliding_window — Latentlerdeki kayan pencere yarı genişliği (bant yarı genişliği
sliding_window * (stride + 1)'dir). - sinusoidal_blocks —
sinFFN kapısını kullanan, SiLU yerine sonundaki dönüştürücü katmanlarının sayısı.
SAME'in temel yapı taşı.
Kodlayıcı modu (adım S): S ardışık giriş çerçevesini tek bir segmente gruplar, tek bir öğrenilebilir çıktı gömme ekler, ardından D transformer katmanını tam olarak düzleştirilmiş segment dizisi üzerinde çalıştırır ve yalnızca çıktı gömme korunur → S katında indirgeme.
Çözücü modu (adım S): 1 giriş çerçevesini S öğrenilebilir çıktı gömme vektörüyle gruplar, D dönüştürücü katmanını tam düzleştirilmiş dizinin üzerinde çalıştırır, ardından S çıktı gömme vektörünü korur → S katı büyütme.
Attention, düzleştirilmiş segment dizisi üzerinde örtüşen bir kayan pencere bandı maskesi kullanır: her token, her iki tarafta sliding_window * (stride + 1) komşuya dikkat eder. RoPE, tam dizi uzunluğu üzerinden hesaplanır. Bu, referans uygulamasıyla tam olarak eşleşir (tek bir örtüşmeyen parça yalnızca bir segment için eşleşirdi).
AutoencoderSAMEOutput
sınıf diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput
< source >( latents: Tensor )
AutoencoderSAME.encode() çıktısı.
AutoencoderSAMEDecoderOutput
sınıf diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput
< source >( sample: Tensor )
AutoencoderSAME.decode() çıktısı.