Diffusers documentation

معالج الانتباه

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

معالج الانتباه

معالج الانتباه هو فئة لتطبيق أنواع مختلفة من آليات الانتباه.

AttnProcessor

فئة diffusers.models.attention_processor.AttnProcessor

< >

( )

المعالج الافتراضي لتنفيذ العمليات الحسابية المتعلقة بالانتباه.

فئة diffusers.models.attention_processor.AttnProcessor2_0

< >

( )

المعالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0).

فئة diffusers.models.attention_processor.AttnAddedKVProcessor

< >

( )

المعالج لتنفيذ عمليات الحساب المتعلقة بالانتباه مع مصفوفات مفتاح وقيمة قابلة للتعلم إضافية لمشفّر النص

فئة diffusers.models.attention_processor.AttnAddedKVProcessor2_0

< >

( )

المعالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضياً إذا كنت تستخدم PyTorch 2.0)، مع مصفوفات مفتاح وقيمة قابلة للتعلم إضافية لمشفّر النص.

فئة diffusers.models.attention_processor.AttnProcessorNPU

< >

( )

معالج لتنفيذ الانتباه البرقي (flash attention) باستخدام torch_npu. يدعم torch_npu أنواع البيانات fp16 وbf16 فقط. إذا تم استخدام fp32، فسيتم استخدام F.scaled_dot_product_attention للتحسب، لكن تأثير التسريع على NPU ليس ذا أهمية كبيرة.

فئة diffusers.models.attention_processor.FusedAttnProcessor2_0

< >

( )

معالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). يستخدم طبقات إسقاط مدمجة. بالنسبة لوحدات الانتباه الذاتي، يتم دمج جميع مصفوفات الإسقاط (أي الاستعلام، المفتاح، القيمة). أما بالنسبة لوحدات الانتباه المتقاطع، فتتم دمج مصفوفات إسقاط المفتاح والقيمة.

> هذه الواجهة البرمجية (API) تجريبية 🧪 في الوقت الحالي وقد تتغير في المستقبل.

Allegro

فئة diffusers.models.attention_processor.AllegroAttnProcessor2_0

< >

( )

المعالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). يُستخدم هذا في نموذج Allegro. إنه يطبّق طبقة تطبيع وتضمين دوّاري على متجه الاستعلام ومتجه المفتاح.

AuraFlow

فئة diffusers.models.attention_processor.AuraFlowAttnProcessor2_0

< >

( )

معالج الانتباه المستخدم عادةً في معالجة Aura Flow.

فئة diffusers.models.attention_processor.FusedAuraFlowAttnProcessor2_0

< >

( )

معالج الانتباه المستخدم عادةً في معالجة Aura Flow مع الإسقاطات المدمجة.

CogVideoX

فئة diffusers.models.attention_processor.CogVideoXAttnProcessor2_0

< >

( )

معالج لتنفيذ الانتباه المتدرج بنقطة الضرب (scaled dot-product attention) لنموذج CogVideoX. يطبّق تضمينًا دوّاريًا (rotary embedding) على متجهات الاستعلام والمفتاح، لكنه لا يتضمن تطبيعًا مكانيًا.

فئة diffusers.models.attention_processor.FusedCogVideoXAttnProcessor2_0

< >

( )

معالج لتنفيذ الانتباه المتدرج بنقطة الضرب (scaled dot-product attention) لنموذج CogVideoX. يطبّق تضمينًا دوّاريًا (rotary embedding) على متجهات الاستعلام والمفتاح، لكنه لا يتضمن تطبيعًا مكانيًا.

DreamLite

class diffusers.models.unets.unet_dreamlite.DreamLiteAttnProcessor2_0

< >

( )

معالج لتنفيذ الانتباه المتدرج بناتج نقطي مع دعم الانتباه الاستعلامي المجمّع (GQA / MQA).

