Buckets:

hf-doc-build/doc / diffusers /main /ru /api /models /stable_audio_3_transformer.md
mishig's picture
|
download
raw
9.3 kB

StableAudio3DiTModel

Diffusion Transformer (DiT) для предсказания скорости rectified-flow, предназначенный для генерации аудио и используемый в Stable Audio 3.

Каждый StableAudio3DiTBlock выполняет:

  1. Self-attention — дифференциальное многоголовое внимание с вращательными позиционными эмбеддингами (RoPE).
  2. Кросс-внимание — обращается к последовательности токенов из текстового энкодера T5Gemma.
  3. Feed-forward — проекция SwiGLU.

Модель обусловлена timestep (экспоненциальные Фурье-признаки → линейная проекция) и глобальным вектором обусловливания (эмбеддинг длительности из StableAudio3DurationEmbedder).

StableAudio3DiTModel[[diffusers.StableAudio3DiTModel]]

diffusers.StableAudio3DiTModel[[diffusers.StableAudio3DiTModel]]

diffusers.StableAudio3DiTModel(io_channels: int = 256, patch_size: int = 1, embed_dim: int = 1536, depth: int = 24, num_heads: int = 24, cond_token_dim: int = 768, global_cond_dim: int = 768, local_add_cond_dim: int = 257, timestep_features_dim: int = 256, ff_mult: float = 4.0, num_memory_tokens: int = 64, use_differential_attention: bool = True)

Источник

Параметры:

io_channels (int, по умолчанию 256) : Количество латентных каналов.

patch_size (int, по умолчанию 1) : Размер временного патча, применяемого перед трансформером.

embed_dim (int, по умолчанию 1536) : Скрытое измерение трансформера.

depth (int, по умолчанию 24) : Количество слоёв StableAudio3DiTBlock.

num_heads (int, по умолчанию 24) : Количество головок внимания.

cond_token_dim (int, по умолчанию 768) : Размерность токенов контекста кросс-внимания.

global_cond_dim (int, по умолчанию 768) : Размерность глобального эмбеддинга длительности.

local_add_cond_dim (int, по умолчанию 257) : Каналы локально-аддитивного (inpaint) тензора.

timestep_features_dim (int, по умолчанию 256) : Размерность выходного вектора для признаков временных шагов Фурье.

ff_mult (float, по умолчанию 4.0) : Коэффициент расширения SwiGLU для полносвязного слоя.

num_memory_tokens (int, по умолчанию 64) : Количество обучаемых токенов памяти.

use_differential_attention (bool, по умолчанию True) : Включает дифференциальное само-/кросс-внимание.

Базовая архитектура Diffusion Transformer (DiT) в Stable Audio 3.

Модель принимает пакет зашумленных аудиолатентов, скалярный временной шаг, контекст кросс-внимания (проецированные токены текста и длительности) и глобальное эмбеддинг длительности, и предсказывает поле скоростей (цель rectified-flow).

Условие:

  • Контекст кросс-внимания (encoder_hidden_states) проецируется с помощью to_cond_embed.
  • Глобальное эмбеддинг длительности (global_hidden_states) проецируется через to_global_embed, суммируется с эмбеддингом временного шага, а затем расширяется через global_cond_embedder в модуляцию AdaLN для каждого блока.
  • local_add_cond (inpainting) проецируется по блокам с помощью to_local_embed.

num_memory_tokens обучаемых токенов добавляются в начало аудиопоследовательности внутри трансформера и удаляются перед проекцией на выход.

forward[[diffusers.StableAudio3DiTModel.forward]]

forward(hidden_states: Tensor, timestep: Tensor, encoder_hidden_states: Tensor, global_hidden_states: Tensor, encoder_attention_mask: typing.Optional[torch.Tensor] = None, local_add_cond: typing.Optional[torch.Tensor] = None, return_dict: bool = True)

Источник

Параметры:

hidden_states (torch.Tensor) : Шумные латентные аудио (batch, io_channels, T).

timestep (torch.Tensor) : Шаг диффузии (batch,) в диапазоне [0, 1].

encoder_hidden_states (torch.Tensor) : Контекст кросс-внимания (batch, T_ctx, cond_token_dim).

global_hidden_states (torch.Tensor) : Глобальное эмбедирование длительности (batch, global_cond_dim).

encoder_attention_mask (torch.Tensor, необязательный) : Булева маска (batch, T_ctx), True = валидный.

local_add_cond (torch.Tensor, необязательный) : Локально-аддитивное (inpaint) условие (batch, local_add_cond_dim, T).

return_dict (bool, по умолчанию True) : Возвращать ли StableAudio3DiTModelOutput.

Возвращает: StableAudio3DiTModelOutput или tuple

предсказанное поле скоростей, с той же формой, что и hidden_states.

StableAudio3DiTBlock[[diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock]]

diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock[[diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock]]

diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock(dim: int, context_dim: int, dim_heads: int = 64, use_differential: bool = True, ff_mult: float = 4.0, local_add_cond_dim: int = 257)

Источник

Один блок трансформера SA3 DiT.

Порядок операций:

  1. Само-внимание с модуляцией AdaLN (частичный RoPE, нормализация RMS для QK)
  2. Кросс-внимание к контексту текста/длительности (обычный RMS pre-norm)
  3. SwiGLU-функция с модуляцией AdaLN

Модуляция AdaLN представляет собой to_scale_shift_gate + global_modulation, разбитую на шесть частей (scale_attn, shift_attn, gate_attn, scale_ff, shift_ff, gate_ff). Каждая ветвь с гейтом масштабируется множителем sigmoid(1 - gate). Кросс-внимание не модулируется через AdaLN, что соответствует эталонной реализации (cross_attend_norm — это обычный RMS-нормализатор).

Если задан local_seq (inpainting), он проецируется по блокам с помощью to_local_embed и добавляется к позициям аудио в остаточном потоке после cross-attention (и перед feed-forward), что соответствует эталонной реализации.

StableAudio3DiTModelOutput[[diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput]]

diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput[[diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput]]

diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput(sample: Tensor)

Источник

Параметры:

sample (torch.Tensor) : Предсказанное поле скоростей, имеющее ту же форму, что и входные hidden_states.

Вывод StableAudio3DiTModel.

Xet Storage Details

Size:
9.3 kB
·
Xet hash:
9631f6368fea07f6a78c8c5c2c89242524389e07ee9cfaa34ae8aedb1954d607

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