Buckets:
| # AutoencoderSAME | |
| Автоэнкодер **SAME** (Semantically-Aligned Music Encoder) используется в [Stable Audio 3](https://stability.ai/news-updates/meet-stable-audio-3-the-model-family-built-for-artistic-experimentation-with-open-weight-models) для сжатия стереоаудио-волновых форм в компактную латентную последовательность и их последующей реконструкции. | |
| Кодировщик складывает модули `SAMETransformerResamplingBlock`, каждый из которых группирует фиксированное количество кадров аудиопатчей и формирует один обучаемый выходной токен с помощью дифференциального трансформера. Декодировщик обращает этот процесс, расширяя каждый латентный токен обратно в патч аудиоканов. | |
| Мягкое нормализующее узкое место (`SoftNormBottleneck`) нормализует латенты до и после диффузионной модели, обеспечивая стабильную динамику обучения. | |
| ## 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) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_same.py#L608) | |
| **Параметры:** | |
| audio_channels : Количество аудиоканалов (2 для стерео). | |
| patch_size : Размер неперекрывающихся патчей, применяемый перед TRB-кодером (и обратный после TRB-декодера). Вносит вклад `patch_size ×` в общее соотношение даунсемплинга. Значение для продакшена: 256. | |
| encoder_channels : Базовое количество каналов для TRB. 128 для SAME-S, 256 для SAME-L. | |
| encoder_c_mults : Множитель каналов для каждого уровня TRB (одна запись на TRB). Оба SAME-S и SAME-L используют `(6,)` — один TRB, размерность скрытого слоя которого равна `encoder_channels × 6`. | |
| encoder_strides : Шаг даун-/ап-сэмплинга для каждого уровня TRB. Оба SAME-S и SAME-L используют `(16,)` — один TRB с шагом 16. | |
| encoder_transformer_depths : Количество слоёв Transformer на уровень TRB. 6 для SAME-S, 12 для SAME-L. | |
| latent_dim : Размерность латентного пространства. 256 для обоих вариантов. | |
| use_differential_attention : Если `True`, использовать дифференциальное внимание внутри каждого блока трансформера TRB (по умолчанию включено для SAME-S/L). | |
| dim_heads : Размер измерения головы внимания. 64 для SAME-S/L в продакшене. | |
| ff_mult : коэффициент расширения SwiGLU для полносвязного слоя. | |
| sliding_window : Полуполоса (в латентах) для внимания с полосным маскированием. В производственных системах SAME-S/L используется значение 1. | |
| encoder_sinusoidal_blocks : Количество последовательных трансформерных слоёв в кодере, использующих `sin` FFN-гейтинг на каждый TRB (SAME-L: `(0,)`). | |
| decoder_sinusoidal_blocks : Количество последовательных трансформерных слоёв в декодере, использующих `sin` FFN-гейтинг, для каждого TRB (SAME-L: `(8,)`). | |
| sampling_rate : Частота дискретизации аудио в Гц (например, 44100). | |
| Автоэнкодер Semantically-Aligned Music Encoder (SAME) из *Stable Audio 3* ([arXiv 2605.17991](https://arxiv.org/abs/2605.17991)). | |
| Модель состоит из: | |
| - **Встраивание патчей** — преобразует стереоаудио в неперекрывающиеся патчи, жертвуя временным разрешением ради каналов (`patch_size ×` даунсемплинг, без обучаемых параметров). | |
| - **Стек TRB энкодера** — блоки `SAMETransformerResamplingBlock`, которые дополнительно уменьшают размерность в `∏(encoder_strides)` раз. | |
| - **Soft-norm bottleneck** — обучаемая аффинная нормализация с текущим стандартным отклонением. | |
| - **Стек декодера TRB** — зеркальное отражение энкодера в обратном порядке. | |
| - **Unpatch** — возвращает каналы обратно в размерность времени. | |
| Общее отношение даунсемплинга: `patch_size × ∏(encoder_strides)`. | |
| Гиперпараметры по умолчанию соответствуют чекпоинту **SAME-S** (`stabilityai/SAME-S`). Чтобы загрузить **SAME-L** (`stabilityai/SAME-L`, используется в SA3 Medium), передайте `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) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_same.py#L733) | |
| **Параметры:** | |
| sample : тензор волновой формы `(B, audio_channels, T)`. | |
| return_dict : Если `True`, возвращает `AutoencoderSAMEOutput`. | |
| **Возвращает:** | |
| Латентный тензор формы `(B, latent_dim, T // downsampling_ratio)` (обёрнут в `AutoencoderSAMEOutput`, если *return_dict* равно `True`). | |
| Кодирование стереозвука в латенты. | |
| #### decode[[diffusers.AutoencoderSAME.decode]] | |
| ```python | |
| decode(latents: Tensor, return_dict: bool = True) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_same.py#L758) | |
| **Параметры:** | |
| latents : тензор латентных представлений `(B, latent_dim, T_latent)`. | |
| return_dict : Если `True`, возвращает `AutoencoderSAMEDecoderOutput`. | |
| **Возвращает:** | |
| Тензор формы `(B, audio_channels, T_latent × downsampling_ratio)` (обёрнут в `AutoencoderSAMEDecoderOutput`, если *return_dict* равно `True`). | |
| Декодировать латенты обратно в стереоаудио. | |
| #### forward[[diffusers.AutoencoderSAME.forward]] | |
| ```python | |
| forward(sample: Tensor, return_dict: bool = True) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_same.py#L783) | |
| **Параметры:** | |
| sample : тензор волновой формы `(B, audio_channels, T)`. | |
| return_dict : Если `True`, возвращает `AutoencoderSAMEDecoderOutput`. | |
| **Возвращает:** | |
| Восстановленная волна (та же форма, что и у *sample*, возможно, длиннее из-за дополнения), обернутая в `AutoencoderSAMEDecoderOutput`, если *return_dict* равно `True`. | |
| Кодируйте и сразу декодируйте *sample* (восстановление). | |
| ## 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) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_same.py#L294) | |
| **Параметры:** | |
| in_channels : Количество входных каналов. | |
| out_channels : Количество выходных каналов. | |
| stride : Коэффициент уменьшения/увеличения размера. | |
| mode : `"encoder"` или `"decoder"`. | |
| transformer_depth : Количество слоёв `TransformerBlock`. | |
| dim_heads : размерность головы внимания. | |
| use_differential : Использовать ли дифференциальное внимание. | |
| ff_mult : Коэффициент расширения feed-forward. | |
| sliding_window : Полуполоса скользящего окна в латентах (полуполоса полосы составляет `sliding_window * (stride + 1)`). | |
| sinusoidal_blocks : Количество конечных трансформерных слоёв, использующих `sin` FFN-гейтинг вместо SiLU. | |
| Базовый строительный блок SAME. | |
| **Режим кодировщика** (шаг S): группирует S последовательных входных кадров в один сегмент, добавляет единственное обучаемое выходное вложение, затем прогоняет D трансформерных слоёв по всей развёрнутой последовательности сегмента и сохраняет только выходное вложение → уменьшение размера в S раз. | |
| **Режим декодера** (шаг S): объединяет 1 входной кадр с S обучаемыми выходными эмбеддингами, прогоняет D слои трансформера по всей развёрнутой последовательности, затем сохраняет S выходных эмбеддингов → апсемплинг с коэффициентом S. | |
| Attention использует перекрывающуюся *скользящую оконную* маску по сглаженной последовательности сегментов: каждый токен обращается к `sliding_window * (stride + 1)` соседям с каждой стороны. RoPE вычисляется по полной длине последовательности. Это точно соответствует эталонной реализации (один неперекарывающийся чанк совпадал бы только для одного сегмента). | |
| ## 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) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_same.py#L52) | |
| Результат работы [AutoencoderSAME.encode()](/docs/diffusers/main/ru/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) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_same.py#L59) | |
| Результат работы [AutoencoderSAME.decode()](/docs/diffusers/main/ru/api/models/autoencoder_same#diffusers.AutoencoderSAME.decode). | |
Xet Storage Details
- Size:
- 13.3 kB
- Xet hash:
- 952ae707052349364d58508a07e13ad027414c43310522256d97ca59bac7d3d6
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.