يُطابق AttnProcessor2_0 باستثناء أن فرع إعادة تشكيل المفتاح/القيمة يتعامل بشكل صحيح مع attn.kv_heads != attn.heads من خلال إعادة تشكيل K/V إلى kv_heads ثم تكرارها باستخدام repeat_interleave حتى attn.heads. هذا مطلوب بواسطة DreamLite UNet، الذي يجمع بين GQA وqk_norm — وهي مجموعة لا يتعامل معها AttnProcessor2_0 الافتراضي. يتم تفويض SDPA إلى dispatch_attention_fn بحيث يمكن استخدام أي من واجهات الانتباه في diffusers (SDPA الأصلي في PyTorch، FlashAttention، إلخ).

Custom Diffusion

فئة diffusers.models.attention_processor.CustomDiffusionAttnProcessor

< >

( train_kv: bool = Truetrain_q_out: bool = Truehidden_size: int | None = Nonecross_attention_dim: int | None = Noneout_bias: bool = Truedropout: float = 0.0 )

المعاملات

  • train_kv (bool، القيمة الافتراضية True) — ما إذا كان سيتم تدريب مصفوفات المفاتيح والقيم المقابلة لميزات النص بشكل جديد.
  • train_q_out (bool، القيمة الافتراضية True) — ما إذا كان سيتم تدريب مصفوفات الاستعلام الجديدة المقابلة لميزات الصورة الكامنة.
  • hidden_size (int، اختياري، القيمة الافتراضية None) — حجم الطبقة المخفية لطبقة الانتباه.
  • cross_attention_dim (int، اختياري، القيمة الافتراضية None) — عدد القنوات في encoder_hidden_states.
  • out_bias (bool، القيمة الافتراضية True) — ما إذا كان يجب تضمين معامل الانحياز في train_q_out.
  • dropout (float, اختياري، القيمة الافتراضية 0.0) — احتمالية dropout المستخدمة.

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

فئة diffusers.models.attention_processor.CustomDiffusionAttnProcessor2_0

< >

( train_kv: bool = Truetrain_q_out: bool = Truehidden_size: int | None = Nonecross_attention_dim: int | None = Noneout_bias: bool = Truedropout: float = 0.0 )

المعاملات

  • train_kv (bool، القيمة الافتراضية True) — ما إذا كان سيتم تدريب مصفوفات المفاتيح والقيم المقابلة لميزات النص بشكل جديد.
  • train_q_out (bool، القيمة الافتراضية True) — ما إذا كان سيتم تدريب مصفوفات الاستعلام الجديدة المقابلة لميزات الصورة الكامنة.
  • hidden_size (int، اختياري، القيمة الافتراضية None) — حجم الطبقة المخفية لطبقة الانتباه.
  • cross_attention_dim (int، اختياري، القيمة الافتراضية None) — عدد القنوات في encoder_hidden_states.
  • out_bias (bool، القيمة الافتراضية True) — ما إذا كان يجب تضمين معامل الانحياز في train_q_out.
  • dropout (float, اختياري، القيمة الافتراضية 0.0) — احتمالية dropout المستخدمة.

معالج لتنفيذ الانتباه (Attention) لطريقة التخصيص المخصص (Custom Diffusion) باستخدام الانتباه النقطي المتدرج الموفر للذاكرة في PyTorch 2.0.

فئة diffusers.models.attention_processor.CustomDiffusionXFormersAttnProcessor

< >

( train_kv: bool = Truetrain_q_out: bool = Falsehidden_size: int | None = Nonecross_attention_dim: int | None = Noneout_bias: bool = Truedropout: float = 0.0attention_op: Callable | None = None )

المعاملات

  • train_kv (bool، القيمة الافتراضية True) — ما إذا كان سيتم تدريب مصفوفات المفاتيح والقيم المقابلة لميزات النص بشكل جديد.
  • train_q_out (bool، القيمة الافتراضية True) — ما إذا كان سيتم تدريب مصفوفات الاستعلام الجديدة المقابلة لميزات الصورة الكامنة.
  • hidden_size (int، اختياري، القيمة الافتراضية None) — حجم الطبقة المخفية لطبقة الانتباه.
  • cross_attention_dim (int، اختياري، القيمة الافتراضية None) — عدد القنوات في encoder_hidden_states.
  • out_bias (bool، القيمة الافتراضية True) — ما إذا كان يجب تضمين معامل الانحياز في train_q_out.
  • dropout (float, اختياري، القيمة الافتراضية 0.0) — احتمالية dropout المستخدمة.
  • attention_op (Callable، اختياري، القيمة الافتراضية None) — المُشغِّل الأساسي operator الذي يُستخدم كمُشغِّل للانتباه. يُوصى بإعداد القيمة إلى None، والسماح لـ xFormers باختيار أفضل مُشغِّل.

