Diffusers documentation

FlowMatchEulerDiscreteScheduler

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

FlowMatchEulerDiscreteScheduler

FlowMatchEulerDiscreteScheduler مبني على أخذ العينات المطابق للتدفق (flow-matching sampling) الذي تم تقديمه في Stable Diffusion 3.

FlowMatchEulerDiscreteScheduler

فئة diffusers.FlowMatchEulerDiscreteScheduler

< >

( num_train_timesteps: int = 1000shift: float = 1.0use_dynamic_shifting: bool = Falsebase_shift: float | None = 0.5max_shift: float | None = 1.15base_image_seq_len: int = 256max_image_seq_len: int = 4096invert_sigmas: bool = Falseshift_terminal: float = Noneuse_karras_sigmas: bool = Falseuse_exponential_sigmas: bool = Falseuse_beta_sigmas: bool = Falsetime_shift_type: typing.Literal['exponential', 'linear'] = 'exponential'stochastic_sampling: bool = False )

المعاملات

  • num_train_timesteps (int، القيمة الافتراضية 1000) — عدد خطوات الانتشار لتدريب النموذج.
  • shift (float، القيمة الافتراضية 1.0) — قيمة الإزاحة لجدول خطوات الزمن.
  • use_dynamic_shifting (bool، القيمة الافتراضية False) — ما إذا كان سيتم تطبيق إزاحة خطوة الزمن (timestep shifting) بشكل فوري بناءً على دقة الصورة.
  • base_shift (float، القيمة الافتراضية 0.5) — القيمة المستخدمة لتثبيت توليد الصور. زيادة base_shift تقلل من التباين وتجعل الصورة أكثر اتساقاً مع المخرجات المطلوبة.
  • max_shift (float)، القيمة الافتراضية 1.15) — قيمة التغيير المسموح به للمتجهات الكامنة. زيادة max_shift تشجع على مزيد من التنوع، وقد تصبح الصورة أكثر مبالغة أو تنسيقًا.
  • base_image_seq_len (int، القيمة الافتراضية 256) — طول تسلسل الصورة الأساسي.
  • max_image_seq_len (int، القيمة الافتراضية 4096) — الحد الأقصى لطول تسلسل الصورة.
  • invert_sigmas (bool، القيمة الافتراضية False) — ما إذا كان يجب عكس قيم sigmas.
  • shift_terminal (float، القيمة الافتراضية هي None) — القيمة النهائية لجدول خطوات الزمن المُزاحة.
  • use_karras_sigmas (bool، القيمة الافتراضية False) — ما إذا كان سيتم استخدام Karras sigmas لحجم الخطوات في جدول الضوضاء أثناء أخذ العينات.
  • use_exponential_sigmas (bool، القيمة الافتراضية False) — ما إذا كان سيتم استخدام قيم sigmas أسّية لحجم الخطوات في جدول الضوضاء أثناء أخذ العينات.
  • use_beta_sigmas (bool، القيمة الافتراضية False) — ما إذا كان سيتم استخدام بيتا سيغما لحجم الخطوات في جدول الضوضاء أثناء أخذ العينات.
  • time_shift_type (str، القيمة الافتراضية “exponential”) — نوع إزاحة خطوات الزمن الديناميكية المعتمدة على الدقة التي سيتم تطبيقها. إما “exponential” أو “linear”.
  • stochastic_sampling (bool، الافتراضي False) — ما إذا كان سيتم استخدام العينة العشوائية.

مجدول أويلر.

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

index_for_timestep

< >

( timestep: typing.Union[float, torch.FloatTensor]schedule_timesteps: typing.Optional[torch.FloatTensor] = None ) → int

المعاملات

  • timestep (float أو torch.FloatTensor) — خطوة الزمن التي نبحث عن فهرسها.
  • schedule_timesteps (torch.FloatTensor، اختياري) — خطوات الجدولة التي سيتم التحقق منها. إذا كانت None، تُستخدم خطوات الجدولة الخاصة بالمجدول.

يعيد

int

مؤشر خطوة الزمن.

احصل على فهرس خطوة الزمن المعطاة.

scale_noise

< >

( sample: FloatTensortimestep: typing.Union[float, torch.FloatTensor]noise: typing.Optional[torch.FloatTensor] = None ) → torch.FloatTensor

المعاملات

  • sample (torch.FloatTensor) — العينة المدخلة.
  • timestep (torch.FloatTensor) — خطوة الزمن الحالية في سلسلة الانتشار.
  • noise (torch.FloatTensor) — مصفوفة الضوضاء.

يعيد

torch.FloatTensor

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

