Diffusers documentation

AutoencoderSAME

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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, proporcionando dinámicas de entrenamiento estables.

AutoencoderSAME

clase diffusers.AutoencoderSAME

< >

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

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). Aporta patch_size × a la proporción total de reducción de muestreo. Valor de producción: 256.
  • encoder_channels — Número base de canales 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 muestreo descendente/ascendente 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 es True, usa differential attention 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 de capas finales de transformador por TRB 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

< >

( sample: Tensorreturn_dict: bool = True )

Parámetros

  • sample — tensor de forma de onda (B, audio_channels, T).
  • return_dict — Si es True, devuelve un AutoencoderSAMEOutput.

Codifica el audio estéreo en latentes.

decode

< >

( latents: Tensorreturn_dict: bool = True )

Parámetros

  • latents — tensor latente (B, latent_dim, T_latent).
  • return_dict — Si es True, devuelve un AutoencoderSAMEDecoderOutput.

Decodifica los latentes de vuelta a audio estéreo.

forward

< >

( sample: Tensorreturn_dict: bool = True )

Parámetros

  • sample — tensor de forma de onda (B, audio_channels, T).
  • return_dict — Si es True, devuelve un AutoencoderSAMEDecoderOutput.

Codifica y decodifica inmediatamente sample (reconstrucción).

SAMETransformerResamplingBlock

clase diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock

< >

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

Parámetros

  • in_channels — Número de canales de entrada.
  • out_channels — Número de canales de salida.
  • stride — Factor de muestreo descendente/ascendente.
  • 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 la atención diferencial.
  • ff_mult — Factor de expansión de la 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 control de FFN con 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 un único embebido de salida aprendible y luego ejecuta D capas de transformador sobre la secuencia de segmento aplanada completa, conservando únicamente el embebido 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 → submuestreo 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

clase diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput

< >

( latents: Tensor )

Salida de AutoencoderSAME.encode().

AutoencoderSAMEDecoderOutput

clase diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput

< >

( sample: Tensor )

Salida de AutoencoderSAME.decode().

Update on GitHub