Diffusers documentation

WanAnimate2Transformer3DModel

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

WanAnimate2Transformer3DModel

نموذج Wan-Animate-2 من فريق Wan في Alibaba، وهو نموذج Diffusion Transformer مخصص لبيانات الفيديو ثلاثية الأبعاد. يقوم هذا النموذج بتحريك صورة شخصية عبر حركة فيديو إرشادي باستخدام آلية مرجعية ضمن السياق: حيث يُنفَّذ لكل مقطع أولاً مسار مرجعي (kv_cache_mode="extract") يخزّن فيه مفاتيح K/V المرجعية لكل طبقة، ثم تُنفَّذ مسارات إزالة الضوضاء (kv_cache_mode="cached") التي تتعامل مع رموز التوليد ورموز المرجع المخزنة معاً عبر BlockMask مرن.

يمكن تحميل النموذج باستخدام مقتطف الشيفرة التالي.

from diffusers import WanAnimate2Transformer3DModel

transformer = WanAnimate2Transformer3DModel.from_pretrained("Wan-AI/Wan2.2-Animate-2-14B-Diffusers", subfolder="transformer", dtype=torch.bfloat16)

WanAnimate2Transformer3DModel

فئة diffusers.WanAnimate2Transformer3DModel

< >

( patch_size: tuple = (1, 2, 2)text_len: int = 512in_dim: int = 36dim: int = 5120ffn_dim: int = 13824freq_dim: int = 256text_dim: int = 4096out_dim: int = 16num_heads: int = 40num_layers: int = 40cross_attn_norm: bool = Trueeps: float = 1e-06use_img_emb: bool = Truerefer_offset_t: int = 1refer_offset_h: int = 0refer_offset_w: int = -1refer_stride: int = 1 )

المعاملات

  • patch_size (tuple[int])، القيمة الافتراضية (1, 2, 2)) — أبعاد الباتش ثلاثية الأبعاد لتضمين الفيديو (t_patch, h_patch, w_patch).
  • text_len (int، القيمة الافتراضية 512) — الطول الثابت لتضمينات النص.
  • in_dim (int، القيمة الافتراضية 36) — عدد القنوات في المدخلات (2 * latent_channels + 4 لقناة القناع).
  • dim (int، القيمة الافتراضية 5120) — عدد القنوات في المحوّل.
  • ffn_dim (int، القيمة الافتراضية 13824) — البُعد الوسيط في الشبكة الأمامية.
  • freq_dim (int، القيمة الافتراضية 256) — البُعد الخاص بالتضمينات الزمنية الجيبية.
  • text_dim (int، القيمة الافتراضية 4096) — البُعد المدخل لتضمينات النص.
  • out_dim (int، القيمة الافتراضية 16) — عدد القنوات في المخرجات.
  • num_heads (int، القيمة الافتراضية 40) — عدد رؤوس الانتباه.
  • num_layers (int، القيمة الافتراضية 40) — عدد طبقات كتل التحويل (transformer blocks) المستخدمة.
  • cross_attn_norm (bool، القيمة الافتراضية True) — تفعيل تطبيع الانتباه المتقاطع.
  • eps (float، القيمة الافتراضية 1e-6) — قيمة إبسيلون لطبقات التطبيع.
  • use_img_emb (bool، القيمة الافتراضية True) — ما إذا كان سيتم استخدام تضمين صورة CLIP.
  • refer_offset_t (int، القيمة الافتراضية 1) — إزاحة RoPE للبعد الزمني للمرجع.
  • refer_offset_h (int، القيمة الافتراضية 0) — إزاحة RoPE لبُعد الارتفاع في المرجع.
  • refer_offset_w (int، القيمة الافتراضية -1) — إزاحة RoPE لبُعد العرض في المرجع. القيمة -1 تعني استخدام حجم شبكة التوليد.
  • refer_stride (int، القيمة الافتراضية 1) — خطوة تطبيق RoPE على المرجع.

نموذج Transformer لبيانات تشبه الفيديو يُستخدم في نموذج Wan-Animate-2.

