Diffusers documentation
FlowMatchEulerDiscreteScheduler
FlowMatchEulerDiscreteScheduler
FlowMatchEulerDiscreteScheduler مبني على أخذ العينات المطابق للتدفق (flow-matching sampling) الذي تم تقديمه في Stable Diffusion 3.
FlowMatchEulerDiscreteScheduler
فئة diffusers.FlowMatchEulerDiscreteScheduler
< source >( 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
< source >( timestep: typing.Union[float, torch.FloatTensor]schedule_timesteps: typing.Optional[torch.FloatTensor] = None ) → int
احصل على فهرس خطوة الزمن المعطاة.
scale_noise
< source >( sample: FloatTensortimestep: typing.Union[float, torch.FloatTensor]noise: typing.Optional[torch.FloatTensor] = None ) → torch.FloatTensor
العملية الأمامية في مطابقة التدفق
set_begin_index
< source >( begin_index: int = 0 )
يحدد الفهرس الابتدائي للمجدول. يجب تشغيل هذه الدالة من خط الأنابيب قبل الاستدلال.
يحدد قيمة الإزاحة للمجدول.
set_timesteps
< source >( 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، تُحسب خطوات الزمن تلقائيًا.
يحدد الخطوات الزمنية المنفصلة المستخدمة لسلسلة الانتشار (لتُنفَّذ قبل الاستدلال).
خطوة
< source >( 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
< source >( t: Tensor ) → torch.Tensor
يمدّ جدول خطوات الزمن ويحرّكه لضمان أنه ينتهي عند قيمة الإعداد shift_terminal المُحدَّدة.
time_shift
< source >( mu: floatsigma: floatt: Tensor ) → torch.Tensor
طبّق إزاحةً زمنية على قيم sigmas.