العملية الأمامية في مطابقة التدفق

set_begin_index

< >

( begin_index: int = 0 )

المعاملات

  • begin_index (int، القيمة الافتراضية 0) — الفهرس الابتدائي للمجدول.

يحدد الفهرس الابتدائي للمجدول. يجب تشغيل هذه الدالة من خط الأنابيب قبل الاستدلال.

set_shift

< >

( shift: float )

المعاملات

  • shift (float) — قيمة الإزاحة التي سيتم تعيينها.

يحدد قيمة الإزاحة للمجدول.

set_timesteps

< >

( num_inference_steps: int | None = Nonedevice: typing.Union[str, torch.device] = Nonesigmas: list[float] | None = Nonemu: float | None = Nonetimesteps: list[float] | None = None )

المعاملات

  • num_inference_steps (int, اختياري) — عدد خطوات الانتشار المستخدمة عند توليد العينات باستخدام نموذج مُدرَّب مسبقًا.
  • device (str أو torch.device، اختياري) — الجهاز الذي يجب نقل خطوات الزمن (timesteps) إليه. إذا كان None، فلن يتم نقل خطوات الزمن.
  • sigmas (list[float]، اختياري) — قيم مخصصة لـ sigmas تُستخدم لكل خطوة من خطوات الانتشار. إذا كانت None، تُحسب قيم sigmas تلقائيًا.
  • mu (float، اختياري) — يحدد مقدار الإزاحة المطبقة على قيم sigmas عند تنفيذ إزاحة خطوات الزمن المعتمدة على الدقة.
  • timesteps (list[float]، اختياري) — قيم مخصصة لخطوات الزمن (timesteps) تُستخدم في كل خطوة من خطوات الانتشار. إذا كانت None، تُحسب خطوات الزمن تلقائيًا.

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

خطوة

< >

( model_output: FloatTensortimestep: typing.Union[float, torch.FloatTensor]sample: FloatTensors_churn: float = 0.0s_tmin: float = 0.0s_tmax: float = infs_noise: float = 1.0generator: typing.Optional[torch.Generator] = Noneper_token_timesteps: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True ) → FlowMatchEulerDiscreteSchedulerOutput or tuple

المعاملات

  • model_output (torch.FloatTensor) — المخرجات المباشرة من نموذج الانتشار المُتعلَّم.
  • timestep (float) — خطوة الزمن المنفصلة الحالية في سلسلة الانتشار.
  • sample (torch.FloatTensor) — نسخة حالية من العينة التي أنشأها عملية الانتشار.
  • s_churn (float) —
  • s_tmin (float) —
  • s_tmax (float) —
  • s_noise (float، القيمة الافتراضية 1.0) — معامل التدرج للضوضاء المضافة إلى العينة.
  • generator (torch.Generator، اختياري) — مولّد أرقام عشوائية.
  • per_token_timesteps (torch.Tensor، اختياري) — خطوات الزمن لكل رمز في العينة.
  • return_dict (bool، القيمة الافتراضية True) — ما إذا كان يجب إرجاع FlowMatchEulerDiscreteSchedulerOutput أو tuple.

يعيد

FlowMatchEulerDiscreteSchedulerOutput أو tuple

If return_dict is True, FlowMatchEulerDiscreteSchedulerOutput is returned, otherwise a tuple is returned where the first element is the sample tensor.

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

stretch_shift_to_terminal

< >

( t: Tensor ) → torch.Tensor

المعاملات

  • t (torch.Tensor) — مصفوفة (Tensor) لخطوات الزمن (timesteps) التي سيتم تمديدها وإزاحتها.

يعيد

torch.Tensor

مصفوفة (Tensor) من خطوات الزمن المُعدَّلة بحيث تكون القيمة النهائية مساوية لـ self.config.shift_terminal.

يمدّ جدول خطوات الزمن ويحرّكه لضمان أنه ينتهي عند قيمة الإعداد shift_terminal المُحدَّدة.

مرجع: https://github.com/Lightricks/LTX-Video/blob/a01a171f8fe3d99dce2728d60a73fecf4d4238ae/ltx_video/schedulers/rf.py#L51

time_shift

< >

( mu: floatsigma: floatt: Tensor ) → torch.Tensor

المعاملات

  • mu (float) — معامل mu الخاص بإزاحة الوقت.
  • sigma (float) — معامل sigma الخاص بإزاحة الوقت.
  • t (torch.Tensor) — خطوات الإدخال الزمنية.

يعيد

torch.Tensor

خطوات الزمن المُزاحة.

طبّق إزاحةً زمنية على قيم sigmas.

Update on GitHub