Diffusers documentation

PNDMScheduler

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

PNDMScheduler

PNDMScheduler، أو الأساليب العددية الزائفة لنماذج الانتشار، يستخدم تقنيات أكثر تقدماً لتكامل معادلات التفاضل العادية مثل طريقة رونغي-كوتا وطريقة الخطوات المتعددة الخطية. يمكن العثور على التنفيذ الأصلي في crowsonkb/k-diffusion.

PNDMScheduler

فئة diffusers.PNDMScheduler

< >

( num_train_timesteps: int = 1000beta_start: float = 0.0001beta_end: float = 0.02beta_schedule: str = 'linear'trained_betas: numpy.ndarray | list[float] | None = Noneskip_prk_steps: bool = Falseset_alpha_to_one: bool = Falseprediction_type: typing.Literal['epsilon', 'v_prediction'] = 'epsilon'timestep_spacing: typing.Literal['linspace', 'leading', 'trailing'] = 'leading'steps_offset: int = 0 )

المعاملات

  • num_train_timesteps (int، القيمة الافتراضية 1000) — عدد خطوات الانتشار لتدريب النموذج.
  • beta_start (float، القيمة الافتراضية 0.0001) — قيمة beta الابتدائية للاستدلال.
  • beta_end (float، القيمة الافتراضية 0.02) — القيمة النهائية لـbeta.
  • beta_schedule ("linear"، أو "scaled_linear"، أو "squaredcos_cap_v2"، الافتراضي هو "linear") — جدول بيتا، وهو إسقاط من نطاق بيتا إلى تسلسل من قيم بيتا لخطوات النموذج.
  • trained_betas (np.ndarray، اختياري) — مرر مصفوفة من قيم بيتا مباشرةً إلى منشئ الكائن لتجاوز beta_start وbeta_end.
  • skip_prk_steps (bool، القيمة الافتراضية False) — يسمح للمجدول بتخطي خطوات رونج-كوتا (Runge-Kutta) المحددة في الورقة الأصلية بوصفها مطلوبة قبل خطوات PLMS.
  • set_alpha_to_one (bool، القيمة الافتراضية False) — يستخدم كل خطوة انتشار قيمة حاصل ضرب الألفا في تلك الخطوة وفي الخطوة السابقة. لا توجد ألفا سابقة للخطوة الأخيرة. عند تعيين هذا الخيار إلى True يتم تثبيت حاصل ضرب ألفا السابقة على 1، وإلا فإنه يستخدم قيمة ألفا في الخطوة 0.
  • prediction_type ("epsilon" أو "v_prediction"، الافتراضي هو "epsilon") — نوع التنبؤ لدالة المجدول؛ يمكن أن يكون epsilon (يتنبأ بالضوضاء في عملية الانتشار) أو v_prediction (انظر القسم 2.4 من ورقة Imagen Video).
  • timestep_spacing ("linspace", "leading", or "trailing", defaults to "leading") — The way the timesteps should be scaled. Refer to Table 2 of the Common Diffusion Noise Schedules and Sample Steps are Flawed for more information.
  • steps_offset (int، القيمة الافتراضية 0) — إزاحة تُضاف إلى خطوات الاستدلال، كما تتطلبها بعض عائلات النماذج.

PNDMScheduler يستخدم طرقًا عددية تقريبية لنماذج الانتشار مثل طريقة Runge-Kutta وطريقة الخطوات المتعددة الخطية.

يرث هذا النموذج من SchedulerMixin و ConfigMixin. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع مجدوليات الوقت مثل التحميل والحفظ.

add_noise

< >

( original_samples: Tensornoise: Tensortimesteps: IntTensor ) → torch.Tensor

المعاملات

  • original_samples (torch.Tensor) — العينات الأصلية التي سيتم إضافة الضوضاء إليها.
  • noise (torch.Tensor) — الضوضاء التي يجب إضافتها إلى العينات.
  • timesteps (torch.IntTensor) — خطوات الزمن التي تشير إلى مستوى الضوضاء لكل عينة.

يعيد

torch.Tensor

العينات الضجيجية.

أضف الضوضاء إلى العينات الأصلية وفقًا لحجم الضوضاء في كل خطوة زمنية (وهذا هو عملية الانتشار الأمامية).

scale_model_input

< >

( sample: Tensor*args**kwargs ) → torch.Tensor

المعاملات

  • sample (torch.Tensor) — العينة المدخلة.

يعيد

torch.Tensor

عينة إدخال مُقيّمة.

يضمن قابلية الاستبدال مع المجدولات التي تحتاج إلى تحجيم مدخلات نموذج إزالة الضوضاء اعتمادًا على خطوة الزمن الحالية.