المعالج لتنفيذ الانتباه الموفّر للذاكرة باستخدام xFormers لطريقة Custom Diffusion.

Flux

فئة diffusers.models.attention_processor.FluxAttnProcessor2_0

< >

( *args**kwargs )

فئة diffusers.models.attention_processor.FusedFluxAttnProcessor2_0

< >

( *args**kwargs )

فئة diffusers.models.attention_processor.FluxSingleAttnProcessor2_0

< >

( *args**kwargs )

المعالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0).

Hunyuan

فئة diffusers.models.attention_processor.HunyuanAttnProcessor2_0

< >

( )

المعالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). يُستخدم هذا في نموذج HunyuanDiT. إنه يطبّق طبقة تطبيع s وتضمين دوّاري على متجه الاستعلام ومتجه المفتاح.

فئة diffusers.models.attention_processor.FusedHunyuanAttnProcessor2_0

< >

( )

معالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0) مع طبقات إسقاط مدمجة. يُستخدم هذا في نموذج HunyuanDiT. إنه يطبّق طبقة تطبيع s وتضمين دوّاري على متجه الاستعلام ومتجه المفتاح.

فئة diffusers.models.attention_processor.PAGHunyuanAttnProcessor2_0

< >

( )

معالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). يُستخدم هذا في نموذج HunyuanDiT. يطبّق طبقة تطبيع وتضمين دوّاري على متجهات الاستعلام والمفتاح. يعتمد هذا المتغير من المعالج على Pertubed Attention Guidance.

فئة diffusers.models.attention_processor.PAGCFGHunyuanAttnProcessor2_0

< >

( )

معالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). يُستخدم هذا في نموذج HunyuanDiT. يطبّق طبقة تطبيع وتضمين دوّاري على متجهات الاستعلام والمفتاح. يعتمد هذا المتغير من المعالج على Pertubed Attention Guidance.

IdentitySelfAttnProcessor2_0

فئة diffusers.models.attention_processor.PAGIdentitySelfAttnProcessor2_0

< >

( )

المعالج لتنفيذ PAG باستخدام الانتباه بنقطة الضرب المُقيّمة (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). مرجع PAG: https://huggingface.co/papers/2403.17377

فئة diffusers.models.attention_processor.PAGCFGIdentitySelfAttnProcessor2_0

< >

( )

المعالج لتنفيذ PAG باستخدام الانتباه بنقطة الضرب المُقيّمة (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). مرجع PAG: https://huggingface.co/papers/2403.17377

IP-Adapter

فئة diffusers.models.attention_processor.IPAdapterAttnProcessor

< >

( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0 )

المعاملات

  • hidden_size (int) — حجم الطبقة المخفية لطبقة الانتباه.
  • cross_attention_dim (int) — عدد القنوات في encoder_hidden_states.
  • num_tokens (int أو tuple[int] أو list[int]، القيمة الافتراضية (4,)) — طول سياق ميزات الصورة.
  • scale (float أو قائمةfloat، القيمة الافتراضية 1.0) — مقياس وزن موجه الصورة.

معالج الانتباه لعدة محولات IP-Adapter.

فئة diffusers.models.attention_processor.IPAdapterAttnProcessor2_0

< >

( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0 )

المعاملات

  • hidden_size (int) — حجم الطبقة المخفية لطبقة الانتباه.
  • cross_attention_dim (int) — عدد القنوات في encoder_hidden_states.
  • num_tokens (int أو tuple[int] أو list[int]، القيمة الافتراضية (4,)) — طول سياق ميزات الصورة.
  • scale (float أو list[float]، القيمة الافتراضية 1.0) — مقياس وزن موجه الصورة.

معالج الانتباه لـ IP-Adapter في PyTorch 2.0.

فئة diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0

< >

( hidden_size: intip_hidden_states_dim: inthead_dim: inttimesteps_emb_dim: int = 1280scale: float = 0.5 )

