Diffusers documentation
CogVideoXTransformer3DModel
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
< source >( 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
< source >( 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 الأمامية.
يعطّل إسقاط QKV المدمج إذا كان مفعّلًا.
> هذه الواجهة البرمجية 🧪 تجريبية.
Transformer2DModelOutput
فئة diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( 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.