Diffusers documentation

CogVideoXTransformer3DModel

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

CogVideoXTransformer3DModel

A Diffusion Transformer model for 3D data from CogVideoX was introduced in CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer by Tsinghua University & ZhipuAI.

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

from diffusers import CogVideoXTransformer3DModel

transformer = CogVideoXTransformer3DModel.from_pretrained("THUDM/CogVideoX-2b", subfolder="transformer", dtype=torch.float16).to("cuda")  # or "mps", "xpu", "cpu"

CogVideoXTransformer3DModel

فئة diffusers.CogVideoXTransformer3DModel

< >

( num_attention_heads: int = 30attention_head_dim: int = 64in_channels: int = 16out_channels: int | None = 16flip_sin_to_cos: bool = Truefreq_shift: int = 0time_embed_dim: int = 512ofs_embed_dim: int | None = Nonetext_embed_dim: int = 4096num_layers: int = 30dropout: float = 0.0attention_bias: bool = Truesample_width: int = 90sample_height: int = 60sample_frames: int = 49patch_size: int = 2patch_size_t: int | None = Nonetemporal_compression_ratio: int = 4max_text_seq_length: int = 226activation_fn: str = 'gelu-approximate'timestep_activation_fn: str = 'silu'norm_elementwise_affine: bool = Truenorm_eps: float = 1e-05spatial_interpolation_scale: float = 1.875temporal_interpolation_scale: float = 1.0use_rotary_positional_embeddings: bool = Falseuse_learned_positional_embeddings: bool = Falsepatch_bias: bool = True )

المعاملات

  • num_attention_heads (int، القيمة الافتراضية 30) — عدد الرؤوس المستخدمة في الانتباه متعدد الرؤوس.
  • attention_head_dim (int، القيمة الافتراضية 64) — عدد القنوات في كل رأس.
  • in_channels (int)، القيمة الافتراضية 16 — عدد القنوات في المدخلات.
  • out_channels (int، اختياري، القيمة الافتراضية 16) — عدد القنوات في المخرجات.
  • flip_sin_to_cos (bool، القيمة الافتراضية True) — ما إذا كان يجب عكس sin إلى cos في تضمين الوقت.
  • time_embed_dim (int، القيمة الافتراضية 512) — البُعد الناتج لتضمينات خطوات الزمن.
  • ofs_embed_dim (int، القيمة الافتراضية 512) — البُعد الناتج لتضمينات “ofs” المستخدمة في CogVideoX-5b-I2B في الإصدار 1.5
  • text_embed_dim (int، القيمة الافتراضية 4096) — البُعد المدخل لتضمينات النص من مُشفِّر النص.
  • num_layers (int، القيمة الافتراضية 30) — عدد طبقات كتل Transformer المستخدمة.
  • dropout (float، القيمة الافتراضية 0.0) — احتمالية dropout المستخدمة.
  • attention_bias (bool، القيمة الافتراضية True) — ما إذا كان سيتم استخدام الانحياز في طبقات الإسقاط الانتباه.
  • sample_width (int، القيمة الافتراضية 90) — عرض الكامنات المدخلة.
  • sample_height (int، القيمة الافتراضية 60) — ارتفاع الكامنات المدخلة.
  • sample_frames (int، القيمة الافتراضية 49) — عدد الإطارات في المتغيرات الكامنة المدخلة. لاحظ أن هذا المعامل تم تهيئته بشكل غير صحيح إلى 49 بدلاً من 13، لأن CogVideoX كان يعالج 13 إطارًا كامنًا دفعة واحدة في إعداداته الافتراضية والموصى بها، لكن لا يمكن تغييره إلى القيمة الصحيحة لضمان التوافق مع الإصدارات السابقة. لإنشاء محول يحتوي على K إطارًا كامنًا، فإن القيمة الصحيحة التي يجب تمريرها هنا هي: ((K - 1) * temporal_compression_ratio + 1).
  • patch_size (int، القيمة الافتراضية 2) — حجم البقع المستخدمة في طبقة تضمين البقع.
  • temporal_compression_ratio (int، القيمة الافتراضية 4) — نسبة الضغط عبر البُعد الزمني. راجع التوثيق الخاص بـsample_frames.
  • max_text_seq_length (int، القيمة الافتراضية 226) — الحد الأقصى لطول تسلسل تمثيلات النص المدخلة.
  • activation_fn (str، القيمة الافتراضية "gelu-approximate") — دالة التنشيط المستخدمة في الشبكة العصبية الأمامية.
  • timestep_activation_fn (str، القيمة الافتراضية "silu") — دالة التنشيط المستخدمة عند توليد تضمينات خطوة الزمن.
  • norm_elementwise_affine (bool، القيمة الافتراضية True) — ما إذا كان سيتم استخدام التحويل الأفيني العنصري في طبقات التطبيع.
  • norm_eps (float، القيمة الافتراضية 1e-5) — قيمة الإيبسلون المستخدمة في طبقات التطبيع.
  • spatial_interpolation_scale (float، القيمة الافتراضية 1.875) — معامل التوسيع الذي يُطبَّق في التضمينات الموضعية ثلاثية الأبعاد عبر الأبعاد المكانية.
  • temporal_interpolation_scale (float، القيمة الافتراضية 1.0) — معامل التوسيع الذي يُطبَّق في التضمينات الموضعية ثلاثية الأبعاد عبر الأبعاد الزمنية.

نموذج Transformer لبيانات تشبه الفيديو في CogVideoX.

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensortimestep: typing.Union[int, float, torch.LongTensor]timestep_cond: typing.Optional[torch.Tensor] = Noneofs: typing.Union[int, float, torch.LongTensor, NoneType] = Noneimage_rotary_emb: tuple[torch.Tensor, torch.Tensor] | None = Noneattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True )

المعاملات

  • hidden_states (torch.Tensor من الشكل (batch_size, num_frames, channels, height, width)) — مدخلات hidden_states.
  • encoder_hidden_states (torch.Tensor من الشكل (batch_size, sequence_len, embed_dims)) — تضمينات شرطية (تضمينات محسوبة من الشروط المدخلة مثل الأوامر النصية) للاستخدام.
  • timestep (torch.LongTensor) — يُستخدم للإشارة إلى خطوة إزالة الضوضاء.
  • timestep_cond (torch.Tensor، اختياري) — تضمينات شرطية لخطوة الزمن. إذا تم توفيرها، سيتم جمع التضمينات مع العينات المارة عبر طبقة self.time_embedding للحصول على تضمينات خطوة الزمن النهائية.
  • ofs (torch.Tensor، اختياري) — تضمينات الإزاحة المستخدمة في CogVideoX-5b-I2V.
  • image_rotary_emb (tuple من torch.Tensor، اختياري) — تضمينات موضعية دوّارة محسوبة مسبقًا.
  • attention_kwargs (dict، اختياري) — قاموس kwargs يُمرَّر إلى AttentionProcessor إذا تم تحديده، كما هو معرَّف تحت self.processor في diffusers.models.attention_processor.
  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع ~models.transformer_2d.Transformer2DModelOutput بدلاً من tuple عادي.

طريقة CogVideoXTransformer3DModel الأمامية.

fuse_qkv_projections

< >

( )

…

> هذه الواجهة البرمجية 🧪 تجريبية.

unfuse_qkv_projections

< >

( )

يعطّل إسقاط QKV المدمج إذا كان مفعّلًا.

> هذه الواجهة البرمجية 🧪 تجريبية.

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