المعاملات

  • hidden_size (int) — عدد القنوات المخفية.
  • ip_hidden_states_dim (int) — أبعاد ميزات الصورة.
  • head_dim (int) — عدد قنوات الرأس.
  • timesteps_emb_dim (int، القيمة الافتراضية 1280) — عدد قنوات الإدخال لتضمين خطوة الزمن.
  • scale (float، القيمة الافتراضية 0.5) — مقياس IP-Adapter.

معالج الانتباه الخاص بـ IP-Adapter، يُستخدم عادةً في معالجة إسقاطات الانتباه الذاتي المشابهة لـ SD3، مع معلومات إضافية مبنية على الصور وتضمينات خطوات الزمن.

JointAttnProcessor2_0

فئة diffusers.models.attention_processor.JointAttnProcessor2_0

< >

( )

معالج الانتباه المستخدم عادةً في معالجة إسقاطات الانتباه الذاتي المشابهة لـ SD3.

فئة diffusers.models.attention_processor.PAGJointAttnProcessor2_0

< >

( )

معالج الانتباه المستخدم عادةً في معالجة إسقاطات الانتباه الذاتي المشابهة لـ SD3.

فئة diffusers.models.attention_processor.PAGCFGJointAttnProcessor2_0

< >

( )

معالج الانتباه المستخدم عادةً في معالجة إسقاطات الانتباه الذاتي المشابهة لـ SD3.

فئة diffusers.models.attention_processor.FusedJointAttnProcessor2_0

< >

( )

معالج الانتباه المستخدم عادةً في معالجة إسقاطات الانتباه الذاتي المشابهة لـ SD3.

LoRA

فئة diffusers.models.attention_processor.LoRAAttnProcessor

< >

( )

معالج لتنفيذ الانتباه باستخدام LoRA.

فئة diffusers.models.attention_processor.LoRAAttnProcessor2_0

< >

( )

المعالج لتنفيذ الانتباه مع LoRA (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0).

فئة diffusers.models.attention_processor.LoRAAttnAddedKVProcessor

< >

( )

المعالج لتنفيذ الانتباه مع LoRA مصحوبًا بمصفوفات مفاتيح وقيم قابلة للتعلم إضافية لمشفّر النص.

فئة diffusers.models.attention_processor.LoRAXFormersAttnProcessor

< >

( )

معالج لتنفيذ الانتباه باستخدام LoRA مع xFormers.

Lumina-T2X

فئة diffusers.models.attention_processor.LuminaAttnProcessor2_0

< >

( )

المعالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). يُستخدم هذا في نموذج LuminaNextDiT. إنه يطبّق طبقة تطبيع s وتضمين دوّاري على متجهات الاستعلام والمفتاح.

Mochi

فئة diffusers.models.attention_processor.MochiAttnProcessor2_0

< >

( )

معالج الانتباه المستخدم في Mochi.

فئة diffusers.models.attention_processor.MochiVaeAttnProcessor2_0

< >

( )

معالج الانتباه المستخدم في Mochi VAE.

Sana

فئة diffusers.models.attention_processor.SanaLinearAttnProcessor2_0

< >

( )

معالج لتنفيذ الانتباه الخطي بنقطة منتج مُقَيَّس.

فئة diffusers.models.attention_processor.SanaMultiscaleAttnProcessor2_0

< >

( )

معالج لتنفيذ الانتباه التربيعي متعدد المقاييس.

فئة diffusers.models.attention_processor.PAGCFGSanaLinearAttnProcessor2_0

< >

( )

معالج لتنفيذ الانتباه الخطي بنقطة منتج مُقَيَّس.

فئة diffusers.models.attention_processor.PAGIdentitySanaLinearAttnProcessor2_0

< >

( )

معالج لتنفيذ الانتباه الخطي بنقطة منتج مُقَيَّس.

Stable Audio

فئة diffusers.models.attention_processor.StableAudioAttnProcessor2_0

< >

( )

المعالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). يُستخدم هذا في نموذج Stable Audio. إنه يطبّق التضمين الدوّاري على متجه الاستعلام ومتجه المفتاح، ويسمح بـ MHA أو GQA أو MQA.