يستخدم Wan-Animate-2 آلية انتباه سياقية مع ذاكرة تخزين مؤقت KV: يتم أولاً ترميز فيديو مرجعي (kv_cache_mode="extract") لملء [WanAnimate2KVCache]، ثم ينتبه كل خطوة إزالة ضوضاء (kv_cache_mode="cached") بشكل مشترك على رموز التوليد و K/V المرجعية المخزنة مؤقتًا عبر BlockMask مرن. لذلك، يعمل انتباه التوليد الذاتي حصريًا على واجهة انتباه flex؛ بينما يعمل أي انتباه آخر في النموذج على أي واجهة.

forward

< >

( hidden_states: listtimestep: Tensorencoder_hidden_states: listcondition_latents: listkv_cache: WanAnimate2KVCachekv_cache_mode: strseq_len: intencoder_hidden_states_image: typing.Optional[torch.Tensor] = Noneoffset_grid_sizes: typing.Optional[torch.Tensor] = Nonereference_grid_sizes: typing.Optional[torch.Tensor] = Noneorigin_len: int | None = Noneorigin_area: list[int] | None = Noneis_uncondtion: bool = Falsereturn_dict: bool = True ) → Transformer2DModelOutput or tuple(list[torch.Tensor])

المعاملات

  • hidden_states (list[torch.Tensor]) — القيم الكامنة لهذا المرور — القيم الكامنة المرجعية عندما يكون kv_cache_mode="extract"، والقيم الكامنة المولّدة مع الضوضاء عندما يكون kv_cache_mode="cached".
  • timestep (torch.Tensor) — خطوة إزالة الضوضاء. يتم تجاهلها عند استخدام kv_cache_mode="extract"، حيث تُستخدم خطوة ثابتة بقيمة 1.
  • encoder_hidden_states (list[torch.Tensor]) — تمثيلات النص لهذا المرور.
  • condition_latents (list[torch.Tensor]) — كعوب الشرط (Conditioning latents) المُدمجة مع hidden_states قبل تضمين البقع (patch embedding).
  • kv_cache (WanAnimate2KVCache) — يُكتب عند kv_cache_mode="extract"، ويُقرأ عند "cached".
  • kv_cache_mode (str) — "extract" ينفّذ المرور المرجعي ويملأ kv_cache؛ "cached" ينفّذ خطوة إزالة الضوضاء مقابل الرموز المرجعية المخزّنة مؤقتًا.
  • seq_len (int) — عدد الرموز التي يجب أن يحتويها كل عينة بعد تضمين الباتش.
  • encoder_hidden_states_image (torch.Tensor، اختياري) — تضمينات صور CLIP، تُستخدم عندما يتم تكوين النموذج باستخدام use_img_emb.
  • offset_grid_sizes (torch.Tensor، اختياري) — شبكة البقع (Patch grid) للكامنات المرجعية، تُستخدم لحل أي refer_offset_* مُعيّن على -1. مطلوب عند kv_cache_mode="extract"؛ أما عند "cached"، فتصف reference_grid_sizes الشبكة نفسها وتُستخدم بدلاً منها.
  • reference_grid_sizes (torch.Tensor، اختياري) — شبكة البقع (Patch grid) للكامنات المرجعية (reference latents)، وتُستخدم للتضمينات الدورانية المرجعية (reference rotary embeddings). مطلوب عند kv_cache_mode="cached".
  • origin_len (int، اختياري) — عدد الإطارات في الفيديو الكامل، الذي يُبنى عليه قناع الكتلة داخل السياق. مطلوب عند kv_cache_mode="cached".
  • origin_area (list[int]، اختياري) — الحجم المكاني [height, width] للفيديو الكامل، الذي يُبنى عليه قناع كتلة السياق. مطلوب عند kv_cache_mode="cached".
  • is_uncondtion (bool، اختياري) — ما إذا كان هذا هو الفرع غير الشرطي لـ classifier-free guidance.
  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع ~models.transformer_2d.Transformer2DModelOutput بدلاً من tuple عادي.

يعيد

Transformer2DModelOutput أو tuple(list[torch.Tensor])

العينة المتنبأ بها لكل مدخل كامن، غير مُقسّمة إلى بقع؛ وهي مجموعة (tuple) عادية إذا كان return_dict هو False.

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