Diffusers documentation
StableAudio3DiTModel
StableAudio3DiTModel
نموذج تحويل انتشاري (DiT) لتنبؤ السرعة بتدفق مُصحَّح لتوليد الصوت، يُستخدم في Stable Audio 3.
يُنفّذ كل StableAudio3DiTBlock ما يلي:
- الانتباه الذاتي — انتباه متعدد الرؤوس التفاضلي مع تضمينات الموضع الدوارة (RoPE).
- الانتباه المتقاطع — ينتبه إلى تسلسل الرموز من مُشفّر النص T5Gemma.
- التغذية الأمامية — إسقاط SwiGLU.
يُشترط النموذج على خطوة زمنية (خصائص فورييه أسية → إسقاط خطي) وعلى متجه اشتراط عام (تضمين المدة من StableAudio3DurationEmbedder).
StableAudio3DiTModel
فئة 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 )
المعاملات
- 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) — بُعد تضمين المدة الإجمالية. - local_add_cond_dim (
int)، القيمة الافتراضية 257 — عدد قنوات الموتر الإضافي المحلي (للتعبئة). - timestep_features_dim (
int، القيمة الافتراضية 256) — بُعد المخرجات لميزات خطوات الزمن (Fourier timestep features). - ff_mult (
float، القيمة الافتراضية 4.0) — معامل توسيع الشبكة العصبية الأمامية SwiGLU. - num_memory_tokens (
int، القيمة الافتراضية 64) — عدد رموز الذاكرة القابلة للتعلّم. - use_differential_attention (
bool، القيمة الافتراضيةTrue) — تفعيل الانتباه الذاتي/التقاطعي التفاضلي.
هيكل Stable Audio 3 المعتمد على Diffusion Transformer (DiT).
يستقبل النموذج دفعة من الكامنات الصوتية الضجيج، وخطوة زمنية قياسية، وسياق انتباه متقاطع (رموز النص والمدة المُسقطين)، وتضمين مدة عام، ويتنبأ بحقل السرعة (هدف التدفق المُصحَّح).
التكييف:
- يتم إسقاط سياق الانتباه المتقاطع (
encoder_hidden_states) بواسطةto_cond_embed. - يُخضع تضمين المدة الزمني (
global_hidden_states) للتحويل بواسطةto_global_embed، ثم يُجمع مع تضمين خطوة الزمن، ثم يُوسَّع بواسطةglobal_cond_embedderإلى تعديل AdaLN لكل كتلة. - يُخضع
local_add_cond(للتلوين الداخلي) إلى الإسقاط على مستوى كل كتلة بواسطةto_local_embed.
تُضاف رموز قابلة للتعلم بعدد num_memory_tokens إلى بداية تسلسل الصوت داخل المحوّل، ثم تُزال قبل الإسقاط النهائي.
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
المعاملات
- 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، اختياري) — شرطية إضافة محلية (تعبئة داخلية)(batch, local_add_cond_dim, T). - return_dict (
bool، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاعStableAudio3DiTModelOutput.
يعيد
StableAudio3DiTModelOutput أو tuple
حقل السرعة المتوقع، بنفس شكل hidden_states.
StableAudio3DiTBlock
فئة 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 )
كتلة تحويل DiT واحدة من نوع SA3.
ترتيب العمليات:
- انتباه ذاتي مُعدَّل بواسطة AdaLN (RoPE جزئي، تطبيع RMS لـ QK)
- انتباه متقاطع إلى سياق النص/المدة (تطبيع مسبق بسيط RMS)
- شبكة عصبية أمامية 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 (في إعادة الرسم)، يتم إسقاطه لكل كتلة بواسطة to_local_embed وإضافته إلى مواضع الصوت في تدفق المتبقي بعد الانتباه المتقاطع (وقبل التقدّم الأمامي)، بما يتوافق مع المرجع.
StableAudio3DiTModelOutput
فئة diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput
< source >( sample: Tensor )
مخرجات StableAudio3DiTModel.