SlicedAttnProcessor

فئة diffusers.models.attention_processor.SlicedAttnProcessor

< >

( slice_size: int )

المعاملات

  • slice_size (int, اختياري) — عدد الخطوات لحساب الانتباه. يستخدم عددًا من الشرائح يساوي attention_head_dim // slice_size، ويجب أن يكون attention_head_dim مضاعفًا لـ slice_size.

معالج لتنفيذ الانتباه المقطّع.

فئة diffusers.models.attention_processor.SlicedAttnAddedKVProcessor

< >

( slice_size )

المعاملات

  • slice_size (int, اختياري) — عدد الخطوات لحساب الانتباه. يستخدم عددًا من الشرائح يساوي attention_head_dim // slice_size، ويجب أن يكون attention_head_dim مضاعفًا لـ slice_size.

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

XFormersAttnProcessor

فئة diffusers.models.attention_processor.XFormersAttnProcessor

< >

( attention_op: Callable | None = None )

المعاملات

  • attention_op (Callable، اختياري، القيمة الافتراضية None) — المُشغِّل الأساسي operator الذي يُستخدم كمُشغِّل الانتباه. يُوصى بإعداده إلى None، والسماح لـ xFormers باختيار أفضل مُشغِّل.

معالج لتنفيذ الانتباه الموفّر للذاكرة باستخدام xFormers.

فئة diffusers.models.attention_processor.XFormersAttnAddedKVProcessor

< >

( attention_op: Callable | None = None )

المعاملات

  • attention_op (Callable، اختياري، القيمة الافتراضية None) — المُشغِّل الأساسي operator الذي يُستخدم كمُشغِّل الانتباه. يُوصى بإعداده إلى None، والسماح لـ xFormers باختيار أفضل مُشغِّل.

معالج لتنفيذ الانتباه الموفّر للذاكرة باستخدام xFormers.

XLAFlashAttnProcessor2_0

فئة diffusers.models.attention_processor.XLAFlashAttnProcessor2_0

< >

( partition_spec: tuple[str | None, ...] | None = None )

معالج لتنفيذ الانتباه المتدرج بنقطة الضرب مع نواة فلاش انتباه بالاس عند استخدام torch_xla.

XFormersJointAttnProcessor

فئة diffusers.models.attention_processor.XFormersJointAttnProcessor

< >

( attention_op: Callable | None = None )

المعاملات

  • attention_op (Callable، اختياري، القيمة الافتراضية None) — المُشغِّل الأساسي operator الذي يُستخدم كمُشغِّل الانتباه. يُوصى بإعداده إلى None، والسماح لـ xFormers باختيار أفضل مُشغِّل.

معالج لتنفيذ الانتباه الموفّر للذاكرة باستخدام xFormers.

IPAdapterXFormersAttnProcessor

فئة diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor

< >

( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0attention_op: Callable | None = None )

المعاملات

  • hidden_size (int) — حجم الطبقة المخفية لطبقة الانتباه.
  • cross_attention_dim (int) — عدد القنوات في encoder_hidden_states.
  • num_tokens (int أو tuple[int] أو list[int]، القيمة الافتراضية (4,)) — طول سياق ميزات الصورة.
  • scale (float أو list[float]، القيمة الافتراضية 1.0) — مقياس وزن موجه الصورة.
  • attention_op (Callable، اختياري، القيمة الافتراضية None) — المُشغِّل الأساسي operator الذي يُستخدم كمُشغِّل الانتباه. يُوصى بإعداده إلى None، والسماح لـ xFormers باختيار أفضل مُشغِّل.

معالج الانتباه لـ IP-Adapter باستخدام xFormers.

FluxIPAdapterJointAttnProcessor2_0

فئة diffusers.models.attention_processor.FluxIPAdapterJointAttnProcessor2_0

< >

( *args**kwargs )

XLAFluxFlashAttnProcessor2_0

فئة diffusers.models.attention_processor.XLAFluxFlashAttnProcessor2_0

< >

( *args**kwargs )

معالج لتنفيذ الانتباه المتدرج بنقطة الضرب مع نواة فلاش انتباه بالاس عند استخدام torch_xla.

Update on GitHub