Diffusers documentation

T2I-Adapter

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

T2I-Adapter

مُكيّف T2I: تعلّم المُكيّفات لاستخراج قدرات أكثر قابلية للتحكم في نماذج الانتشار من النص إلى الصورة بقلم تشونغ مو، شينتاو وانغ، ليانغبين شيه، جيان تشانغ، تشونغانغ تشي، يينغ شان، شياوهو تشي.

باستخدام النماذج المُدرَّبة مسبقًا، يمكننا توفير صور تحكم (مثل خريطة العمق) للتحكم في توليد الصور من النص باستخدام Stable Diffusion بحيث تتبع بنية صورة العمق وتُكمل التفاصيل.

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

لقد أثبتت القدرة التوليدية المذهلة لنماذج النص إلى الصورة (T2I) واسعة النطاق قوة كبيرة في تعلم الهياكل المعقدة والدلالات الدلالية ذات المعنى. ومع ذلك، فإن الاعتماد على الأوامر النصية وحدها لا يستفيد بالكامل من المعرفة التي تعلمها النموذج، خاصة عندما تكون هناك حاجة إلى تحكم مرن ودقيق (مثل التحكم في اللون والهيكل). في هذه الورقة، نهدف إلى «استخراج» القدرات التي تعلمتها نماذج T2I بشكل ضمني، ثم استخدامها بشكل صريح للتحكم في عملية التوليد بشكل أكثر تفصيلاً. وتحديداً، نقترح تعلم محولات T2I-Adapter بسيطة وخفيفة الوزن لمواءمة المعرفة الداخلية في نماذج T2I مع إشارات التحكم الخارجية، مع تجميد نماذج T2I الكبيرة الأصلية. وبهذه الطريقة، يمكننا تدريب محولات مختلفة وفقاً لظروف مختلفة، مما يحقق تأثيرات غنية في التحكم والتحرير في لون وهياكل نتائج التوليد. وعلاوة على ذلك، تتمتع محولات T2I-Adapter المقترحة بخصائص جذابة ذات قيمة عملية، مثل قابلية التركيب وقابلية التعميم. وتُظهر التجارب الواسعة أن محول T2I-Adapter الخاص بنا يتمتع بجودة توليد واعدة ونطاق واسع من التطبيقات.

تمت مساهمة هذا النموذج من قبل مساهم المجتمع HimariO ❤️ .

StableDiffusionAdapterPipeline

فئة diffusers.StableDiffusionAdapterPipeline

< >

( vae: AutoencoderKLtext_encoder: CLIPTextModeltokenizer: CLIPTokenizerunet: UNet2DConditionModeladapter: diffusers.models.adapter.T2IAdapter | diffusers.models.adapter.MultiAdapter | list[diffusers.models.adapter.T2IAdapter]scheduler: KarrasDiffusionSchedulerssafety_checker: StableDiffusionSafetyCheckerfeature_extractor: CLIPImageProcessorPilrequires_safety_checker: bool = True )

