Diffusers documentation
EulerAncestralDiscreteScheduler
EulerAncestralDiscreteScheduler
مجدول يستخدم العينة الأصلية مع خطوات طريقة أويلر. هذا مجدول سريع يمكنه غالبًا توليد مخرجات جيدة في 20-30 خطوة. يعتمد المجدول على التنفيذ الأصلي لـ k-diffusion بواسطة Katherine Crowson.
EulerAncestralDiscreteScheduler
فئة diffusers.EulerAncestralDiscreteScheduler
< source >( num_train_timesteps: int = 1000beta_start: float = 0.0001beta_end: float = 0.02beta_schedule: str = 'linear'trained_betas: numpy.ndarray | list[float] | None = Noneprediction_type: str = 'epsilon'timestep_spacing: str = 'linspace'steps_offset: int = 0rescale_betas_zero_snr: bool = False )
المعاملات
- 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") — جدول بيتا، وهو إسقاط من نطاق بيتا إلى تسلسل من قيم بيتا لخطوات النموذج. اختر من بينlinear،scaled_linear، أوsquaredcos_cap_v2. - 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). - timestep_spacing (
"linspace"،"leading"، أو"trailing"، الافتراضي هو"linspace") — طريقة توسيع خطوات الزمن. راجع الجدول 2 في جداول ضوضاء الانتشار الشائعة وخطوات العينة معيبة لمزيد من المعلومات. - steps_offset (
int، القيمة الافتراضية 0) — إزاحة تُضاف إلى خطوات الاستدلال، كما تتطلبها بعض عائلات النماذج. - rescale_betas_zero_snr (
bool، القيمة الافتراضيةFalse) — ما إذا كان يجب إعادة مقياس معاملات بيتا (betas) بحيث تكون نسبة الإشارة إلى الضوضاء النهائية (terminal SNR) صفرًا. يتيح هذا للنموذج توليد عينات ساطعة جدًا ومظلمة جدًا بدلاً من تقييده بتوليد عينات بإضاءة متوسطة. يرتبط ارتباطًا فضفاضًا بـ--offset_noise.
العينة الأصلية بخطوات طريقة أويلر.
يرث هذا النموذج من 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
يضمن قابلية الاستبدال مع المجدولات التي تحتاج إلى تحجيم مدخلات نموذج إزالة الضوضاء اعتمادًا على خطوة الزمن الحالية. يحجم مدخلات نموذج إزالة الضوضاء بواسطة (sigma**2 + 1) ** 0.5 ليتوافق مع خوارزمية أويلر.
set_begin_index
< source >( begin_index: int = 0 )
يحدد الفهرس الابتدائي للمجدول. يجب تشغيل هذه الدالة من خط الأنابيب قبل الاستدلال.
set_timesteps
< source >( num_inference_steps: intdevice: typing.Union[str, torch.device] = None )
يحدد الخطوات الزمنية المنفصلة المستخدمة لسلسلة الانتشار (لتُنفَّذ قبل الاستدلال).
خطوة
< source >( model_output: Tensortimestep: typing.Union[float, torch.Tensor]sample: Tensorgenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool = True ) → EulerAncestralDiscreteSchedulerOutput or tuple
المعاملات
- model_output (
torch.Tensor) — المخرجات المباشرة من نموذج الانتشار المُتعلَّم. - timestep (
floatأوtorch.Tensor) — خطوة الزمن المنفصلة الحالية في سلسلة الانتشار. - sample (
torch.Tensor) — نسخة حالية من العينة التي أنشأها عملية الانتشار. - generator (
torch.Generator، اختياري) — مولّد أرقام عشوائية. - return_dict (
bool، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاع EulerAncestralDiscreteSchedulerOutput أو tuple.
يعيد
If return_dict is True,
EulerAncestralDiscreteSchedulerOutput is returned,
otherwise a tuple is returned where the first element is the sample tensor.
تنبّأ بالعيّنة من الخطوة الزمنية السابقة عن طريق عكس عملية المعادلة التفاضلية العشوائية (SDE). تنقل هذه الدالة عملية الانتشار من مخرجات النموذج المُتعلَّم (والتي تكون في الغالب الضوضاء المتنبَّأ بها).
EulerAncestralDiscreteSchedulerOutput
فئة diffusers.schedulers.scheduling_euler_ancestral_discrete.EulerAncestralDiscreteSchedulerOutput
< source >( prev_sample: Tensorpred_original_sample: typing.Optional[torch.Tensor] = None )
المعاملات
- prev_sample (
torch.Tensorمن الشكل(batch_size, num_channels, height, width)للصور) — العينة المحسوبة(x_{t-1})لخطوة الزمن السابقة. يجب استخدامprev_sampleكمدخل للنموذج التالي في حلقة إزالة الضوضاء. - pred_original_sample (
torch.Tensorمن الشكل(batch_size, num_channels, height, width)للصور) — العينة المُتنبَّأ بها بعد إزالة الضوضاء(x_{0})بناءً على مخرجات النموذج من خطوة الزمن الحالية. يمكن استخدامpred_original_sampleلمعاينة التقدم أو للتوجيه.
فئة الإخراج لدالة step الخاصة بالجدول الزمني.