Diffusers documentation
معالج الانتباه
معالج الانتباه
معالج الانتباه هو فئة لتطبيق أنواع مختلفة من آليات الانتباه.
AttnProcessor
المعالج الافتراضي لتنفيذ العمليات الحسابية المتعلقة بالانتباه.
المعالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0).
المعالج لتنفيذ عمليات الحساب المتعلقة بالانتباه مع مصفوفات مفتاح وقيمة قابلة للتعلم إضافية لمشفّر النص
المعالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضياً إذا كنت تستخدم PyTorch 2.0)، مع مصفوفات مفتاح وقيمة قابلة للتعلم إضافية لمشفّر النص.
معالج لتنفيذ الانتباه البرقي (flash attention) باستخدام torch_npu. يدعم torch_npu أنواع البيانات fp16 وbf16 فقط. إذا تم استخدام fp32، فسيتم استخدام F.scaled_dot_product_attention للتحسب، لكن تأثير التسريع على NPU ليس ذا أهمية كبيرة.
معالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). يستخدم طبقات إسقاط مدمجة. بالنسبة لوحدات الانتباه الذاتي، يتم دمج جميع مصفوفات الإسقاط (أي الاستعلام، المفتاح، القيمة). أما بالنسبة لوحدات الانتباه المتقاطع، فتتم دمج مصفوفات إسقاط المفتاح والقيمة.
> هذه الواجهة البرمجية (API) تجريبية 🧪 في الوقت الحالي وقد تتغير في المستقبل.
Allegro
المعالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). يُستخدم هذا في نموذج Allegro. إنه يطبّق طبقة تطبيع وتضمين دوّاري على متجه الاستعلام ومتجه المفتاح.
AuraFlow
معالج الانتباه المستخدم عادةً في معالجة Aura Flow.
معالج الانتباه المستخدم عادةً في معالجة Aura Flow مع الإسقاطات المدمجة.
CogVideoX
معالج لتنفيذ الانتباه المتدرج بنقطة الضرب (scaled dot-product attention) لنموذج CogVideoX. يطبّق تضمينًا دوّاريًا (rotary embedding) على متجهات الاستعلام والمفتاح، لكنه لا يتضمن تطبيعًا مكانيًا.
معالج لتنفيذ الانتباه المتدرج بنقطة الضرب (scaled dot-product attention) لنموذج CogVideoX. يطبّق تضمينًا دوّاريًا (rotary embedding) على متجهات الاستعلام والمفتاح، لكنه لا يتضمن تطبيعًا مكانيًا.
DreamLite
معالج لتنفيذ الانتباه المتدرج بناتج نقطي مع دعم الانتباه الاستعلامي المجمّع (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
< source >( 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
< source >( 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
< source >( 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
المعالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0).
Hunyuan
المعالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). يُستخدم هذا في نموذج HunyuanDiT. إنه يطبّق طبقة تطبيع s وتضمين دوّاري على متجه الاستعلام ومتجه المفتاح.
معالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0) مع طبقات إسقاط مدمجة. يُستخدم هذا في نموذج HunyuanDiT. إنه يطبّق طبقة تطبيع s وتضمين دوّاري على متجه الاستعلام ومتجه المفتاح.
معالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). يُستخدم هذا في نموذج HunyuanDiT. يطبّق طبقة تطبيع وتضمين دوّاري على متجهات الاستعلام والمفتاح. يعتمد هذا المتغير من المعالج على Pertubed Attention Guidance.
معالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). يُستخدم هذا في نموذج HunyuanDiT. يطبّق طبقة تطبيع وتضمين دوّاري على متجهات الاستعلام والمفتاح. يعتمد هذا المتغير من المعالج على Pertubed Attention Guidance.
IdentitySelfAttnProcessor2_0
المعالج لتنفيذ PAG باستخدام الانتباه بنقطة الضرب المُقيّمة (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). مرجع PAG: https://huggingface.co/papers/2403.17377
المعالج لتنفيذ PAG باستخدام الانتباه بنقطة الضرب المُقيّمة (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). مرجع PAG: https://huggingface.co/papers/2403.17377
IP-Adapter
فئة diffusers.models.attention_processor.IPAdapterAttnProcessor
< source >( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0 )
معالج الانتباه لعدة محولات IP-Adapter.
فئة diffusers.models.attention_processor.IPAdapterAttnProcessor2_0
< source >( hidden_sizecross_attention_dim = Nonenum_tokens = (4,)scale = 1.0 )
المعاملات
معالج الانتباه لـ IP-Adapter في PyTorch 2.0.
فئة diffusers.models.attention_processor.SD3IPAdapterJointAttnProcessor2_0
< source >( hidden_size: intip_hidden_states_dim: inthead_dim: inttimesteps_emb_dim: int = 1280scale: float = 0.5 )
معالج الانتباه الخاص بـ IP-Adapter، يُستخدم عادةً في معالجة إسقاطات الانتباه الذاتي المشابهة لـ SD3، مع معلومات إضافية مبنية على الصور وتضمينات خطوات الزمن.
JointAttnProcessor2_0
معالج الانتباه المستخدم عادةً في معالجة إسقاطات الانتباه الذاتي المشابهة لـ SD3.
معالج الانتباه المستخدم عادةً في معالجة إسقاطات الانتباه الذاتي المشابهة لـ SD3.
معالج الانتباه المستخدم عادةً في معالجة إسقاطات الانتباه الذاتي المشابهة لـ SD3.
معالج الانتباه المستخدم عادةً في معالجة إسقاطات الانتباه الذاتي المشابهة لـ SD3.
LoRA
معالج لتنفيذ الانتباه باستخدام LoRA.
المعالج لتنفيذ الانتباه مع LoRA (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0).
المعالج لتنفيذ الانتباه مع LoRA مصحوبًا بمصفوفات مفاتيح وقيم قابلة للتعلم إضافية لمشفّر النص.
معالج لتنفيذ الانتباه باستخدام LoRA مع xFormers.
Lumina-T2X
المعالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). يُستخدم هذا في نموذج LuminaNextDiT. إنه يطبّق طبقة تطبيع s وتضمين دوّاري على متجهات الاستعلام والمفتاح.
Mochi
معالج الانتباه المستخدم في Mochi.
معالج الانتباه المستخدم في Mochi VAE.
Sana
معالج لتنفيذ الانتباه الخطي بنقطة منتج مُقَيَّس.
معالج لتنفيذ الانتباه التربيعي متعدد المقاييس.
معالج لتنفيذ الانتباه الخطي بنقطة منتج مُقَيَّس.
معالج لتنفيذ الانتباه الخطي بنقطة منتج مُقَيَّس.
Stable Audio
المعالج لتنفيذ الانتباه المتدرج بنقطة الضرب (مُفعّل افتراضيًا إذا كنت تستخدم PyTorch 2.0). يُستخدم هذا في نموذج Stable Audio. إنه يطبّق التضمين الدوّاري على متجه الاستعلام ومتجه المفتاح، ويسمح بـ MHA أو GQA أو MQA.
SlicedAttnProcessor
فئة diffusers.models.attention_processor.SlicedAttnProcessor
< source >( slice_size: int )
معالج لتنفيذ الانتباه المقطّع.
فئة diffusers.models.attention_processor.SlicedAttnAddedKVProcessor
< source >( slice_size )
معالج لتنفيذ الانتباه المقطعي مع مصفوفات مفتاح وقيمة قابلة للتعلم إضافية لمشفّر النص.
XFormersAttnProcessor
فئة diffusers.models.attention_processor.XFormersAttnProcessor
< source >( attention_op: Callable | None = None )
المعاملات
- attention_op (
Callable، اختياري، القيمة الافتراضيةNone) — المُشغِّل الأساسي operator الذي يُستخدم كمُشغِّل الانتباه. يُوصى بإعداده إلىNone، والسماح لـ xFormers باختيار أفضل مُشغِّل.
معالج لتنفيذ الانتباه الموفّر للذاكرة باستخدام xFormers.
فئة diffusers.models.attention_processor.XFormersAttnAddedKVProcessor
< source >( attention_op: Callable | None = None )
المعاملات
- attention_op (
Callable، اختياري، القيمة الافتراضيةNone) — المُشغِّل الأساسي operator الذي يُستخدم كمُشغِّل الانتباه. يُوصى بإعداده إلىNone، والسماح لـ xFormers باختيار أفضل مُشغِّل.
معالج لتنفيذ الانتباه الموفّر للذاكرة باستخدام xFormers.
XLAFlashAttnProcessor2_0
فئة diffusers.models.attention_processor.XLAFlashAttnProcessor2_0
< source >( partition_spec: tuple[str | None, ...] | None = None )
معالج لتنفيذ الانتباه المتدرج بنقطة الضرب مع نواة فلاش انتباه بالاس عند استخدام torch_xla.
XFormersJointAttnProcessor
فئة diffusers.models.attention_processor.XFormersJointAttnProcessor
< source >( attention_op: Callable | None = None )
المعاملات
- attention_op (
Callable، اختياري، القيمة الافتراضيةNone) — المُشغِّل الأساسي operator الذي يُستخدم كمُشغِّل الانتباه. يُوصى بإعداده إلىNone، والسماح لـ xFormers باختيار أفضل مُشغِّل.
معالج لتنفيذ الانتباه الموفّر للذاكرة باستخدام xFormers.
IPAdapterXFormersAttnProcessor
فئة diffusers.models.attention_processor.IPAdapterXFormersAttnProcessor
< source >( 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
< source >( *args**kwargs )
XLAFluxFlashAttnProcessor2_0
معالج لتنفيذ الانتباه المتدرج بنقطة الضرب مع نواة فلاش انتباه بالاس عند استخدام torch_xla.