Diffusers documentation

StableAudio3DiTModel

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

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

< >

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

Параметры

  • io_channels (int, по умолчанию 256) — Количество латентных каналов.
  • patch_size (int, по умолчанию 1) — размер временного патча, применяемого перед трансформером.
  • embed_dim (int, по умолчанию 1536) — скрытое измерение Transformer.
  • 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

< >

( hidden_states: Tensortimestep: Tensorencoder_hidden_states: Tensorglobal_hidden_states: Tensorencoder_attention_mask: typing.Optional[torch.Tensor] = Nonelocal_add_cond: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True ) → StableAudio3DiTModelOutput or tuple

Параметры

  • 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, необязательный) — Bool-маска (batch, T_ctx), True = валидный.
  • local_add_cond (torch.Tensor, optional) — Локально-аддитивное (inpaint) условие (batch, local_add_cond_dim, T).
  • return_dict (bool, по умолчанию True) — возвращать ли StableAudio3DiTModelOutput.

Возвращает

StableAudio3DiTModelOutput или tuple

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

StableAudio3DiTBlock

класс diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock

< >

( dim: intcontext_dim: intdim_heads: int = 64use_differential: bool = Trueff_mult: float = 4.0local_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

< >

( sample: Tensor )

Параметры

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

Вывод StableAudio3DiTModel.

Update on GitHub