Diffusers documentation

PriorTransformer

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

PriorTransformer

تم تقديم Prior Transformer في الأصل في Hierarchical Text-Conditional Image Generation with CLIP Latents بواسطة Ramesh وآخرون. يُستخدم للتنبؤ بتضمينات صور CLIP من تضمينات نصوص CLIP؛ حيث يتم التنبؤ بتضمينات الصور عبر عملية انتشار إزالة الضوضاء.

ملخص الورقة البحثية هو:

تبيّن أن النماذج التباينية مثل CLIP تتعلم تمثيلات قوية للصور تلتقط كلًا من الدلالات والأسلوب. وللاستفادة من هذه التمثيلات في توليد الصور، نقترح نموذجًا من مرحلتين: نموذج مسبق (prior) يولّد تمثيل صورة CLIP بناءً على وصف نصي، ومفكّك (decoder) يولّد صورة مشروطة على تمثيل الصورة. نُظهر أن توليد تمثيلات الصور بشكل صريح يحسّن تنوّع الصور مع خسارة ضئيلة في الواقعية الضوئية ومماثلة الوصف. كما يمكن لمفكّكاتنا المشروطة على تمثيلات الصور أن تنتج متغيرات لصورة تحافظ على دلالاتها وأسلوبها معًا، مع تغيير التفاصيل غير الجوهرية الغائبة عن تمثيل الصورة. علاوة على ذلك، يتيح الفضاء المضمّن المشترك لـ CLIP عمليات تعديل للصور موجّهة باللغة بطريقة صفرية التمثيل (zero-shot). نستخدم نماذج الانتشار (diffusion models) للمفكّك، ونجرّب كلًا من النماذج الذاتية التوليد (autoregressive) ونماذج الانتشار للنموذج المسبق، لنجد أن الأخيرة أكثر كفاءة من حيث الحسابات وتنتج عينات بجودة أعلى.

PriorTransformer

فئة diffusers.PriorTransformer

< >

( num_attention_heads: int = 32attention_head_dim: int = 64num_layers: int = 20embedding_dim: int = 768num_embeddings = 77additional_embeddings = 4dropout: float = 0.0time_embed_act_fn: str = 'silu'norm_in_type: str | None = Noneembedding_proj_norm_type: str | None = Noneencoder_hid_proj_type: str | None = 'linear'added_emb_type: str | None = 'prd'time_embed_dim: int | None = Noneembedding_proj_dim: int | None = Noneclip_embed_dim: int | None = None )

المعاملات

  • num_attention_heads (int، اختياري، القيمة الافتراضية 32) — عدد الرؤوس المستخدمة في الانتباه متعدد الرؤوس.
  • attention_head_dim (int، اختياري، القيمة الافتراضية 64) — عدد القنوات في كل رأس.
  • num_layers (int، اختياري، القيمة الافتراضية 20) — عدد طبقات كتل Transformer المستخدمة.
  • embedding_dim (int، اختياري، القيمة الافتراضية 768) — بُعد مدخلات النموذج hidden_states
  • num_embeddings (int، اختياري، القيمة الافتراضية 77) — عدد التضمينات (embeddings) لإمدادات النموذج hidden_states
  • additional_embeddings (int، اختياري، القيمة الافتراضية 4) — عدد الرموز الإضافية المضافة إلى hidden_states المُسقطة. الطول الفعلي لـhidden_states المستخدمة هو num_embeddings + additional_embeddings.
  • dropout (float, اختياري، القيمة الافتراضية 0.0) — احتمال dropout المستخدم.
  • time_embed_act_fn (str، اختياري، القيمة الافتراضية ‘silu’) — دالة التنشيط المستخدمة لإنشاء تمثيلات خطوات الزمن.
  • norm_in_type (str، اختياري، القيمة الافتراضية None) — طبقة التطبيع التي تُطبَّق على الحالات المخفية قبل تمريرها إلى كتل Transformer. اضبطها على None إذا لم يكن التطبيع مطلوبًا.
  • embedding_proj_norm_type (str، اختياري، القيمة الافتراضية None) — طبقة التطبيع التي تُطبَّق على مدخل proj_embedding. اضبطها على None إذا لم يكن التطبيع مطلوبًا.
  • encoder_hid_proj_type (str، اختياري، القيمة الافتراضية linear) — طبقة الإسقاط التي تُطبَّق على مدخلات encoder_hidden_states. اضبطها على None إذا كانت encoder_hidden_states تساوي None.
  • added_emb_type (str، اختياري، القيمة الافتراضية prd) — تضمينات إضافية لتكييف النموذج. اختر من بين prd أو None. إذا اخترت prd، فسيتم إضافة رمز في البداية يشير إلى (الكمي) ناتج الضرب النقطي بين تضمين النص وتضمين الصورة كما اقترح في ورقة unclip https://huggingface.co/papers/2204.06125 إذا كانت القيمة None، فلن يتم إضافة أي تضمينات إضافية.
  • time_embed_dim (int, *optional*, defaults to None) -- The dimension of timestep embeddings. If None, will be set to num_attention_heads * attention_head_dim`
  • embedding_proj_dim (int، اختياري، الافتراضي None) — بعد proj_embedding. إذا كان None، فسيتم تعيينه إلى embedding_dim.
  • clip_embed_dim (int، اختياري، الافتراضي None) — بعد المخرجات. إذا كان None، فسيتم تعيينه إلى embedding_dim.

نموذج Transformer مسبق.

forward

< >

( hidden_statestimestep: typing.Union[torch.Tensor, float, int]proj_embedding: Tensorencoder_hidden_states: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.BoolTensor] = Nonereturn_dict: bool = True ) → PriorTransformerOutput or tuple

المعاملات

  • hidden_states (torch.Tensor من الشكل (batch_size, embedding_dim)) — تضمينات الصور المتوقعة حاليًا.
  • timestep (torch.LongTensor) — خطوة إزالة الضوضاء الحالية.
  • proj_embedding (torch.Tensor من الشكل (batch_size, embedding_dim)) — متجه التضمين المُسقط الذي يُشترط عليه عملية إزالة الضوضاء.
  • encoder_hidden_states (torch.Tensor من الشكل (batch_size, num_embeddings, embedding_dim)) — حالات المخفية لحالات التضمين النصية التي يُشترط عليها عملية إزالة الضوضاء.
  • attention_mask (torch.BoolTensor of shape (batch_size, num_embeddings)) — قناع النص الخاص بتضمينات النص.
  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع PriorTransformerOutput بدلاً من مجموعة (tuple) عادية.

يعيد

PriorTransformerOutput أو tuple

If return_dict is True, a PriorTransformerOutput is returned, otherwise a tuple is returned where the first element is the sample tensor.

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

set_default_attn_processor

< >

( )

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

PriorTransformerOutput

فئة diffusers.models.transformers.prior_transformer.PriorTransformerOutput

< >

( predicted_image_embedding: Tensor )

المعاملات

  • predicted_image_embedding (torch.Tensor من الشكل (batch_size, embedding_dim)) — تضمين صورة CLIP المتوقع المشروط على مدخل تضمين نص CLIP.

مخرجات PriorTransformer.

Update on GitHub