المعاملات

  • adapter (T2IAdapter أو MultiAdapter أو list[T2IAdapter]) — يوفر شروطًا إضافية إلى unet أثناء عملية إزالة الضوضاء. إذا قمت بتعيين عدة Adapter كقائمة، فإن المخرجات من كل Adapter تُجمع معًا لإنشاء شرط إضافي واحد مدمج.
  • adapter_weights (list[float]، اختياري، القيمة الافتراضية None) — قائمة من الأرقام العشرية تمثل الوزن الذي سيُضرب في مخرجات كل مُكيّف (adapter) قبل جمعها معًا.
  • vae (AutoencoderKL) — نموذج الترميز التبايني التلقائي (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.
  • text_encoder (CLIPTextModel) — مُشفِّر نص ثابت. يستخدم Stable Diffusion الجزء النصي من CLIP، وتحديداً النسخة clip-vit-large-patch14.
  • tokenizer (CLIPTokenizer) — مقسّم من الفئة CLIPTokenizer.
  • unet (UNet2DConditionModel) — بنية U-Net الشرطية لإزالة الضوضاء من الكامنات المُرمّزة للصورة.
  • scheduler (SchedulerMixin) — مجدول يُستخدم بالاقتران مع unet لإزالة الضوضاء من كائنات الصورة المُرمّزة. يمكن أن يكون أحد DDIMScheduler أو LMSDiscreteScheduler أو PNDMScheduler.
  • safety_checker (StableDiffusionSafetyChecker) — وحدة تصنيف تُقدّر ما إذا كانت الصور المولّدة يمكن اعتبارها مسيئة أو ضارة. يرجى الرجوع إلى بطاقة النموذج للاطلاع على التفاصيل.
  • feature_extractor (CLIPImageProcessor) — نموذج يستخرج الميزات من الصور المولّدة لاستخدامها كمدخلات لـ safety_checker.

خط أنابيب لتوليد الصور من النص باستخدام Stable Diffusion مع تعزيزه بواسطة T2I-Adapter https://huggingface.co/papers/2302.08453

يرث هذا النموذج من DiffusionPipeline. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

__call__

< >

( prompt: str | list[str] = Noneimage: typing.Union[torch.Tensor, PIL.Image.Image, list[PIL.Image.Image]] = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 50timesteps: list = Nonesigmas: list = Noneguidance_scale: float = 7.5negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1eta: float = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecallback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = Nonecallback_steps: int = 1cross_attention_kwargs: dict[str, typing.Any] | None = Noneadapter_conditioning_scale: float | list[float] = 1.0clip_skip: int | None = None ) → ~pipelines.stable_diffusion.StableDiffusionAdapterPipelineOutput or tuple

المعاملات

  • prompt (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي توجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير prompt_embeds بدلاً من ذلك.
  • image (torch.Tensor أو PIL.Image.Image أو list[torch.Tensor] أو list[PIL.Image.Image] أو list[list[PIL.Image.Image]]) — شرط الإدخال الخاص بالمُكيّف (Adapter). يستخدم المُكيّف هذا الشرط لإنتاج إرشادات تُوجَّه إلى Unet. إذا كان النوع محددًا على أنه torch.Tensor، فإنه يُمرَّر إلى المُكيّف كما هو. يمكن أيضًا قبول PIL.Image.Image كصورة. يتم تغيير حجم صورة التحكم تلقائيًا لتناسب الصورة الناتجة.
  • height (int، اختياري، الافتراضي هو self.unet.config.sample_size * self.vae_scale_factor) — ارتفاع الصورة المولّدة بالبكسل.
  • width (int، اختياري، القيمة الافتراضية هي self.unet.config.sample_size * self.vae_scale_factor) — عرض الصورة المولدة بالبكسل.
  • num_inference_steps (int، اختياري، القيمة الافتراضية 50) — عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة بجودة أعلى على حساب بطء الاستدلال.
  • timesteps (list[int], اختياري) — خطوات زمنية مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل timesteps في طريقة set_timesteps الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير num_inference_steps. يجب أن تكون بترتيب تنازلي.
  • sigmas (list[float]، اختياري) — قيم sigmas مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل sigmas في طريقة set_timesteps الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير num_inference_steps.
  • guidance_scale (float، اختياري، القيمة الافتراضية 7.5) — مقياس التوجيه كما هو معرّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2 في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجّع مقياس توجيه أعلى على توليد صور مرتبطة ارتباطًا وثيقًا بنص prompt، وعادةً على حساب انخفاض جودة الصورة.
  • negative_prompt (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي لا ينبغي استخدامها لتوجيه توليد الصورة. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً من ذلك. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان guidance_scale أقل من 1).
  • num_images_per_prompt (int، اختياري، القيمة الافتراضية 1) — عدد الصور التي سيتم توليدها لكل موجه.
  • eta (float، اختياري، القيمة الافتراضية 0.0) — يتوافق مع المعامل eta (η) في ورقة DDIM: https://huggingface.co/papers/2010.02502. ينطبق فقط على schedulers.DDIMScheduler، وسيتم تجاهله في الحالات الأخرى.
  • generator (torch.Generator أو list[torch.Generator]، اختياري) — مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.
  • latents (torch.Tensor، اختياري) — كائنات latents ضجيجية مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، سيتم توليد كائن latents عن طريق الاستخراج باستخدام generator العشوائي المُقدَّم.
  • prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مُولَّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد تضمينات النص من معامل الإدخال prompt.
  • negative_prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية سلبية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال negative_prompt.
  • output_type (str، اختياري، القيمة الافتراضية "pil") — صيغة مخرجات توليد الصورة. اختر بين PIL: PIL.Image.Image أو np.array.
  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع ~pipelines.stable_diffusion.StableDiffusionAdapterPipelineOutput بدلاً من tuple عادي.
  • callback (Callable، اختياري) — دالة ستُستدعى كل callback_steps خطوات أثناء الاستدلال. سيتم استدعاء الدالة مع الحُجج التالية: callback(step: int, timestep: int, latents: torch.Tensor).
  • callback_steps (int، اختياري، القيمة الافتراضية 1) — التردد الذي تُستدعى به دالة callback. إذا لم يتم تحديد القيمة، فستُستدعى الدالة في كل خطوة.
  • cross_attention_kwargs (dict، اختياري) — قاموس kwargs يُمرَّر إلى AttnProcessor كما هو معرَّف تحت self.processor في diffusers.models.attention_processor إذا تمَّ تحديده.
  • adapter_conditioning_scale (float أو list[float]، اختياري، القيمة الافتراضية 1.0) — تُضرب مخرجات المُكيّف (adapter) في adapter_conditioning_scale قبل إضافتها إلى الباقي (residual) في unet الأصلي. إذا تم تحديد عدة مُكيّفات في init، يمكنك تعيين المقياس المقابل كقائمة.
  • clip_skip (int, اختياري) — عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

يعيد

~pipelines.stable_diffusion.StableDiffusionAdapterPipelineOutput أو tuple

~pipelines.stable_diffusion.StableDiffusionAdapterPipelineOutput if return_dict is True, otherwise a tuple. When returning a tuple, the first element is a list with the generated images, and the second element is a list of bools denoting whether the corresponding generated image likely represents "not-safe-for-work" (nsfw) content, according to the safety_checker`.

الدالة التي تُستدعى عند استدعاء خط الأنابيب للتوليد.

أمثلة:

>>> from PIL import Image
>>> from diffusers.utils import load_image
>>> import torch
>>> from diffusers import StableDiffusionAdapterPipeline, T2IAdapter

>>> image = load_image(
...     "https://huggingface.co/datasets/diffusers/docs-images/resolve/main/t2i-adapter/color_ref.png"
... )

>>> color_palette = image.resize((8, 8))
>>> color_palette = color_palette.resize((512, 512), resample=Image.Resampling.NEAREST)

>>> adapter = T2IAdapter.from_pretrained("TencentARC/t2iadapter_color_sd14v1", torch_dtype=torch.float16)
>>> pipe = StableDiffusionAdapterPipeline.from_pretrained(
...     "CompVis/stable-diffusion-v1-4",
...     adapter=adapter,
...     torch_dtype=torch.float16,
... )

>>> pipe.to("cuda")

>>> out_image = pipe(
...     "At night, glowing cubes in front of the beach",
...     image=color_palette,
... ).images[0]

enable_attention_slicing

< >

( slice_size: str | int = 'auto' )

المعاملات

  • slice_size (str أو int، اختياري، القيمة الافتراضية "auto") — عندما تكون القيمة "auto"، يتم تقسيم المدخلات إلى رؤوس الانتباه إلى نصفين، بحيث يُحسب الانتباه في خطوتين. أما إذا كانت "max"، فسيتم توفير أقصى قدر من الذاكرة من خلال تشغيل شريحة واحدة في كل مرة. وإذا تم تقديم رقم، يتم استخدام عدد من الشرائح يساوي attention_head_dim // slice_size. في هذه الحالة، يجب أن يكون attention_head_dim مضاعفًا لـ slice_size.

تفعيل حساب الانتباه المقطّع. عند تفعيل هذا الخيار، يقسم وحدة الانتباه المصفوفة المدخلة إلى شرائح لحساب الانتباه على عدة خطوات. في حالة وجود أكثر من رأس انتباه، يتم تنفيذ الحساب بشكل تسلسلي على كل رأس. وهذا مفيد لتوفير بعض الذاكرة مقابل انخفاض طفيف في السرعة.

> ⚠️ لا تفعّل تقطيع الانتباه إذا كنت تستخدم بالفعل scaled_dot_product_attention (SDPA) من PyTorch > 2.0 أو xFormers. فحسابات الانتباه هذه فعّالة جداً من حيث الذاكرة، لذا لن تحتاج إلى تفعيل > هذه الوظيفة. إذا فعّلت تقطيع الانتباه مع SDPA أو xFormers، فقد يؤدي ذلك إلى تباطؤ كبير!

أمثلة:

>>> import torch
>>> from diffusers import StableDiffusionPipeline

>>> pipe = StableDiffusionPipeline.from_pretrained(
...     "stable-diffusion-v1-5/stable-diffusion-v1-5",
...     dtype=torch.float16,
...     use_safetensors=True,
... )

>>> prompt = "a photo of an astronaut riding a horse on mars"
>>> pipe.enable_attention_slicing()
>>> image = pipe(prompt).images[0]

disable_attention_slicing

< >

( )

تعطيل حساب الانتباه المقطّع. إذا كان enable_attention_slicing قد تم استدعاؤه سابقًا، يتم حساب الانتباه في خطوة واحدة.

enable_xformers_memory_efficient_attention

< >

( attention_op: typing.Optional[typing.Callable] = None )

المعاملات

  • attention_op (Callable، اختياري) — تجاوز المشغّل الافتراضي None لاستخدامه كحجة op في دالة memory_efficient_attention() الخاصة بـ xFormers.

تفعيل الانتباه الموفّر للذاكرة من xFormers. عند تفعيل هذا الخيار، يجب أن تلاحظ انخفاضًا في استخدام ذاكرة وحدة معالجة الرسوميات (GPU) وتسريعًا محتملًا أثناء الاستدلال. لا يُضمن التسريع أثناء التدريب.

> ⚠️ عند تفعيل كل من الانتباه الموفّر للذاكرة والانتباه المقطّع، فإنّ الانتباه الموفّر للذاكرة يحظى بالأولوية.

أمثلة:

>>> import torch
>>> from diffusers import DiffusionPipeline
>>> from xformers.ops import MemoryEfficientAttentionFlashAttentionOp

>>> pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-1", dtype=torch.float16)
>>> pipe = pipe.to("cuda")
>>> pipe.enable_xformers_memory_efficient_attention(attention_op=MemoryEfficientAttentionFlashAttentionOp)
>>> # Workaround for not accepting attention shape using VAE for Flash Attention
>>> pipe.vae.enable_xformers_memory_efficient_attention(attention_op=None)

disable_xformers_memory_efficient_attention

< >

( )

تعطيل الانتباه الموفّر للذاكرة من xFormers.

encode_prompt

< >

( promptdevicenum_images_per_promptdo_classifier_free_guidancenegative_prompt = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonelora_scale: float | None = Noneclip_skip: int | None = None )

المعاملات

  • prompt (str أو list[str]، اختياري) — الموجّه الذي سيتم ترميزه
  • device — (torch.device): جهاز torch
  • num_images_per_prompt (int) — عدد الصور التي يجب توليدها لكل موجه
  • do_classifier_free_guidance (bool) — ما إذا كان سيتم استخدام classifier free guidance أم لا
  • negative_prompt (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي لا ينبغي استخدامها لتوجيه توليد الصورة. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان guidance_scale أقل من 1).
  • prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مُولَّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد تضمينات النص من معامل الإدخال prompt.
  • negative_prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية سلبية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال negative_prompt.
  • lora_scale (float، اختياري) — مقياس LoRA سيُطبَّق على جميع طبقات LoRA في مُشفِّر النص إذا كانت طبقات LoRA محمَّلة.
  • clip_skip (int, اختياري) — عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

get_guidance_scale_embedding

< >

( w: Tensorembedding_dim: int = 512dtype: dtype = torch.float32 ) → torch.Tensor

المعاملات

  • w (torch.Tensor) — توليد متجهات تضمين بمقياس توجيه محدد لغرض إثراء تضمينات خطوة الزمن اللاحقة.
  • embedding_dim (int، اختياري، القيمة الافتراضية 512) — أبعاد التضمينات (embeddings) التي سيتم توليدها.
  • dtype (torch.dtype، اختياري، الافتراضي torch.float32) — نوع البيانات للتضمينات المولّدة.

يعيد

torch.Tensor

متجهات تضمين بشكل (len(w), embedding_dim).

انظر إلى https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

StableDiffusionXLAdapterPipeline

فئة diffusers.StableDiffusionXLAdapterPipeline

< >

( vae: AutoencoderKLtext_encoder: CLIPTextModeltext_encoder_2: CLIPTextModelWithProjectiontokenizer: CLIPTokenizertokenizer_2: CLIPTokenizerunet: UNet2DConditionModeladapter: diffusers.models.adapter.T2IAdapter | diffusers.models.adapter.MultiAdapter | list[diffusers.models.adapter.T2IAdapter]scheduler: KarrasDiffusionSchedulersforce_zeros_for_empty_prompt: bool = Truefeature_extractor: CLIPImageProcessorPil = Noneimage_encoder: CLIPVisionModelWithProjection = None )

المعاملات

  • adapter (T2IAdapter أو MultiAdapter أو list[T2IAdapter]) — يوفر شروطًا إضافية إلى unet أثناء عملية إزالة الضوضاء. إذا قمت بتعيين عدة Adapter كقائمة، فإن المخرجات من كل Adapter تُجمع معًا لإنشاء شرط إضافي واحد مدمج.
  • adapter_weights (list[float]، اختياري، القيمة الافتراضية None) — قائمة من الأرقام العشرية تمثل الوزن الذي سيُضرب في مخرجات كل مُكيّف (adapter) قبل جمعها معًا.
  • vae (AutoencoderKL) — نموذج الترميز التبايني التلقائي (VAE) لتشفير وفك تشفير الصور إلى تمثيلات كامنة ومنها.
  • text_encoder (CLIPTextModel) — مُشفِّر نص ثابت. يستخدم Stable Diffusion الجزء النصي من CLIP، وتحديداً النسخة clip-vit-large-patch14.
  • tokenizer (CLIPTokenizer) — مقسّم من الفئة CLIPTokenizer.
  • unet (UNet2DConditionModel) — بنية U-Net الشرطية لإزالة الضوضاء من الكامنات المُرمّزة للصورة.
  • scheduler (SchedulerMixin) — مجدول يُستخدم بالاقتران مع unet لإزالة الضوضاء من كائنات الصورة المُرمّزة. يمكن أن يكون أحد DDIMScheduler أو LMSDiscreteScheduler أو PNDMScheduler.
  • safety_checker (StableDiffusionSafetyChecker) — وحدة تصنيف تُقدّر ما إذا كانت الصور المولّدة يمكن اعتبارها مسيئة أو ضارة. يرجى الرجوع إلى بطاقة النموذج للاطلاع على التفاصيل.
  • feature_extractor (CLIPImageProcessor) — نموذج يستخرج الميزات من الصور المولّدة لاستخدامها كمدخلات لـ safety_checker.

خط أنابيب لتوليد الصور من النص باستخدام Stable Diffusion مع تعزيزه بواسطة T2I-Adapter https://huggingface.co/papers/2302.08453

يرث هذا النموذج من DiffusionPipeline. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).

تورث خط الأنابيب أيضًا طرق التحميل التالية:

__call__

< >

( prompt: str | list[str] = Noneprompt_2: str | list[str] | None = Noneimage: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 50timesteps: list = Nonesigmas: list = Nonedenoising_end: float | None = Noneguidance_scale: float = 5.0negative_prompt: str | list[str] | None = Nonenegative_prompt_2: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1eta: float = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Noneip_adapter_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneip_adapter_image_embeds: list[torch.Tensor] | None = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecallback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = Nonecallback_steps: int = 1cross_attention_kwargs: dict[str, typing.Any] | None = Noneguidance_rescale: float = 0.0original_size: tuple[int, int] | None = Nonecrops_coords_top_left: tuple = (0, 0)target_size: tuple[int, int] | None = Nonenegative_original_size: tuple[int, int] | None = Nonenegative_crops_coords_top_left: tuple = (0, 0)negative_target_size: tuple[int, int] | None = Noneadapter_conditioning_scale: float | list[float] = 1.0adapter_conditioning_factor: float = 1.0clip_skip: int | None = None ) → ~pipelines.stable_diffusion.StableDiffusionAdapterPipelineOutput or tuple

المعاملات

  • prompt (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي توجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير prompt_embeds بدلاً من ذلك.
  • prompt_2 (str أو list[str]، اختياري) — الموجّه أو الموجّهات المرسل إلى tokenizer_2 وtext_encoder_2. إذا لم يُعرَّف، يُستخدم prompt في كلا مشفّري النص
  • image (torch.Tensor أو PIL.Image.Image أو list[torch.Tensor] أو list[PIL.Image.Image] أو list[list[PIL.Image.Image]]) — شرط الإدخال الخاص بالمُكيّف (Adapter). يستخدم المُكيّف هذا الشرط لإنتاج إرشادات تُوجَّه إلى Unet. إذا كان النوع محددًا على أنه torch.Tensor، فإنه يُمرَّر إلى المُكيّف كما هو. يمكن أيضًا قبول PIL.Image.Image كصورة. يتم تغيير حجم صورة التحكم تلقائيًا لتناسب الصورة الناتجة.
  • height (int، اختياري، القيمة الافتراضية هي self.unet.config.sample_size * self.vae_scale_factor) — ارتفاع الصورة المولدة بالبكسل. أي قيمة أقل من 512 بكسل لن تعمل بشكل جيد مع stabilityai/stable-diffusion-xl-base-1.0 والمحطات المرجعية التي لم يتم ضبطها بدقة على الدقة المنخفضة بشكل خاص.
  • width (int، اختياري، القيمة الافتراضية هي self.unet.config.sample_size * self.vae_scale_factor) — العرض بالبكسلات للصورة المولّدة. أي قيمة أقل من 512 بكسل لن تعمل بشكل جيد مع stabilityai/stable-diffusion-xl-base-1.0 والمحطات المرجعية التي لم تُضبط بدقة على دقات منخفضة.
  • num_inference_steps (int، اختياري، القيمة الافتراضية 50) — عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى صورة بجودة أعلى على حساب بطء الاستدلال.
  • timesteps (list[int], اختياري) — خطوات زمنية مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل timesteps في طريقة set_timesteps الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير num_inference_steps. يجب أن تكون بترتيب تنازلي.
  • sigmas (list[float]، اختياري) — قيم sigmas مخصصة لاستخدامها في عملية إزالة الضوضاء مع المجدولين الذين يدعمون معامل sigmas في طريقة set_timesteps الخاصة بهم. إذا لم يُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير num_inference_steps.
  • denoising_end (float, اختياري) — عند تحديده، يحدد نسبة (بين 0.0 و 1.0) من إجمالي عملية إزالة الضوضاء التي يجب إتمامها قبل إنهائها مبكرًا عمدًا. ونتيجةً لذلك، سيحتفظ العينة المُعاد بها بكمية كبيرة من الضوضاء كما تحددها الخطوات الزمنية المنفصلة التي يختارها المجدول. ينبغي استخدام معامل denoising_end بشكل مثالي عندما يشكل هذا الخط الأنابيب جزءًا من إعداد متعدد الخطوط الأنابيب “خليط من مُزيلات الضوضاء”، كما هو موضح في تحسين مخرجات الصورة
  • guidance_scale (float، اختياري، القيمة الافتراضية 5.0) — مقياس التوجيه كما هو مُعرَّف في Classifier-Free Diffusion Guidance. يُعرَّف guidance_scale على أنه w من المعادلة 2 في Imagen Paper. يتم تفعيل مقياس التوجيه عن طريق تعيين guidance_scale > 1. يشجع مقياس التوجيه الأعلى على توليد صور مرتبطة ارتباطًا وثيقًا بـ prompt النصي، وعادةً على حساب انخفاض جودة الصورة.
  • negative_prompt (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي لا ينبغي استخدامها لتوجيه توليد الصورة. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان guidance_scale أقل من 1).
  • negative_prompt_2 (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي لا ينبغي توجيه توليد الصورة إليها، والتي تُرسل إلى tokenizer_2 و text_encoder_2. إذا لم يُعرَّف، يُستخدم negative_prompt في كلا مشفّري النص
  • num_images_per_prompt (int، اختياري، القيمة الافتراضية 1) — عدد الصور التي سيتم توليدها لكل موجه.
  • eta (float، اختياري، القيمة الافتراضية 0.0) — يتوافق مع المعامل eta (η) في ورقة DDIM: https://huggingface.co/papers/2010.02502. ينطبق فقط على schedulers.DDIMScheduler، وسيتم تجاهله في الحالات الأخرى.
  • generator (torch.Generator أو list[torch.Generator]، اختياري) — مولّد واحد أو قائمة من مولّدات torch لجعل التوليد حتميًا.
  • latents (torch.Tensor، اختياري) — كائنات latents ضجيجية مُولّدة مسبقًا، مُستخرجة من توزيع غاوسي، تُستخدم كمدخلات لتوليد الصور. يمكن استخدامها لتعديل نفس التوليد باستخدام أوامر مختلفة. إذا لم تُقدَّم، سيتم توليد كائن latents عن طريق الاستخراج باستخدام generator العشوائي المُقدَّم.
  • prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مُولَّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد تضمينات النص من معامل الإدخال prompt.
  • negative_prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية سلبية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال negative_prompt.
  • pooled_prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد تضمينات النص المجمّعة من معامل الإدخال prompt.
  • negative_pooled_prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن المحفّز. إذا لم تُقدَّم، فسيتم توليد تضمينات negative_prompt_embeds المجمعة من معامل الإدخال negative_prompt.
  • ip_adapter_image — (PipelineImageInput، اختياري): مدخل صورة اختياري للعمل مع IP Adapters.
  • ip_adapter_image_embeds (list[torch.Tensor]، اختياري) — تضمينات صور مُولّدة مسبقًا لـ IP-Adapter. يجب أن تكون قائمة بطول يساوي عدد وحدات IP-Adapter. يجب أن يكون كل عنصر منها متجهًا (tensor) بشكل (batch_size, num_images, emb_dim). يجب أن يحتوي على تضمين الصورة السلبية إذا كان do_classifier_free_guidance مضبوطًا على True. إذا لم يُقدَّم، تُحسب التضمينات من معامل الإدخال ip_adapter_image.
  • output_type (str، اختياري، القيمة الافتراضية "pil") — صيغة مخرجات توليد الصورة. اختر بين PIL: PIL.Image.Image أو np.array.
  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع ~pipelines.stable_diffusion_xl.StableDiffusionAdapterPipelineOutput بدلاً من tuple عادي.
  • callback (Callable، اختياري) — دالة ستُستدعى كل callback_steps خطوات أثناء الاستدلال. سيتم استدعاء الدالة مع الحُجج التالية: callback(step: int, timestep: int, latents: torch.Tensor).
  • callback_steps (int، اختياري، القيمة الافتراضية 1) — التردد الذي تُستدعى به دالة callback. إذا لم يتم تحديد القيمة، فستُستدعى الدالة في كل خطوة.
  • cross_attention_kwargs (dict، اختياري) — قاموس kwargs يُمرَّر إلى AttentionProcessor كما هو معرَّف تحت self.processor في diffusers.models.attention_processor إذا تمَّ تحديده.
  • guidance_rescale (float, اختياري، القيمة الافتراضية 0.0) — معامل إعادة الضبط للتوجيه المقترح في جداول ضوضاء الانتشار الشائعة وخطوات العينة معيبة حيث يُعرَّف guidance_scale على أنه φ في المعادلة 16 من جداول ضوضاء الانتشار الشائعة وخطوات العينة معيبة. يجب أن يُصلح معامل إعادة الضبط للتوجيه مشكلة الإفراط في التعرض عند استخدام SNR نهائي صفر.
  • original_size (tuple[int], اختياري، القيمة الافتراضية (1024, 1024)) — إذا لم تكن original_size مطابقة لـ target_size، فسيبدو أن الصورة قد خضعت لتقليل أو زيادة في الدقة. تكون القيمة الافتراضية لـ original_size هي (height, width) إذا لم يتم تحديدها. وهي جزء من micro-conditioning في SDXL كما هو موضح في القسم 2.2 من https://huggingface.co/papers/2307.01952.
  • crops_coords_top_left (tuple[int], اختياري، القيمة الافتراضية (0, 0)) — يمكن استخدام crops_coords_top_left لتوليد صورة تبدو وكأنها “مقتطعة” من الموضع crops_coords_top_left إلى الأسفل. عادةً ما يتم تحقيق صور جيدة ومركزة بشكل مفضل عن طريق تعيين crops_coords_top_left إلى (0, 0). جزء من التكييف الدقيق (micro-conditioning) الخاص بـ SDXL كما هو موضح في القسم 2.2 من https://huggingface.co/papers/2307.01952.
  • target_size (tuple[int]، اختياري، القيمة الافتراضية (1024, 1024)) — في معظم الحالات، يجب ضبط target_size على الارتفاع والعرض المطلوبين للصورة المولّدة. إذا لم يُحدَّد، فسيكون الافتراضي (height, width). وهو جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من https://huggingface.co/papers/2307.01952. القسم 2.2 من https://huggingface.co/papers/2307.01952.
  • negative_original_size (tuple[int]، اختياري، القيمة الافتراضية (1024, 1024)) — لتشغيل عملية التوليد سلبياً بناءً على دقة صورة محددة. جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من https://huggingface.co/papers/2307.01952. لمزيد من المعلومات، راجع موضوع هذا الإصدار: https://github.com/huggingface/diffusers/issues/4208.
  • negative_crops_coords_top_left (tuple[int], اختياري، القيمة الافتراضية (0, 0)) — لتشغيل عملية التوليد سلبياً بناءً على إحداثيات قصّ محددة. جزء من micro-conditioning في SDXL كما هو موضح في القسم 2.2 من https://huggingface.co/papers/2307.01952. لمزيد من المعلومات، راجع موضوع هذا الإصدار: https://github.com/huggingface/diffusers/issues/4208.
  • negative_target_size (tuple[int], اختياري، القيمة الافتراضية (1024, 1024)) — لتشغيل عملية التوليد سلبياً بناءً على دقة الصورة المستهدفة. يجب أن تكون مطابقة لـ target_size في معظم الحالات. جزء من التكييف الدقيق (micro-conditioning) في SDXL كما هو موضح في القسم 2.2 من https://huggingface.co/papers/2307.01952. لمزيد من المعلومات، راجع موضوع هذا الإشكال: https://github.com/huggingface/diffusers/issues/4208.
  • adapter_conditioning_scale (float أو list[float]، اختياري، القيمة الافتراضية 1.0) — تُضرب مخرجات المُكيّف (adapter) في adapter_conditioning_scale قبل إضافتها إلى الباقي (residual) في unet الأصلي. إذا تم تحديد عدة مُكيّفات في init، يمكنك تعيين المقياس المقابل كقائمة.
  • adapter_conditioning_factor (float, اختياري، القيمة الافتراضية 1.0) — النسبة من خطوات الزمن التي يجب تطبيق المُكيّف عليها. إذا كانت قيمة adapter_conditioning_factor هي 0.0، فلا يُطبَّق المُكيّف إطلاقاً. إذا كانت قيمة adapter_conditioning_factor هي 1.0، يُطبَّق المُكيّف على جميع خطوات الزمن. إذا كانت قيمة adapter_conditioning_factor هي 0.5، يُطبَّق المُكيّف على نصف خطوات الزمن.
  • clip_skip (int, اختياري) — عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

يعيد

~pipelines.stable_diffusion.StableDiffusionAdapterPipelineOutput أو tuple

~pipelines.stable_diffusion.StableDiffusionAdapterPipelineOutput إذا كان return_dict هو True، وإلا tuple. عند إرجاع tuple، يكون العنصر الأول قائمة تحتوي على الصور المولّدة.

الدالة التي تُستدعى عند استدعاء خط الأنابيب للتوليد.

أمثلة:

>>> import torch
>>> from diffusers import T2IAdapter, StableDiffusionXLAdapterPipeline, DDPMScheduler
>>> from diffusers.utils import load_image

>>> sketch_image = load_image("https://huggingface.co/Adapter/t2iadapter/resolve/main/sketch.png").convert("L")

>>> model_id = "stabilityai/stable-diffusion-xl-base-1.0"

>>> adapter = T2IAdapter.from_pretrained(
...     "Adapter/t2iadapter",
...     subfolder="sketch_sdxl_1.0",
...     torch_dtype=torch.float16,
...     adapter_type="full_adapter_xl",
... )
>>> scheduler = DDPMScheduler.from_pretrained(model_id, subfolder="scheduler")

>>> pipe = StableDiffusionXLAdapterPipeline.from_pretrained(
...     model_id, adapter=adapter, torch_dtype=torch.float16, variant="fp16", scheduler=scheduler
... ).to("cuda")

>>> generator = torch.manual_seed(42)
>>> sketch_image_out = pipe(
...     prompt="a photo of a dog in real world, high quality",
...     negative_prompt="extra digit, fewer digits, cropped, worst quality, low quality",
...     image=sketch_image,
...     generator=generator,
...     guidance_scale=7.5,
... ).images[0]

enable_attention_slicing

< >

( slice_size: str | int = 'auto' )

المعاملات

  • slice_size (str أو int، اختياري، القيمة الافتراضية "auto") — عندما تكون القيمة "auto"، يتم تقسيم المدخلات إلى رؤوس الانتباه إلى نصفين، بحيث يُحسب الانتباه في خطوتين. أما إذا كانت "max"، فسيتم توفير أقصى قدر من الذاكرة من خلال تشغيل شريحة واحدة في كل مرة. وإذا تم تقديم رقم، يتم استخدام عدد من الشرائح يساوي attention_head_dim // slice_size. في هذه الحالة، يجب أن يكون attention_head_dim مضاعفًا لـ slice_size.

تفعيل حساب الانتباه المقطّع. عند تفعيل هذا الخيار، يقسم وحدة الانتباه المصفوفة المدخلة إلى شرائح لحساب الانتباه على عدة خطوات. في حالة وجود أكثر من رأس انتباه، يتم تنفيذ الحساب بشكل تسلسلي على كل رأس. وهذا مفيد لتوفير بعض الذاكرة مقابل انخفاض طفيف في السرعة.

> ⚠️ لا تفعّل تقطيع الانتباه إذا كنت تستخدم بالفعل scaled_dot_product_attention (SDPA) من PyTorch > 2.0 أو xFormers. فحسابات الانتباه هذه فعّالة جداً من حيث الذاكرة، لذا لن تحتاج إلى تفعيل > هذه الوظيفة. إذا فعّلت تقطيع الانتباه مع SDPA أو xFormers، فقد يؤدي ذلك إلى تباطؤ كبير!

أمثلة:

>>> import torch
>>> from diffusers import StableDiffusionPipeline

>>> pipe = StableDiffusionPipeline.from_pretrained(
...     "stable-diffusion-v1-5/stable-diffusion-v1-5",
...     dtype=torch.float16,
...     use_safetensors=True,
... )

>>> prompt = "a photo of an astronaut riding a horse on mars"
>>> pipe.enable_attention_slicing()
>>> image = pipe(prompt).images[0]

disable_attention_slicing

< >

( )

تعطيل حساب الانتباه المقطّع. إذا كان enable_attention_slicing قد تم استدعاؤه سابقًا، يتم حساب الانتباه في خطوة واحدة.

enable_xformers_memory_efficient_attention

< >

( attention_op: typing.Optional[typing.Callable] = None )

المعاملات

  • attention_op (Callable، اختياري) — تجاوز المشغّل الافتراضي None لاستخدامه كحجة op في دالة memory_efficient_attention() الخاصة بـ xFormers.

تفعيل الانتباه الموفّر للذاكرة من xFormers. عند تفعيل هذا الخيار، يجب أن تلاحظ انخفاضًا في استخدام ذاكرة وحدة معالجة الرسوميات (GPU) وتسريعًا محتملًا أثناء الاستدلال. لا يُضمن التسريع أثناء التدريب.

> ⚠️ عند تفعيل كل من الانتباه الموفّر للذاكرة والانتباه المقطّع، فإنّ الانتباه الموفّر للذاكرة يحظى بالأولوية.

أمثلة:

>>> import torch
>>> from diffusers import DiffusionPipeline
>>> from xformers.ops import MemoryEfficientAttentionFlashAttentionOp

>>> pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-1", dtype=torch.float16)
>>> pipe = pipe.to("cuda")
>>> pipe.enable_xformers_memory_efficient_attention(attention_op=MemoryEfficientAttentionFlashAttentionOp)
>>> # Workaround for not accepting attention shape using VAE for Flash Attention
>>> pipe.vae.enable_xformers_memory_efficient_attention(attention_op=None)

disable_xformers_memory_efficient_attention

< >

( )

تعطيل الانتباه الموفّر للذاكرة من xFormers.

encode_prompt

< >

( prompt: strprompt_2: str | None = Nonedevice: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1do_classifier_free_guidance: bool = Truenegative_prompt: str | None = Nonenegative_prompt_2: str | None = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonepooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = Nonelora_scale: float | None = Noneclip_skip: int | None = None )

المعاملات

  • prompt (str أو list[str]، اختياري) — الموجّه الذي سيتم ترميزه
  • prompt_2 (str أو list[str]، اختياري) — الموجّه أو الموجّهات المرسل إلى tokenizer_2 وtext_encoder_2. إذا لم يُعرَّف، يُستخدم prompt في كلا مشفّري النص
  • device — (torch.device): جهاز torch
  • num_images_per_prompt (int) — عدد الصور التي يجب توليدها لكل موجه
  • do_classifier_free_guidance (bool) — ما إذا كان سيتم استخدام classifier free guidance أم لا
  • negative_prompt (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي لا ينبغي استخدامها لتوجيه توليد الصورة. إذا لم يُعرَّف، يجب تمرير negative_prompt_embeds بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه (أي يتم تجاهله إذا كان guidance_scale أقل من 1).
  • negative_prompt_2 (str أو list[str]، اختياري) — الموجّه أو الموجّهات التي لا ينبغي توجيه توليد الصورة إليها، والتي تُرسل إلى tokenizer_2 و text_encoder_2. إذا لم يُعرَّف، يُستخدم negative_prompt في كلا مشفّري النص
  • prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مُولَّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد تضمينات النص من معامل الإدخال prompt.
  • negative_prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية سلبية مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال negative_prompt.
  • pooled_prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مجمّعة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن الموجه. إذا لم تُقدَّم، فسيتم توليد تضمينات النص المجمّعة من معامل الإدخال prompt.
  • negative_pooled_prompt_embeds (torch.Tensor، اختياري) — تضمينات نصية مجمعة سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، مثلًا وزن المحفّز. إذا لم تُقدَّم، فسيتم توليد تضمينات negative_prompt_embeds المجمعة من معامل الإدخال negative_prompt.
  • lora_scale (float، اختياري) — مقياس LoRA سيُطبَّق على جميع طبقات LoRA في مُشفِّر النص إذا كانت طبقات LoRA محمَّلة.
  • clip_skip (int, اختياري) — عدد الطبقات التي سيتم تجاوزها من CLIP أثناء حساب تمثيلات الموجه. القيمة 1 تعني أنه سيتم استخدام مخرجات الطبقة قبل الأخيرة لحساب تمثيلات الموجه.

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

get_guidance_scale_embedding

< >

( w: Tensorembedding_dim: int = 512dtype: dtype = torch.float32 ) → torch.Tensor

المعاملات

  • w (torch.Tensor) — توليد متجهات تضمين بمقياس توجيه محدد لغرض إثراء تضمينات خطوة الزمن اللاحقة.
  • embedding_dim (int، اختياري، القيمة الافتراضية 512) — أبعاد التضمينات (embeddings) التي سيتم توليدها.
  • dtype (torch.dtype، اختياري، الافتراضي torch.float32) — نوع البيانات للتضمينات المولّدة.

يعيد

torch.Tensor

متجهات تضمين بشكل (len(w), embedding_dim).

انظر إلى https://github.com/google-research/vdm/blob/dc27b98a554f65cdc654b800da5aa1846545d41b/model_vdm.py#L298

Update on GitHub