Diffusers documentation
T2I-Adapter
T2I-Adapter
مُكيّف T2I: تعلّم المُكيّفات لاستخراج قدرات أكثر قابلية للتحكم في نماذج الانتشار من النص إلى الصورة بقلم تشونغ مو، شينتاو وانغ، ليانغبين شيه، جيان تشانغ، تشونغانغ تشي، يينغ شان، شياوهو تشي.
باستخدام النماذج المُدرَّبة مسبقًا، يمكننا توفير صور تحكم (مثل خريطة العمق) للتحكم في توليد الصور من النص باستخدام Stable Diffusion بحيث تتبع بنية صورة العمق وتُكمل التفاصيل.
ملخص الورقة البحثية هو كالتالي:
لقد أثبتت القدرة التوليدية المذهلة لنماذج النص إلى الصورة (T2I) واسعة النطاق قوة كبيرة في تعلم الهياكل المعقدة والدلالات الدلالية ذات المعنى. ومع ذلك، فإن الاعتماد على الأوامر النصية وحدها لا يستفيد بالكامل من المعرفة التي تعلمها النموذج، خاصة عندما تكون هناك حاجة إلى تحكم مرن ودقيق (مثل التحكم في اللون والهيكل). في هذه الورقة، نهدف إلى «استخراج» القدرات التي تعلمتها نماذج T2I بشكل ضمني، ثم استخدامها بشكل صريح للتحكم في عملية التوليد بشكل أكثر تفصيلاً. وتحديداً، نقترح تعلم محولات T2I-Adapter بسيطة وخفيفة الوزن لمواءمة المعرفة الداخلية في نماذج T2I مع إشارات التحكم الخارجية، مع تجميد نماذج T2I الكبيرة الأصلية. وبهذه الطريقة، يمكننا تدريب محولات مختلفة وفقاً لظروف مختلفة، مما يحقق تأثيرات غنية في التحكم والتحرير في لون وهياكل نتائج التوليد. وعلاوة على ذلك، تتمتع محولات T2I-Adapter المقترحة بخصائص جذابة ذات قيمة عملية، مثل قابلية التركيب وقابلية التعميم. وتُظهر التجارب الواسعة أن محول T2I-Adapter الخاص بنا يتمتع بجودة توليد واعدة ونطاق واسع من التطبيقات.
تمت مساهمة هذا النموذج من قبل مساهم المجتمع HimariO ❤️ .
StableDiffusionAdapterPipeline
فئة diffusers.StableDiffusionAdapterPipeline
< source >( 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__
< source >( 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
< source >( 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]تعطيل حساب الانتباه المقطّع. إذا كان enable_attention_slicing قد تم استدعاؤه سابقًا، يتم حساب الانتباه في خطوة واحدة.
enable_xformers_memory_efficient_attention
< source >( 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)تعطيل الانتباه الموفّر للذاكرة من xFormers.
encode_prompt
< source >( 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
< source >( 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).
StableDiffusionXLAdapterPipeline
فئة diffusers.StableDiffusionXLAdapterPipeline
< source >( 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. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع خطوط الأنابيب (مثل التنزيل أو الحفظ، أو التشغيل على جهاز معين، وما إلى ذلك).
تورث خط الأنابيب أيضًا طرق التحميل التالية:
- load_textual_inversion() لتحميل تضمينات الانعكاس النصي
- from_single_file() لتحميل ملفات
.ckpt - load_lora_weights() لتحميل أوزان LoRA
- save_lora_weights() لحفظ أوزان LoRA
- load_ip_adapter() لتحميل وحدات IP Adapter
__call__
< source >( 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
< source >( 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]تعطيل حساب الانتباه المقطّع. إذا كان enable_attention_slicing قد تم استدعاؤه سابقًا، يتم حساب الانتباه في خطوة واحدة.
enable_xformers_memory_efficient_attention
< source >( 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)تعطيل الانتباه الموفّر للذاكرة من xFormers.
encode_prompt
< source >( 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
< source >( 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).