Diffusers documentation
HeunDiscreteScheduler
HeunDiscreteScheduler
مجدول هوين (الخوارزمية 1) مستمد من ورقة إيضاح مساحة التصميم للنماذج التوليدية القائمة على الانتشار التي كتبها كاراس وآخرون. تم نقل هذا المجدول من مكتبة k-diffusion التي أنشأتها كاترين كروسون.
HeunDiscreteScheduler
فئة diffusers.HeunDiscreteScheduler
< source >( num_train_timesteps: int = 1000beta_start: float = 0.00085beta_end: float = 0.012beta_schedule: str = 'linear'trained_betas: numpy.ndarray | list[float] | None = Noneprediction_type: str = 'epsilon'use_karras_sigmas: bool = Falseuse_exponential_sigmas: bool = Falseuse_beta_sigmas: bool = Falseclip_sample: bool = Falseclip_sample_range: float = 1.0timestep_spacing: typing.Literal['linspace', 'leading', 'trailing'] = 'linspace'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"، أو"exp"، الافتراضي هو"linear") — جدول بيتا، وهو إسقاط من نطاق بيتا إلى تسلسل من قيم بيتا لتقدم النموذج خطوة بخطوة. اختر من بينlinear،scaled_linear،squaredcos_cap_v2، أوexp. - trained_betas (
np.ndarray، اختياري) — مرر مصفوفة من قيم بيتا مباشرةً إلى منشئ الكائن لتجاوزbeta_startوbeta_end. - prediction_type (
"epsilon","sample", or"v_prediction", defaults to"epsilon", optional) — Prediction type of the scheduler function; can beepsilon(predicts the noise of the diffusion process),sample(directly predicts the noisy sample) orv_prediction` (see section 2.4 of Imagen Video paper). - clip_sample (
bool، القيمة الافتراضيةTrue) — يقوم بقص العينة المتوقعة من أجل الاستقرار العددي. - clip_sample_range (
float، القيمة الافتراضية 1.0) — الحد الأقصى لشدة قص العينات. صالح فقط عندما يكونclip_sample=True. - use_karras_sigmas (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام Karras sigmas لحجم الخطوات في جدول الضوضاء أثناء عملية أخذ العينات. إذا كانتTrue، فإن قيم sigmas تُحدَّد وفقاً لسلسلة من مستويات الضوضاء {σi}. - use_exponential_sigmas (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام قيم sigmas أسّية لحجم الخطوات في جدول الضوضاء أثناء عملية أخذ العينات. - use_beta_sigmas (
bool, optional, defaults toFalse) — Whether to use beta sigmas for step sizes in the noise schedule during the sampling process. Refer to Beta Sampling is All You Need for more information. - timestep_spacing (
"linspace"،"leading"، أو"trailing"، الافتراضي هو"linspace") — طريقة توسيع خطوات الزمن. راجع الجدول 2 في جداول ضوضاء الانتشار الشائعة وخطوات العينة معيبة لمزيد من المعلومات. - steps_offset (
int، القيمة الافتراضية 0) — إزاحة تُضاف إلى خطوات الاستدلال، كما تتطلبها بعض عائلات النماذج.
مجدول بخطوات هون لجدولة بيتا المنفصلة.
يرث هذا النموذج من SchedulerMixin و ConfigMixin. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع مجدوليات الوقت مثل التحميل والحفظ.
add_noise
< source >( original_samples: Tensornoise: Tensortimesteps: Tensor ) → torch.Tensor
المعاملات
- original_samples (
torch.Tensor) — العينات الأصلية التي سيتم إضافة الضوضاء إليها. - noise (
torch.Tensor) — مصفوفة الضوضاء التي تُضاف إلى العينات الأصلية. - timesteps (
torch.Tensor) — خطوات الزمن التي يُضاف عندها الضوضاء، والتي تحدد مستوى الضوضاء من الجدول الزمني.
يعيد
torch.Tensor
العينات الضوضائية مع ضوضاء مضافة مُقيّمة وفقًا لجدول خطوات الزمن.
أضف الضوضاء إلى العينات الأصلية وفقًا لجدول الضوضاء عند خطوات الزمن المحددة.
index_for_timestep
< source >( timestep: typing.Union[float, torch.Tensor]schedule_timesteps: typing.Optional[torch.Tensor] = None ) → int
المعاملات
- timestep (
floatأوtorch.Tensor) — قيمة الخطوة الزمنية التي يجب البحث عنها في الجدول الزمني. - schedule_timesteps (
torch.Tensor، اختياري) — جدول الخطوات الزمنية للبحث فيه. إذا كانNone، يتم استخدامself.timesteps.
يعيد
int
مؤشر خطوة الزمن في الجدول. بالنسبة للخطوة الأولى تمامًا، يُرجع المؤشر الثاني إذا كانت هناك تطابقات متعددة لتجنب تخطي قيمة سيجما عند البدء من منتصف الجدول (مثلًا، في تحويل الصورة إلى صورة).
ابحث عن فهرس خطوة زمنية محددة في جدول الخطوات الزمنية.
scale_model_input
< source >( sample: Tensortimestep: typing.Union[float, torch.Tensor] ) → torch.Tensor
يضمن قابلية الاستبدال مع المجدولات التي تحتاج إلى تحجيم مدخلات نموذج إزالة الضوضاء اعتمادًا على خطوة الزمن الحالية.
set_begin_index
< source >( begin_index: int = 0 )
يحدد الفهرس الابتدائي للمجدول. يجب تشغيل هذه الدالة من خط الأنابيب قبل الاستدلال.
set_timesteps
< source >( num_inference_steps: int | None = Nonedevice: typing.Union[str, torch.device] = Nonenum_train_timesteps: int | None = Nonetimesteps: list[int] | None = None )
المعاملات
- num_inference_steps (
int، اختياري، القيمة الافتراضيةNone) — عدد خطوات الانتشار المستخدمة عند توليد العينات باستخدام نموذج مُدرَّب مسبقًا. - device (
str،torch.device، اختياري، القيمة الافتراضيةNone) — الجهاز الذي يجب نقل خطوات الزمن (timesteps) إليه. إذا كانتNone، فلن يتم نقل خطوات الزمن. - num_train_timesteps (
int، اختياري، القيمة الافتراضيةNone) — عدد خطوات الانتشار المستخدمة عند تدريب النموذج. إذا كانتNone، يتم استخدام الخاصية الافتراضيةnum_train_timesteps. - timesteps (
list[int]، اختياري) — خطوات زمنية مخصصة تُستخدم لدعم تباعد تعسفي بين الخطوات الزمنية. إذا كانتNone، فسيتم توليد الخطوات الزمنية بناءً على خاصيةtimestep_spacing. إذا تم تمريرtimesteps، فيجب أن تكونnum_inference_stepsمساوية لـNone، وسيتم تجاهل خاصيةtimestep_spacing.
يحدد الخطوات الزمنية المنفصلة المستخدمة لسلسلة الانتشار (لتُنفَّذ قبل الاستدلال).
خطوة
< source >( model_output: typing.Union[torch.Tensor, numpy.ndarray]timestep: typing.Union[float, torch.Tensor]sample: typing.Union[torch.Tensor, numpy.ndarray]return_dict: bool = True ) → HeunDiscreteSchedulerOutput or tuple
المعاملات
- model_output (
torch.Tensor) — المخرجات المباشرة من نموذج الانتشار المُتعلَّم. - timestep (
float) — خطوة الزمن المنفصلة الحالية في سلسلة الانتشار. - sample (
torch.Tensor) — نسخة حالية من العينة التي أنشأها عملية الانتشار. - return_dict (
bool) — ما إذا كان يجب إرجاعHeunDiscreteSchedulerOutputأو tuple.
يعيد
HeunDiscreteSchedulerOutput أو tuple
If return_dict is True, HeunDiscreteSchedulerOutput is
returned, otherwise a tuple is returned where the first element is the sample tensor.
تنبّأ بالعيّنة من الخطوة الزمنية السابقة عن طريق عكس عملية المعادلة التفاضلية العشوائية (SDE). تنقل هذه الدالة عملية الانتشار من مخرجات النموذج المُتعلَّم (والتي تكون في الغالب الضوضاء المتنبَّأ بها).
SchedulerOutput
فئة diffusers.schedulers.scheduling_utils.SchedulerOutput
< source >( prev_sample: Tensor )
الفئة الأساسية لمخرجات دالة step في المجدول.