Buckets:
EDMEulerScheduler
صياغة كاراس لمجدول أويلر (الخوارزمية 2) من ورقة إيضاح مساحة تصميم النماذج التوليدية القائمة على الانتشار التي كتبها كاراس وآخرون. هذا مجدول سريع يمكنه غالبًا توليد مخرجات جيدة في 20-30 خطوة. يعتمد المجدول على التنفيذ الأصلي لـ k-diffusion بواسطة Katherine Crowson.
EDMEulerScheduler[[diffusers.EDMEulerScheduler]]
diffusers.EDMEulerScheduler[[diffusers.EDMEulerScheduler]]
diffusers.EDMEulerScheduler(sigma_min: float = 0.002, sigma_max: float = 80.0, sigma_data: float = 0.5, sigma_schedule: typing.Literal['karras', 'exponential'] = 'karras', num_train_timesteps: int = 1000, prediction_type: typing.Literal['epsilon', 'v_prediction'] = 'epsilon', rho: float = 7.0, final_sigmas_type: typing.Literal['zero', 'sigma_min'] = 'zero')
المعاملات:
sigma_min (float، اختياري، القيمة الافتراضية 0.002) : الحد الأدنى لحجم الضوضاء في جدول سيجما. تم ضبط هذه القيمة على 0.002 في ورقة EDM [1]؛ والنطاق المعقول هو [0، 10].
sigma_max (float، اختياري، القيمة الافتراضية 80.0) : الحد الأقصى لحجم الضوضاء في جدول سيجما. تم ضبطه على 80.0 في ورقة EDM [1]؛ النطاق المعقول هو [0.2، 80.0].
sigma_data (float، اختياري، القيمة الافتراضية 0.5) : الانحراف المعياري لتوزيع البيانات. تم ضبطه على 0.5 في ورقة EDM [1].
sigma_schedule (Literal["karras", "exponential"]، اختياري، القيمة الافتراضية "karras") : جدول سيجما لحساب sigmas. بشكل افتراضي، نستخدم الجدول المقدم في ورقة EDM (https://huggingface.co/papers/2206.00364). تم دمج جدول "exponential" في هذا النموذج: https://huggingface.co/stabilityai/cosxl.
num_train_timesteps (int، اختياري، القيمة الافتراضية 1000) : عدد خطوات الانتشار (diffusion steps) لتدريب النموذج.
prediction_type (Literal["epsilon", "v_prediction"]، اختياري، القيمة الافتراضية "epsilon") : نوع التنبؤ لدالة المجدول. يتنبأ "epsilon" بالضوضاء في عملية الانتشار، بينما يتنبأ "v_prediction" (انظر القسم 2.4 من ورقة Imagen Video).
rho (float، اختياري، القيمة الافتراضية 7.0) : معامل rho المستخدم لحساب جدول Karras sigma، والذي تم ضبطه على 7.0 في ورقة EDM [1].
final_sigmas_type (Literal["zero", "sigma_min"]، اختياري، القيمة الافتراضية "zero") : القيمة النهائية لـsigma في جدول الضوضاء أثناء عملية أخذ العينات. إذا كانت "sigma_min"، فإن قيمة sigma النهائية هي نفسها آخر قيمة sigma في جدول التدريب. إذا كانت "zero"، يتم تعيين قيمة sigma النهائية إلى 0.
يُنفّذ مُجدول أويلر بصياغة EDM كما ورد في Karras et al. 2022 [1].
[1] كاراس، تيرو، وآخرون. “إيضاح مساحة التصميم للنماذج التوليدية القائمة على الانتشار.” https://huggingface.co/papers/2206.00364
يرث هذا النموذج من SchedulerMixin و ConfigMixin. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع مجدولات التعلم، مثل التحميل والحفظ.
add_noise[[diffusers.EDMEulerScheduler.add_noise]]
add_noise(original_samples: Tensor, noise: Tensor, timesteps: Tensor)
المعاملات:
original_samples (torch.Tensor) : العينات الأصلية التي سيتم إضافة الضوضاء إليها.
noise (torch.Tensor) : متجه الضوضاء الذي يُضاف إلى العينات الأصلية.
timesteps (torch.Tensor) : الخطوات الزمنية التي يُضاف عندها الضوضاء، مما يحدد مستوى الضوضاء من الجدول الزمني.
يعيد: torch.Tensor
العينات الضوضائية مع ضوضاء مضافة مُقيّمة وفقًا لجدول خطوات الزمن.
أضف الضوضاء إلى العينات الأصلية وفقًا لجدول الضوضاء عند خطوات الزمن المحددة.
index_for_timestep[[diffusers.EDMEulerScheduler.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
مؤشر خطوة الزمن في الجدول. بالنسبة للخطوة الأولى تمامًا، يُرجع المؤشر الثاني إذا كانت هناك تطابقات متعددة، لتجنب تجاوز قيمة سيجما عند البدء من منتصف الجدول (مثلًا، في تحويل الصورة إلى صورة).
ابحث عن فهرس خطوة زمنية محددة في جدول الخطوات الزمنية.
precondition_inputs[[diffusers.EDMEulerScheduler.precondition_inputs]]
precondition_inputs(sample: Tensor, sigma: typing.Union[float, torch.Tensor])
المعاملات:
sample (torch.Tensor) : متجه العينة المُدخل الذي يجب تجهيزه مسبقًا.
sigma (float أو torch.Tensor) : القيمة الحالية لسيجما (مستوى الضوضاء).
يعيد: torch.Tensor
عينة الإدخال المُقيَّمة.
جهّز عينة الإدخال مسبقًا عن طريق تحجيمها وفقًا لصياغة EDM.
precondition_noise[[diffusers.EDMEulerScheduler.precondition_noise]]
precondition_noise(sigma: typing.Union[float, torch.Tensor])
المعاملات:
sigma (float أو torch.Tensor) : قيمة سيجما (مستوى الضوضاء) التي سيتم إعدادها مسبقًا.
يعيد: torch.Tensor
قيمة الضوضاء المُعدَّلة المُحسوبة على أنها 0.25 * log(sigma).
قم بتكييف مستوى الضوضاء من خلال تطبيق تحويل لوغاريتمي.
precondition_outputs[[diffusers.EDMEulerScheduler.precondition_outputs]]
precondition_outputs(sample: Tensor, model_output: Tensor, sigma: typing.Union[float, torch.Tensor])
المعاملات:
sample (torch.Tensor) : متجه العينة المُدخل.
model_output (torch.Tensor) : المخرجات المباشرة من نموذج الانتشار المُتعلَّم.
sigma (float أو torch.Tensor) : القيمة الحالية لسيجما (مستوى الضوضاء).
يعيد: torch.Tensor
العينة المُزالة الضوضاء المحسوبة عن طريق دمج اتصال التخطي وتوسيط المخرجات.
قم بإعداد مخرجات النموذج مسبقاً وفقاً لصياغة EDM.
scale_model_input[[diffusers.EDMEulerScheduler.scale_model_input]]
scale_model_input(sample: Tensor, timestep: typing.Union[float, torch.Tensor])
المعاملات:
sample (torch.Tensor) : متجه العينة المُدخل.
timestep (float أو torch.Tensor) : الخطوة الزمنية الحالية في سلسلة الانتشار.
يعيد: torch.Tensor
عينة إدخال مُقيّمة.
قم بتوسيع مدخلات نموذج إزالة الضوضاء لتتوافق مع خوارزمية Euler. يضمن ذلك إمكانية الاستبدال مع المجدولات التي تحتاج إلى توسيع مدخلات نموذج إزالة الضوضاء اعتمادًا على خطوة الزمن الحالية.
set_begin_index[[diffusers.EDMEulerScheduler.set_begin_index]]
set_begin_index(begin_index: int = 0)
المعاملات:
begin_index (int، القيمة الافتراضية 0) : فهرس البداية للمجدول.
يحدد الفهرس الابتدائي للمجدول. يجب تشغيل هذه الدالة من خط الأنابيب قبل الاستدلال.
set_timesteps[[diffusers.EDMEulerScheduler.set_timesteps]]
set_timesteps(num_inference_steps: int = None, device: typing.Union[str, torch.device] = None, sigmas: typing.Union[list[float], torch.Tensor, NoneType] = None)
المعاملات:
num_inference_steps (int، اختياري) : عدد خطوات الانتشار المستخدمة عند توليد العينات باستخدام نموذج مُدرَّب مسبقًا.
device (str أو torch.device، اختياري) : الجهاز الذي يجب نقل خطوات الزمن (timesteps) إليه. إذا كان None، فلن يتم نقل خطوات الزمن.
sigmas (torch.Tensor | list[float], اختياري) : قيم سيجما مخصصة لاستخدامها في عملية إزالة الضوضاء. إذا لم تُعرَّف، فسيتم استخدام السلوك الافتراضي عند تمرير num_inference_steps.
يحدد الخطوات الزمنية المنفصلة المستخدمة لسلسلة الانتشار (لتُنفَّذ قبل الاستدلال).
خطوة[[diffusers.EDMEulerScheduler.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, pred_original_sample: typing.Optional[torch.Tensor] = None)
المعاملات:
model_output (torch.Tensor) : المخرجات المباشرة من نموذج الانتشار المُتعلَّم.
timestep (float أو torch.Tensor) : الخطوة الزمنية المنفصلة الحالية في سلسلة الانتشار.
sample (torch.Tensor) : نسخة حالية من عينة تم إنشاؤها بواسطة عملية الانتشار.
s_churn (float، اختياري، القيمة الافتراضية 0.0) : مقدار العشوائية المضاف في كل خطوة. تضيف القيم الأعلى المزيد من الضوضاء.
s_tmin (float، اختياري، القيمة الافتراضية 0.0) : الحد الأدنى لعتبة سيغما التي لا يُضاف تحتها أي ضوضاء.
s_tmax (float، اختياري، القيمة الافتراضية float("inf")) : الحد الأقصى لعتبة سيجما التي لا يُضاف فوقها أي ضوضاء.
s_noise (float، اختياري، القيمة الافتراضية 1.0) : معامل التدرج للضوضاء المضافة إلى العينة.
generator (torch.Generator، اختياري) : مولّد أرقام عشوائية من أجل قابلية التكرار.
return_dict (bool، اختياري، القيمة الافتراضية True) : ما إذا كان يجب إرجاع EDMEulerSchedulerOutput أو tuple.
pred_original_sample (torch.Tensor, اختياري) : العينة المُتنبَّأ بها بعد إزالة الضوضاء من خطوة سابقة. إذا تم تقديمها، يتم تجاوز إعادة الحساب.
يعيد: EDMEulerSchedulerOutput أو tuple
إذا كان return_dict هو True، يُعاد EDMEulerSchedulerOutput، وإلا يُعاد tuple حيث العنصر الأول هو tensor للعينة السابقة والعنصر الثاني هو tensor للعينة الأصلية المتوقعة.
تنبّأ بالعيّنة من الخطوة الزمنية السابقة عن طريق عكس عملية المعادلة التفاضلية العشوائية (SDE). تنقل هذه الدالة عملية الانتشار من مخرجات النموذج المُتعلَّم (والتي تكون في الغالب الضوضاء المتنبَّأ بها).
EDMEulerSchedulerOutput[[diffusers.schedulers.scheduling_edm_euler.EDMEulerSchedulerOutput]]
diffusers.schedulers.scheduling_edm_euler.EDMEulerSchedulerOutput[[diffusers.schedulers.scheduling_edm_euler.EDMEulerSchedulerOutput]]
diffusers.schedulers.scheduling_edm_euler.EDMEulerSchedulerOutput(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:
- 15.9 kB
- Xet hash:
- 3a35fe97a824c74fee2e683c6f50eb5ced2061664d82978b5fac45412e138bd1
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.