Buckets:

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

AutoencoderSAME

El autoencoder SAME (Semantically-Aligned Music Encoder) se utiliza en Stable Audio 3 para comprimir las formas de onda de audio estéreo en una secuencia latente compacta y reconstruirlas.

El codificador apila módulos SAMETransformerResamplingBlock, cada uno de los cuales agrupa un número fijo de cuadros de parches de audio y produce un token de salida aprendible mediante un transformador diferencial. El decodificador invierte este proceso, expandiendo cada token latente de vuelta a un parche de cuadros de audio.

Un cuello de botella soft-norm (SoftNormBottleneck) normaliza los latentes antes y después del modelo de difusión, lo que proporciona dinámicas de entrenamiento estables.

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)

Fuente

Parámetros:

audio_channels : Número de canales de audio (2 para estéreo).

patch_size : Tamaño de parche no superpuesto aplicado antes del codificador TRB (y revertido después del decodificador TRB). Contribuye con patch_size × a la proporción total de muestreo descendente. Valor de producción: 256.

encoder_channels : Número de canales base para el TRB. 128 para SAME-S, 256 para SAME-L.

encoder_c_mults : Multiplicador de canales para cada nivel de TRB (una entrada por TRB). Tanto SAME-S como SAME-L usan (6,): un único TRB cuya dimensión oculta es encoder_channels × 6.

encoder_strides : Paso de submuestreo/sobremuestreo para cada nivel de TRB. Tanto SAME-S como SAME-L usan (16,) — un TRB con paso 16.

encoder_transformer_depths : Capas de Transformer por nivel de TRB. 6 para SAME-S, 12 para SAME-L.

latent_dim : Dimensionalidad del espacio latente. 256 para ambas variantes.

use_differential_attention : Si True, usa atención diferencial dentro de cada bloque transformer TRB (activado por defecto para SAME-S/L).

dim_heads : Dimensión de la cabeza de atención. 64 para SAME-S/L de producción.

ff_mult : Factor de expansión del feed-forward SwiGLU.

sliding_window : Semiancho de la ventana deslizante (en latentes) para la atención con máscara de banda. En producción, SAME-S/L usa 1.

encoder_sinusoidal_blocks : Cantidad por TRB de capas finales de transformador que usan el control de FFN con sin en el codificador (SAME-L: (0,)).

decoder_sinusoidal_blocks : Cantidad por TRB de capas finales de transformador que usan el control de FFN con sin en el decodificador (SAME-L: (8,)).

sampling_rate : Tasa de muestreo de audio en Hz (p. ej., 44100).

Autoencoder Semantically-Aligned Music Encoder (SAME) de Stable Audio 3 (arXiv 2605.17991).

El modelo consiste en:

  • Embedding de parches — reorganiza el audio estéreo en parches no superpuestos, intercambiando tiempo por canales (patch_size × de reducción de muestreo, sin parámetros aprendidos).
  • Pila de codificador TRB — bloques SAMETransformerResamplingBlock que realizan una reducción adicional de muestreo por un factor de ∏(encoder_strides).
  • Cuello de botella con normalización suave — normalización afín aprendible con desviación estándar móvil.
  • Pila TRB del decodificador — refleja el codificador en orden inverso.
  • Unpatch — reorganiza los canales de vuelta en la dimensión temporal.

Relación total de submuestreo: patch_size × ∏(encoder_strides).

Los hiperparámetros por defecto coinciden con el punto de control SAME-S (stabilityai/SAME-S). Para cargar SAME-L (stabilityai/SAME-L, utilizado por SA3 Medium), pase 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)

Fuente

Parámetros:

sample : tensor de forma de onda (B, audio_channels, T).

return_dict : Si True, devuelve un AutoencoderSAMEOutput.

Devuelve:

Tensor latente de forma (B, latent_dim, T // downsampling_ratio) (envuelto en AutoencoderSAMEOutput cuando return_dict es True).

Codifica el audio estéreo en latentes.

decode[[diffusers.AutoencoderSAME.decode]]

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

Fuente

Parámetros:

latents : tensor latente (B, latent_dim, T_latent).

return_dict : Si True, devuelve un AutoencoderSAMEDecoderOutput.

Devuelve:

Tensor de forma de onda de forma (B, audio_channels, T_latent × downsampling_ratio) (envuelto en AutoencoderSAMEDecoderOutput cuando return_dict es True).

Decodifica los latentes de vuelta a audio estéreo.

forward[[diffusers.AutoencoderSAME.forward]]

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

Fuente

Parámetros:

sample : tensor de forma de onda (B, audio_channels, T).

return_dict : Si True, devuelve un AutoencoderSAMEDecoderOutput.

Devuelve:

Forma de onda reconstruida (misma forma que sample, posiblemente más larga debido al relleno), envuelta en AutoencoderSAMEDecoderOutput cuando return_dict es True.

Codifica y decodifica inmediatamente sample (reconstrucción).

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)

Fuente

Parámetros:

in_channels : Número de canales de entrada.

out_channels : Número de canales de salida.

stride : Factor de submuestreo/sobremuestreo.

mode : "encoder" o "decoder".

transformer_depth : Número de capas de TransformerBlock.

dim_heads : Dimensión de la cabeza de atención.

use_differential : Si se debe usar atención diferencial.

ff_mult : Factor de expansión de red feed-forward.

sliding_window : Semiancho de la ventana deslizante en latentes (el semiancho de la banda es sliding_window * (stride + 1)).

sinusoidal_blocks : Número de capas finales de transformer que usan el gating de FFN sin en lugar de SiLU.

Bloque de construcción principal de SAME.

Modo codificador (paso S): agrupa S fotogramas de entrada consecutivos en un solo segmento, añade una única incrustación de salida aprendible y luego ejecuta D capas de transformador sobre la secuencia de segmento aplanada completa, conservando solo la incrustación de salida → submuestreo por S.

Modo decodificador (paso S): agrupa 1 cuadro de entrada con S incrustaciones de salida aprendibles, ejecuta D capas de transformador sobre la secuencia aplanada completa y luego conserva las S incrustaciones de salida → aumenta la muestra por S.

Attention utiliza una máscara de banda sliding-window superpuesta sobre la secuencia de segmentos aplanada: cada token atiende a sliding_window * (stride + 1) vecinos en cada lado. RoPE se calcula sobre la longitud completa de la secuencia. Esto coincide exactamente con la implementación de referencia (un único chunk no superpuesto solo coincidiría para un segmento).

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)

Fuente

Salida de 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)

Fuente

Salida de AutoencoderSAME.decode().

Xet Storage Details

Size:
10.1 kB
·
Xet hash:
3ba47a97b78592f03f321aa52e073b729e5395a356068c55d160ab16211ee54e

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