Diffusers documentation

PixArtTransformer2DModel

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

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 = Nonecross_attention_kwargs: dict = 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