Diffusers documentation

PixArtTransformer2DModel

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

PixArtTransformer2DModel

نموذج Transformer للبيانات المشابهة للصور من PixArt-Alpha و PixArt-Sigma.

PixArtTransformer2DModel

فئة diffusers.PixArtTransformer2DModel

< >

( num_attention_heads: int = 16attention_head_dim: int = 72in_channels: int = 4out_channels: int | None = 8num_layers: int = 28dropout: float = 0.0norm_num_groups: int = 32cross_attention_dim: int | None = 1152attention_bias: bool = Truesample_size: int = 128patch_size: int = 2activation_fn: str = 'gelu-approximate'num_embeds_ada_norm: int | None = 1000upcast_attention: bool = Falsenorm_type: str = 'ada_norm_single'norm_elementwise_affine: bool = Falsenorm_eps: float = 1e-06interpolation_scale: int | None = Noneuse_additional_conditions: bool | None = Nonecaption_channels: int | None = Noneattention_type: str | None = 'default' )

المعاملات

  • num_attention_heads (int، اختياري، القيمة الافتراضية 16) — عدد الرؤوس المستخدمة في الانتباه متعدد الرؤوس.
  • attention_head_dim (int، اختياري، القيمة الافتراضية 72) — عدد القنوات في كل رأس.
  • in_channels (int، القيمة الافتراضية 4) — عدد القنوات في المدخلات.
  • out_channels (int, optional) — عدد القنوات في المخرجات. حدد هذا المعامل إذا كان عدد قنوات المخرجات يختلف عن المدخلات.
  • num_layers (int، اختياري، القيمة الافتراضية 28) — عدد طبقات كتل Transformer المستخدمة.
  • dropout (float، اختياري، القيمة الافتراضية 0.0) — احتمال الإسقاط (dropout) المستخدم داخل كتل Transformer.
  • norm_num_groups (int, اختياري، القيمة الافتراضية 32) — عدد المجموعات لتطبيع المجموعات داخل كتل Transformer.
  • cross_attention_dim (int, optional) — البُعد لطبقات الانتباه المتقاطع، وهو عادةً ما يطابق البُعد المخفي للمشفّر.
  • attention_bias (bool، اختياري، القيمة الافتراضية True) — تكوين ما إذا كان ينبغي أن تحتوي انتباه كتل Transformer على معامل انحياز.
  • sample_size (int، القيمة الافتراضية 128) — عرض الصور الكامنة. يتم تثبيت هذا المعامل أثناء التدريب.
  • patch_size (int، القيمة الافتراضية 2) — حجم البُقع التي يعالجها النموذج، وهو ذو صلة بالهياكل المعمارية التي تعمل على بيانات غير متسلسلة.
  • activation_fn (str, اختياري، القيمة الافتراضية “gelu-approximate”) — دالة التنشيط المستخدمة في الشبكات الأمامية داخل كتل Transformer.
  • num_embeds_ada_norm (int, اختياري، القيمة الافتراضية 1000) — عدد التضمينات الخاصة بـ AdaLayerNorm، وهو ثابت أثناء التدريب ويؤثر على عدد خطوات إزالة الضوضاء القصوى أثناء الاستدلال.
  • upcast_attention (bool، اختياري، الافتراضي False) — إذا كانت القيمة true، يتم رفع أبعاد آلية الانتباه (attention) لتحسين الأداء المحتمل.
  • norm_type (str، اختياري، القيمة الافتراضية “ada_norm_zero”) — يحدد نوع التطبيع المستخدم، ويمكن أن يكون ‘ada_norm_zero’.
  • norm_elementwise_affine (bool، اختياري، القيمة الافتراضية False) — إذا كانت القيمة صحيحة، يتم تفعيل معاملات التحويل الأفيني لكل عنصر في طبقات التطبيع.
  • norm_eps (float, اختياري، القيمة الافتراضية 1e-6) — ثابت صغير يُضاف إلى المقام في طبقات التطبيع لمنع القسمة على الصفر.
  • interpolation_scale (int، اختياري) — معامل المقياس المستخدم أثناء استيفاء تضمينات المواقع.
  • use_additional_conditions (bool, optional) — إذا كنا نستخدم شروطًا إضافية كمدخلات.
  • attention_type (str، اختياري، القيمة الافتراضية “default”) — نوع آلية الانتباه المستخدمة.
  • caption_channels (int، اختياري، القيمة الافتراضية None) — عدد القنوات المستخدمة لإسقاط تمثيلات الوصف.
  • use_linear_projection (bool، اختياري، القيمة الافتراضية False) — حجة غير مستحسنة. ستُحذف في إصدار مستقبلي.
  • num_vector_embeds (bool، اختياري، القيمة الافتراضية False) — حجة غير مستحسنة. ستُحذف في إصدار مستقبلي.

