Diffusers documentation

SanaWMTransformer3DModel

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

SanaWMTransformer3DModel

محوّل انتشار ثلاثي الأبعاد (1.6 مليار معامل) لتوليد الفيديو من الصور مع التحكم بالكاميرا، يُستخدم كمُعيّن المرحلة الأولى في SanaWMPipeline. يجمع المحوّل بين:

  • فرع رئيسي لانتباه خطي ثنائي الاتجاه GDN-Triton (عمق 20، مخفي 2240، 20 رأساً)،
  • فرع تحكم بالكاميرا يعتمد على UCPE (تضمين موحّد لوضع الكاميرا) يستهلك خريطة أشعة (raymap) وتمثيل Plücker للمسار المطلوب، و
  • تضمين موضع دوّار ثلاثي الأبعاد بنمط Wan بالإضافة إلى كتل انتباه softmax دورية تُحقن كل softmax_every_n طبقات.

يمكن تحميل النموذج باستخدام:

import torch
from diffusers import SanaWMTransformer3DModel

transformer = SanaWMTransformer3DModel.from_pretrained(
    "Efficient-Large-Model/SANA-WM_bidirectional-diffusers",
    subfolder="transformer",
    torch_dtype=torch.bfloat16,
)

SanaWMTransformer3DModel

فئة diffusers.SanaWMTransformer3DModel

< >

( in_channels: int = 128num_layers: int = 20hidden_size: int = 2240num_attention_heads: int = 20patch_size: tuple[int, int, int] = (1, 1, 1)softmax_every_n: int = 4linear_head_dim: int = 112ffn_type: str = 'GLUMBConvTemp't_kernel_size: int = 3conv_kernel_size: int = 4k_conv_only: bool = Truepos_embed_type: str = 'wan_rope'qk_norm: bool = Truecross_norm: bool = Truey_norm: bool = Truecam_attn_compress: int = 1init_cam_from_base: bool = Trueuse_chunk_plucker_post_attn: bool = Truechunk_plucker_channels: int = 48chunk_plucker_post_attn_blocks: int = 20fp32_attention: bool = Trueimage_size: int = 720caption_channels: int = 2304mlp_ratio: float = 3.0mlp_acts: tuple = ('silu', 'silu', None)use_pe: bool = Truelearn_sigma: bool = Falsepred_sigma: bool = Falsemixed_precision: str = 'bf16' )

المعاملات

  • in_channels (int، القيمة الافتراضية 128) — قنوات VAE الكامنة (LTX-2).
  • softmax_every_n (int، القيمة الافتراضية 4) — استخدم كتلة انتباه softmax كل N كتل.
  • linear_head_dim (int، القيمة الافتراضية 112) — بُعد رأس GDN.
  • ffn_type (str، القيمة الافتراضية "GLUMBConvTemp") — FFN.
  • t_kernel_size (int، القيمة الافتراضية 3) — نواة الالتفاف الزمني.
  • conv_kernel_size (int، القيمة الافتراضية 4) — نواة التحوّل المكاني داخل الانتباه.
  • k_conv_only (bool، القيمة الافتراضية True) — تطبيق conv على K فقط.
  • pos_embed_type (str، القيمة الافتراضية "wan_rope") — تضمين الموضع.
  • qk_norm (bool، القيمة الافتراضية True) — تطبيق RMSNorm على Q/K.
  • cross_norm (bool، القيمة الافتراضية True) — تطبيق RMSNorm على K في الانتباه المتقاطع.
  • y_norm (bool، القيمة الافتراضية True) — تطبيق attention_y_norm على تمثيلات النص.
  • init_cam_from_base (bool، القيمة الافتراضية True) — غير مستخدم؛ يتم تحميل فرع الكاميرا من نقطة التفتيش. تم إبقاؤه حتى يتم تحميل ملفات config.json المُصدَّرة.
  • use_chunk_plucker_post_attn (bool، القيمة الافتراضية True). —
  • chunk_plucker_channels (int، القيمة الافتراضية 48) — 6 dims * temporal_stride 8.
  • chunk_plucker_post_attn_blocks (int، القيمة الافتراضية 20) — جميع الكتل.
  • fp32_attention (bool، القيمة الافتراضية True) — غير مستخدم؛ حيث يتم تشغيل الانتباه دائمًا في fp32. تم إبقاؤه حتى يتم تحميل ملفات config.json المُصدَّرة.
  • image_size (int، القيمة الافتراضية 720) — الحجم الاسمي للصورة.
  • caption_channels (int، القيمة الافتراضية 2304) — حجم Gemma-2 المخفي.