set_timesteps

< >

( num_inference_steps: intdevice: typing.Union[str, torch.device] = None )

المعاملات

  • num_inference_steps (int) — عدد خطوات الانتشار المستخدمة عند توليد العينات باستخدام نموذج مُدرَّب مسبقًا.
  • device (str أو torch.device، اختياري) — الجهاز الذي يجب نقل خطوات الزمن (timesteps) إليه. إذا كان None، فلن يتم نقل خطوات الزمن.

يحدد الخطوات الزمنية المنفصلة المستخدمة لسلسلة الانتشار (لتُنفَّذ قبل الاستدلال).

خطوة

< >

( model_output: Tensortimestep: intsample: Tensorreturn_dict: bool = True ) → SchedulerOutput or tuple

المعاملات

  • model_output (torch.Tensor) — المخرجات المباشرة من نموذج الانتشار المُتعلَّم.
  • timestep (int) — خطوة الزمن المنفصلة الحالية في سلسلة الانتشار.
  • sample (torch.Tensor) — نسخة حالية من العينة التي أنشأها عملية الانتشار.
  • return_dict (bool، القيمة الافتراضية True) — ما إذا كان يجب إرجاع SchedulerOutput أو tuple.

يعيد

SchedulerOutput أو tuple

إذا كانت True هي قيمة return_dict، يُعاد SchedulerOutput، وإلا يُعاد tuple حيث يكون العنصر الأول هو tensor العينة.

تنبّأ بالعينة من الخطوة الزمنية السابقة عن طريق عكس عملية المعادلة التفاضلية العشوائية (SDE). تنقل هذه الدالة عملية الانتشار من مخرجات النموذج المتعلّم (والتي تكون في الغالب الضوضاء المتنبّأ بها)، وتستدعي step_prk() أو step_plms() اعتماداً على المتغير الداخلي counter.

step_plms

< >

( model_output: Tensortimestep: intsample: Tensorreturn_dict: bool = True ) → SchedulerOutput or tuple

المعاملات

  • model_output (torch.Tensor) — المخرجات المباشرة من نموذج الانتشار المُتعلَّم.
  • timestep (int) — خطوة الزمن المنفصلة الحالية في سلسلة الانتشار.
  • sample (torch.Tensor) — نسخة حالية من العينة التي أنشأها عملية الانتشار.
  • return_dict (bool، القيمة الافتراضية True) — ما إذا كان يجب إرجاع SchedulerOutput أو tuple.

يعيد

SchedulerOutput أو tuple

إذا كانت True هي قيمة return_dict، يُعاد SchedulerOutput، وإلا يُعاد tuple حيث يكون العنصر الأول هو tensor العينة.

تنبّأ بالعينة من الخطوة الزمنية السابقة عن طريق عكس معادلة التفاضل العشوائية (SDE). تنقل هذه الدالة العينة باستخدام طريقة الخطوات المتعددة الخطية. تقوم بعملية تمرير أمامي عدة مرات لتقريب الحل.

step_prk

< >

( model_output: Tensortimestep: intsample: Tensorreturn_dict: bool = True ) → SchedulerOutput or tuple

المعاملات

  • model_output (torch.Tensor) — المخرجات المباشرة من نموذج الانتشار المُتعلَّم.
  • timestep (int) — خطوة الزمن المنفصلة الحالية في سلسلة الانتشار.
  • sample (torch.Tensor) — نسخة حالية من العينة التي أنشأها عملية الانتشار.
  • return_dict (bool، القيمة الافتراضية True) — ما إذا كان يجب إرجاع SchedulerOutput أو tuple.

يعيد

SchedulerOutput أو tuple

إذا كانت True هي قيمة return_dict، يُعاد SchedulerOutput، وإلا يُعاد tuple حيث يكون العنصر الأول هو tensor العينة.

تنبّأ بالعينة من الخطوة الزمنية السابقة عن طريق عكس معادلة ستوكه التفاضلية. تنقل هذه الدالة العينة باستخدام طريقة رونغي-كوتا. تقوم بأربعة تمريرات أمامية لتقريب حل المعادلة التفاضلية.

SchedulerOutput

فئة diffusers.schedulers.scheduling_utils.SchedulerOutput

< >

( prev_sample: Tensor )

المعاملات

  • prev_sample (torch.Tensor من الشكل (batch_size, num_channels, height, width) للصور) — العينة المحسوبة (x_{t-1}) لخطوة الزمن السابقة. يجب استخدام prev_sample كمدخل للنموذج التالي في حلقة إزالة الضوضاء.

الفئة الأساسية لمخرجات دالة step في المجدول.

Update on GitHub