نموذج Transformer ثنائي الأبعاد كما تم تقديمه في عائلة نماذج PixArt (https://huggingface.co/papers/2310.00426، https://huggingface.co/papers/2403.04692).

forward

< >

( hidden_states: Tensorencoder_hidden_states: typing.Optional[torch.Tensor] = Nonetimestep: typing.Optional[torch.LongTensor] = Noneadded_cond_kwargs: dict[str, torch.Tensor] = Nonecross_attention_kwargs: dict[str, typing.Any] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True )

المعاملات

  • hidden_states (torch.FloatTensor من الشكل (batch size, channel, height, width)) — مدخلات hidden_states.
  • encoder_hidden_states (torch.FloatTensor من الشكل (batch size, sequence len, embed dims)، اختياري) — تضمينات شرطية لطبقة الانتباه المتقاطع. إذا لم تُقدَّم، فإن الانتباه المتقاطع يتحول افتراضيًا إلى الانتباه الذاتي.
  • timestep (torch.LongTensor، اختياري) — يُستخدم للإشارة إلى خطوة إزالة الضوضاء. خطوة زمنية اختيارية تُطبَّق كتمثيل مضمّن في AdaLayerNorm.
  • added_cond_kwargs — (dict[str, Any], اختياري): شروط إضافية تُستخدم كمدخلات.
  • cross_attention_kwargs ( dict[str, Any], اختياري) — قاموس kwargs يُمرَّر إلى AttentionProcessor كما هو معرَّف تحت self.processor في diffusers.models.attention_processor إذا تمَّ تحديده.
  • attention_mask ( torch.Tensor, اختياري) — قناع انتباه (attention mask) بأبعاد (batch, key_tokens) يُطبَّق على encoder_hidden_states. إذا كان 1 يُحفظ القناع، وإلا إذا كان 0 يُستبعد. يُحوَّل القناع إلى انحياز (bias) يضيف قيمًا سالبة كبيرة إلى درجات الانتباه المقابلة لرموز “الاستبعاد”.
  • encoder_attention_mask ( torch.Tensor, اختياري) — قناع الانتباه المتقاطع المطبّق على encoder_hidden_states. يُقبل صيغتان:
    • قناع (batch, sequence_length) True = احتفظ، False = استبعد.
    • الانحياز (batch, 1, sequence_length) 0 = الإبقاء، -10000 = التخلّي.

    إذا كان ndim == 2: سيتم تفسيره كقناع، ثم تحويله إلى انحياز متوافق مع التنسيق المذكور أعلاه. سيُضاف هذا الانحياز إلى درجات الانتباه المتقاطع.

  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع UNet2DConditionOutput بدلاً من tuple عادي.

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

fuse_qkv_projections

< >

( )

…

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

set_default_attn_processor

< >

( )

يعطّل معالجات الانتباه المخصصة ويضبط تطبيق الانتباه الافتراضي.

لا مشكلة في استخدام AttnProcessor() مباشرةً، إذ لا يحتوي نموذج PixArt الافتراضي على أي معالجات انتباه غير تقليدية.

unfuse_qkv_projections

< >

( )

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

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

Update on GitHub