Buckets:
EulerDiscreteScheduler
مجدول أويلر (الخوارزمية 2) مأخوذ من ورقة إيضاح مساحة التصميم للنماذج التوليدية القائمة على الانتشار التي كتبها كاراس وآخرون. هذا مجدول سريع يمكنه غالبًا توليد مخرجات جيدة في 20-30 خطوة. يعتمد المجدول على التنفيذ الأصلي لـ k-diffusion بواسطة Katherine Crowson.
EulerDiscreteScheduler[[diffusers.EulerDiscreteScheduler]]
diffusers.EulerDiscreteScheduler[[diffusers.EulerDiscreteScheduler]]
diffusers.EulerDiscreteScheduler(num_train_timesteps: int = 1000, beta_start: float = 0.0001, beta_end: float = 0.02, beta_schedule: str = 'linear', trained_betas: numpy.ndarray | list[float] | None = None, prediction_type: str = 'epsilon', interpolation_type: str = 'linear', use_karras_sigmas: bool | None = False, use_exponential_sigmas: bool | None = False, use_beta_sigmas: bool | None = False, sigma_min: float | None = None, sigma_max: float | None = None, timestep_spacing: typing.Literal['linspace', 'leading', 'trailing'] = 'linspace', timestep_type: typing.Literal['discrete', 'continuous'] = 'discrete', steps_offset: int = 0, rescale_betas_zero_snr: bool = False, final_sigmas_type: typing.Literal['zero', 'sigma_min'] = 'zero')
المعاملات:
num_train_timesteps (int، القيمة الافتراضية 1000) : عدد خطوات الانتشار لتدريب النموذج.
beta_start (float، القيمة الافتراضية 0.0001) : القيمة الابتدائية لـbeta أثناء الاستدلال.
beta_end (float، القيمة الافتراضية 0.02) : القيمة النهائية لـbeta.
beta_schedule (Literal["linear", "scaled_linear", "squaredcos_cap_v2"]، الافتراضي "linear") : جدول بيتا، وهو إسناد من نطاق بيتا إلى تسلسل من قيم بيتا لتقدم النموذج خطوة بخطوة. اختر من بين "linear" أو "scaled_linear" أو "squaredcos_cap_v2".
trained_betas (np.ndarray، اختياري) : مرر مصفوفة من قيم بيتا مباشرةً إلى منشئ الكائن لتجاوز beta_start وbeta_end.
prediction_type (Literal["epsilon", "sample", "v_prediction"], defaults to "epsilon", optional) : Prediction type of the scheduler function; can be "epsilon" (predicts the noise of the diffusion process), "sample" (directly predicts the noisy sample) or "v_prediction"` (see section 2.4 of Imagen Video paper).
interpolation_type (Literal["linear", "log_linear"]، الافتراضي "linear"، اختياري) : نوع الاستيفاء لحساب قيم سيجما الوسيطة لخطوات إزالة الضوضاء في المجدول. يجب أن يكون أحد "linear" أو "log_linear".
use_karras_sigmas (bool، اختياري، القيمة الافتراضية False) : ما إذا كان سيتم استخدام قيم Karras sigmas لحجم الخطوات في جدول الضوضاء أثناء عملية أخذ العينات. إذا كانت القيمة True، تُحدَّد قيم sigmas وفقاً لسلسلة من مستويات الضوضاء {σi}.
use_exponential_sigmas (bool، اختياري، القيمة الافتراضية False) : ما إذا كان سيتم استخدام قيم سيجما أسّية لحجم الخطوات في جدول الضوضاء أثناء عملية أخذ العينات.
use_beta_sigmas (bool, optional, defaults to False) : 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.
sigma_min (float, اختياري) : القيمة الدنيا لسيجما في جدول الضوضاء. إذا لم تُقدَّم، فإن القيمة الافتراضية هي آخر قيمة سيجما في الجدول.
sigma_max (float, اختياري) : القيمة القصوى لسيجما في جدول الضوضاء. إذا لم تُقدَّم، فإن القيمة الافتراضية هي أول قيمة سيجما في الجدول.
timestep_spacing (Literal["linspace", "leading", "trailing"], defaults to "linspace") : 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.
timestep_type (Literal["discrete", "continuous"]، الافتراضي "discrete") : نوع خطوات الزمن المستخدمة. يمكن أن يكون "discrete" أو "continuous".
steps_offset (int، القيمة الافتراضية 0) : إزاحة تُضاف إلى خطوات الاستدلال، كما تتطلبها بعض عائلات النماذج.
rescale_betas_zero_snr (bool، القيمة الافتراضية False) : ما إذا كان يجب إعادة مقياس معاملات بيتا (betas) بحيث يكون SNR النهائي صفراً. يتيح هذا النموذج توليد عينات ساطعة جداً ومظلمة جداً بدلاً من تقييده بتوليد عينات بإضاءة متوسطة. له علاقة غير مباشرة بـ --offset_noise.
final_sigmas_type (Literal["zero", "sigma_min"]، الافتراضي "zero") : القيمة النهائية لـsigma في جدول الضوضاء أثناء عملية أخذ العينات. إذا كانت "sigma_min"، فإن قيمة sigma النهائية هي نفسها آخر قيمة sigma في جدول التدريب. إذا كانت "zero"، يتم تعيين قيمة sigma النهائية إلى 0.
مجدول أويلر.
يرث هذا النموذج من SchedulerMixin و ConfigMixin. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع مجدولات التعلم، مثل التحميل والحفظ.
add_noise[[diffusers.EulerDiscreteScheduler.add_noise]]
add_noise(original_samples: Tensor, noise: Tensor, timesteps: Tensor)
المعاملات:
original_samples (torch.Tensor) : العينات الأصلية التي سيتم إضافة الضوضاء إليها.
noise (torch.Tensor) : متجه الضوضاء الذي يُضاف إلى العينات الأصلية.
timesteps (torch.Tensor) : الخطوات الزمنية التي يُضاف عندها الضوضاء، مما يحدد مستوى الضوضاء من الجدول الزمني.
يعيد: torch.Tensor
العينات الضوضائية مع ضوضاء مضافة مُقيّمة وفقًا لجدول خطوات الزمن.
أضف الضوضاء إلى العينات الأصلية وفقًا لجدول الضوضاء عند خطوات الزمن المحددة.
get_velocity[[diffusers.EulerDiscreteScheduler.get_velocity]]
get_velocity(sample: Tensor, noise: Tensor, timesteps: Tensor)
المعاملات:
sample (torch.Tensor) : العينة المدخلة التي يتم حساب السرعة لها.
noise (torch.Tensor) : متجه الضوضاء (noise tensor) المقابل للعينة.
timesteps (torch.Tensor) : الخطوات الزمنية التي يتم حساب السرعة عندها.
يعيد: torch.Tensor
تُحسب التنبؤ بالسرعة على النحو التالي: sqrt(alpha_prod) * noise - sqrt(1 - alpha_prod) * sample.
احسب تنبؤ السرعة للعينة والضوضاء المعطات عند خطوات الزمن المحددة.
تنفّذ هذه الطريقة التنبؤ بالسرعة المستخدم في نماذج v-prediction، حيث تتنبأ بمجموعة خطية من العينة والضوضاء.
index_for_timestep[[diffusers.EulerDiscreteScheduler.index_for_timestep]]
index_for_timestep(timestep: typing.Union[float, torch.Tensor], schedule_timesteps: typing.Optional[torch.Tensor] = None)
المعاملات:
timestep (float أو torch.Tensor) : قيمة خطوة الزمن التي يجب البحث عنها في الجدول الزمني.
schedule_timesteps (torch.Tensor، اختياري) : جدول خطوات الزمن للبحث فيه. إذا كان None، يتم استخدام self.timesteps.
يعيد: int
مؤشر خطوة الزمن في الجدول. بالنسبة للخطوة الأولى تمامًا، يُرجع المؤشر الثاني إذا كانت هناك تطابقات متعددة، لتجنب تجاوز قيمة سيجما عند البدء من منتصف الجدول (مثلًا، في تحويل الصورة إلى صورة).
ابحث عن فهرس خطوة زمنية محددة في جدول الخطوات الزمنية.
scale_model_input[[diffusers.EulerDiscreteScheduler.scale_model_input]]
scale_model_input(sample: Tensor, timestep: typing.Union[float, torch.Tensor])
المعاملات:
sample (torch.Tensor) : العينة المدخلة التي سيتم قياس مقياسها.
timestep (float أو torch.Tensor) : الخطوة الزمنية الحالية في سلسلة الانتشار.
يعيد: torch.Tensor
عينة إدخال مُقيّمة، مقسومة على (sigma**2 + 1) ** 0.5.
يضمن قابلية الاستبدال مع المجدولات التي تحتاج إلى تحجيم مدخلات نموذج إزالة الضوضاء اعتمادًا على خطوة الزمن الحالية. يحجم مدخلات نموذج إزالة الضوضاء بواسطة (sigma**2 + 1) ** 0.5 ليتوافق مع خوارزمية أويلر.
set_begin_index[[diffusers.EulerDiscreteScheduler.set_begin_index]]
set_begin_index(begin_index: int = 0)
المعاملات:
begin_index (int، القيمة الافتراضية 0) : فهرس البداية للمجدول.
يحدد الفهرس الابتدائي للمجدول. يجب تشغيل هذه الدالة من خط الأنابيب قبل الاستدلال.
set_timesteps[[diffusers.EulerDiscreteScheduler.set_timesteps]]
set_timesteps(num_inference_steps: int = None, device: typing.Union[str, torch.device] = None, timesteps: list[int] | None = None, sigmas: list[float] | None = None)
المعاملات:
num_inference_steps (int, اختياري) : عدد خطوات الانتشار المستخدمة عند توليد العينات بنموذج مُدرَّب مسبقًا. إذا كان None، فيجب تقديم timesteps أو sigmas.
device (str أو torch.device، اختياري) : الجهاز الذي يجب نقل خطوات الزمن (timesteps) إليه. إذا كان None، فلن يتم نقل خطوات الزمن.
timesteps (list[int]، اختياري) : خطوات زمنية مخصصة تُستخدم لدعم جدول خطوات زمنية تعسفي. إذا كانت None، فسيتم توليد الخطوات الزمنية بناءً على خاصية timestep_spacing. إذا تم تمرير timesteps، فيجب أن تكون num_inference_steps وsigmas قيمتين None، وسيتم تجاهل خاصية timestep_spacing.
sigmas (list[float]، اختياري) : قيم سيجما مخصصة تُستخدم لدعم جدولة خطوات زمنية اختيارية. إذا كانت None، فسيتم توليد الخطوات الزمنية وقيم سيجما بناءً على خصائص المجدول ذي الصلة. إذا تم تمرير sigmas، فيجب أن تكون num_inference_steps وtimesteps قيمتين None، وسيتم توليد الخطوات الزمنية بناءً على جدول سيجما المخصص.
يحدد الخطوات الزمنية المنفصلة المستخدمة لسلسلة الانتشار (لتُنفَّذ قبل الاستدلال).
خطوة[[diffusers.EulerDiscreteScheduler.step]]
step(model_output: Tensor, timestep: typing.Union[float, torch.Tensor], sample: Tensor, s_churn: float = 0.0, s_tmin: float = 0.0, s_tmax: float = inf, s_noise: float = 1.0, generator: typing.Optional[torch.Generator] = None, return_dict: bool = True)
المعاملات:
model_output (torch.Tensor) : المخرجات المباشرة من نموذج الانتشار المُتعلَّم.
timestep (float أو torch.Tensor) : الخطوة الزمنية المنفصلة الحالية في سلسلة الانتشار.
sample (torch.Tensor) : نسخة حالية من عينة تم إنشاؤها بواسطة عملية الانتشار.
s_churn (float، اختياري، القيمة الافتراضية 0.0) : معامل العشوائية الذي يتحكم في كمية الضوضاء المضافة أثناء أخذ العينات. تزيد القيم الأعلى من درجة العشوائية.
s_tmin (float، اختياري، القيمة الافتراضية 0.0) : الحد الأدنى لخطوة الزمن لتطبيق العشوائية. لن يُضاف الضوضاء إلا للخطوات الزمنية التي تتجاوز هذه القيمة.
s_tmax (float، اختياري، القيمة الافتراضية inf) : الحد الأقصى لخطوة الزمن (timestep) لتطبيق العشوائية. لن يُضاف الضوضاء إلا للخطوات التي تكون قيمتها أقل من هذا الحد.
s_noise (float، اختياري، القيمة الافتراضية 1.0) : معامل التدرج للضوضاء المضافة إلى العينة.
generator (torch.Generator، اختياري) : مولّد أرقام عشوائية لعينات قابلة للتكرار.
return_dict (bool، اختياري، الافتراضي True) : ما إذا كان يجب إرجاع EulerDiscreteSchedulerOutput أو tuple.
يعيد: EulerDiscreteSchedulerOutput أو tuple
إذا كان return_dict هو True، يُعاد EulerDiscreteSchedulerOutput، وإلا يُعاد tuple حيث العنصر الأول هو tensor العينة والعنصر الثاني هو العينة الأصلية المتوقعة.
تنبّأ بالعيّنة من الخطوة الزمنية السابقة عن طريق عكس عملية المعادلة التفاضلية العشوائية (SDE). تنقل هذه الدالة عملية الانتشار من مخرجات النموذج المُتعلَّم (والتي تكون في الغالب الضوضاء المتنبَّأ بها).
EulerDiscreteSchedulerOutput[[diffusers.schedulers.scheduling_euler_discrete.EulerDiscreteSchedulerOutput]]
diffusers.schedulers.scheduling_euler_discrete.EulerDiscreteSchedulerOutput[[diffusers.schedulers.scheduling_euler_discrete.EulerDiscreteSchedulerOutput]]
diffusers.schedulers.scheduling_euler_discrete.EulerDiscreteSchedulerOutput(prev_sample: Tensor, pred_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 الخاصة بالجدول الزمني.
Xet Storage Details
- Size:
- 18 kB
- Xet hash:
- 73ec05fc16a761ab80514953d011cff0df14e9f5d78a0e671ffd6114b2aeeb3b
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.