SANA-WM 1600M DiT ثنائي الاتجاه يتحكم فيه الكاميرا.

نموذج DiT من فئة واحدة (depth=20, hidden_size=2240, patch_size=(1,1,1), num_heads=20 — أي الإصدار العام Efficient-Large-Model/SANA-WM_bidirectional). تعمل save_pretrained / from_pretrained مباشرةً عبر ConfigMixin.

تعمل كل كتلة على انتباه مشروط بالكاميرا (UCPE): [BidirectionalGDNUCPESinglePathLiteLA]، باستثناء كل كتلة رقمها softmax_every_n التي تعمل على نظيرها الخاص بـ softmax [_SoftmaxUCPESinglePathLiteLA].

يكون ملف الحالة (state-dict) مطابقًا تمامًا لنقطة التفتيش (checkpoint) العامة الخاصة بـ sana باستثناء مخزن pos_embed الذي تم حذفه عمدًا.

forward

< >

( hidden_states: torch.Tensortimestep: torch.Tensorencoder_hidden_states: torch.Tensorencoder_attention_mask: torch.Tensor | None = Nonemask: torch.Tensor | None = Nonereturn_dict: bool = Truedata_info: Optional[dict] = Nonecamera_conditions: torch.Tensor | None = Nonechunk_plucker: torch.Tensor | None = Nonecam_pos_embeds: Optional[dict] = Nonepos_embeds: torch.Tensor | None = Noneraymats: torch.Tensor | None = Noneframe_valid_mask: torch.Tensor | None = Nonechunk_size: int | None = None )

المعاملات

  • hidden_states — كامنات بأبعاد (B, C, T, H, W).
  • timestep — (B, 1, T) خطوات الانتشار لكل إطار (بأسلوب LTX).
  • encoder_hidden_states — تمثيلات نصية (B, 1, L, D_caption).
  • encoder_attention_mask — قناع انتباه النص (B, L) (وفقًا لاتفاقية diffusers).
  • mask — اسم بديل لـ encoder_attention_mask يتطابق مع اسم معامل kwarg الخاص بـ sana DiT. إذا تم تمرير كلاهما، فإن mask له الأولوية.
  • return_dict — إذا كانت True (الافتراضي)، تُرجع Transformer2DModelOutput؛ وإلا تُرجع tuple واحد (sample,).
  • data_info — شروط إضافية؛ يُدمج data_info["image_vae_embeds"] مع الكمونات على محور القناة عند وجوده.
  • camera_conditions — (B, T, 20) شروط الكاميرا الخام التي تقود فرع التحكم بالكاميرا (UCPE).
  • chunk_plucker — تمثيلات أشعة Plucker (B, C, T, H, W)، تُستهلك عندما يكون النموذج مُهيأً باستخدام use_chunk_plucker_input / use_chunk_plucker_post_attn.
  • cam_pos_embeds — تضمينات موضعية للكاميرا محسوبة مسبقًا (إدخالات "absmap" / "P") اختيارية، تُعاد استخدامها بدلًا من إعادة حسابها.
  • pos_embeds — تضمينات مواقع دوّارة محسوبة مسبقًا اختيارية؛ عند أن تكون None تُبنى من شكل الكمون.
  • raymats — مصفوفات أشعة UCPE محسوبة مسبقًا (اختياري) (تُستخدم فقط عندما لا يحمل cam_pos_embeds "P").
  • frame_valid_mask — قناع صلاحية اختياري لكل إطار، على شكل (B, 1, T, 1, 1) أو (B, 1, T) أو (B, T).
  • chunk_size — تجاوز لطول المقطع يُمرَّر إلى الكتل؛ ويعود إلى chunk_size المُهيّأ لكل كتلة.

شغّل SANA-WM DiT.

unpatchify

< >

( xpost_patch_num_framespost_patch_heightpost_patch_width )

x: (N, T, patch_size*2 C) imgs: (N, H, W, C)

Transformer2DModelOutput

فئة diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

المعاملات

  • sample (torch.Tensor من الشكل (batch_size, num_channels, height, width) أو (batch size, num_vector_embeds - 1, num_latent_pixels) إذا كان Transformer2DModel منفصلاً) — مخرجات الحالات المخفية المشروطة على مدخل encoder_hidden_states. إذا كان منفصلاً، يعيد توزيعات الاحتمال للبكسلات الكامنة غير الملوثة.

مخرجات Transformer2DModel.

Update on GitHub