Diffusers documentation
StableAudio3DiTModel
StableAudio3DiTModel
Ses üretimi için kullanılan, düzeltilmiş akış hız tahmini tabanlı bir Difüzyon Transformer'ı (DiT), Stable Audio 3'te kullanılır.
Her StableAudio3DiTBlock şu işlemleri gerçekleştirir:
- Kendine dikkat — döner konum gömme (RoPE) ile diferansiyel çok başlı dikkat.
- Cross-attention — T5Gemma metin kodlayıcısından gelen token dizisine dikkat eder.
- İleri beslemeli — SwiGLU projeksiyonu.
Model, timestep (üstel Fourier özellikleri → doğrusal projeksiyon) ve global koşullandırma vektörü (StableAudio3DurationEmbedder'den süre gömme) ile koşullandırılır.
StableAudio3DiTModel
sınıf diffusers.StableAudio3DiTModel
< source >( 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 )
Parametreler
- io_channels (
int, varsayılan 256) — Gizli kanal sayısı. - patch_size (
int, varsayılan 1) — Transformer'dan önce uygulanan zamansal yama boyutu. - embed_dim (
int, varsayılan 1536) — Transformer gizli boyutu. - depth (
int, varsayılan 24) —StableAudio3DiTBlockkatmanlarının sayısı. - num_heads (
int, varsayılan 24) — Dikkat başlarının sayısı. - cond_token_dim (
int, varsayılan 768) — Çapraz dikkat bağlam tokenlarının boyutu. - global_cond_dim (
int, varsayılan 768) — Küresel süre gömme boyutu. - local_add_cond_dim (
int, varsayılan 257) — Yerel eklemeli (inpaint) tensörünün kanalları. - timestep_features_dim (
int, varsayılan 256) — Fourier zaman adımı özelliklerinin çıktı boyutu. - ff_mult (
float, varsayılan 4.0) — SwiGLU ileri besleme genişleme çarpanı. - num_memory_tokens (
int, varsayılan 64) — Öğrenilebilir bellek jetonlarının sayısı. - use_differential_attention (
bool, varsayılanTrue) — Diferansiyel öz/karşı dikkati etkinleştirir.
Stable Audio 3'ün Diffusion Transformer (DiT) omurgası.
Model, gürültülü ses latentleri bir partisini, skaler bir zaman adımını, çapraz dikkat bağlamını (projeksiyonlanmış metin ve süre token'ları) ve küresel bir süre gömme değerini alır ve hız alanını (rectified-flow hedefi) tahmin eder.
Koşullandırma:
- Çapraz dikkat bağlamı (
encoder_hidden_states),to_cond_embedtarafından projekte edilir. - Küresel süre gömme (
global_hidden_states),to_global_embedtarafından yansıtılır, zaman adımı gömme ile toplanır ve ardındanglobal_cond_embeddertarafından blok başına AdaLN modülasyonuna genişletilir. local_add_cond(inpainting),to_local_embedtarafından blok bazında projekte edilir.
num_memory_tokens öğrenilebilir token, transformer içinde ses dizisinin başına eklenir ve çıktı projeksiyonundan önce kaldırılır.
forward
< source >( 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
Parametreler
- hidden_states (
torch.Tensor) — Gürültülü latent ses(batch, io_channels, T). - timestep (
torch.Tensor) —[0, 1]aralığında(batch,)boyutlu difüzyon zaman adımı. - encoder_hidden_states (
torch.Tensor) — Çapraz dikkat bağlamı(batch, T_ctx, cond_token_dim). - global_hidden_states (
torch.Tensor) — Global süre gömme(batch, global_cond_dim). - encoder_attention_mask (
torch.Tensor, isteğe bağlı) — Bool maskesi(batch, T_ctx),True= geçerli. - local_add_cond (
torch.Tensor, isteğe bağlı) — Yerel-eklemeli (inpaint) koşullandırma(batch, local_add_cond_dim, T). - return_dict (
bool, varsayılanTrue) —StableAudio3DiTModelOutputdöndürülüp döndürülmemesi.
Dönüş değeri
StableAudio3DiTModelOutput veya tuple
tahmin edilen hız alanı, hidden_states ile aynı şekle sahip.
StableAudio3DiTBlock
sınıf diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock
< source >( dim: intcontext_dim: intdim_heads: int = 64use_differential: bool = Trueff_mult: float = 4.0local_add_cond_dim: int = 257 )
Tek SA3 DiT dönüştürücü bloğu.
İşlem sırası:
- AdaLN-modüleli öz-dikkat (kısmi RoPE, RMS QK-norm)
- Metin/süre bağlamına çapraz dikkat (sade RMS ön-norm)
- AdaLN-modüleli SwiGLU ileri beslemeli
AdaLN modülasyonu to_scale_shift_gate + global_modulation şeklindedir ve altı parçaya (scale_attn, shift_attn, gate_attn, scale_ff, shift_ff, gate_ff) ayrılır. Her kapılı dal sigmoid(1 - gate) ile ölçeklenir. Çapraz dikkat (cross-attention) AdaLN ile modüle edilmez; bu durum referansla uyumludur (cross_attend_norm düz bir RMS normdur).
local_seq sağlandığında (inpainting), to_local_embed tarafından blok bazında projekte edilir ve çapraz dikkat sonrası (ve ileri besleme öncesi) artımsal akıştaki ses konumlarına eklenir; bu, referansla uyumludur.
StableAudio3DiTModelOutput
sınıf diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput
< source >( sample: Tensor )
StableAudio3DiTModel'ün çıktısı.