Diffusers documentation

MiniMaxH3Scheduler

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

MiniMaxH3Scheduler

MiniMaxH3Scheduler هو مُجدول أويلر للتدفق المُصحَّح (eta = 0) مع إزاحة سيجما أُسّية يستخدمها MiniMax-H3، sigma' = s * sigma / (1 + (s - 1) * sigma).

تسجّل خطوط أنابيب MiniMax-H3 اثنتين منها، لأنّ الكامنات (latents) الخاصة بالفيديو والصوت تتقدّم وفق جدولين مختلفين داخل استدعاء واحد لتحوّل (transformer) في كل خطوة: يحمل scheduler جدول الفيديو (shift=12.0 في نقاط التفتيش المنشورة) وaudio_scheduler جدول الصوت (shift=3.0).

MiniMaxH3Scheduler

فئة diffusers.MiniMaxH3Scheduler

< >

( shift: float = 12.0stochastic_sampling: bool = Falseshift_provided_sigmas: bool | None = None )

المعاملات

  • shift (float، القيمة الافتراضية 12.0) — إزاحة أسّية تُطبَّق على شبكة سيجما، sigma' = s*sigma / (1 + (s-1)*sigma). تستخدم نقاط التفتيش المُصدَّرة قيمة 12.0 لمتغيرات الفيديو الكامنة و3.0 لمتغيرات الصوت الكامنة.
  • stochastic_sampling (bool، القيمة الافتراضية False) — استبدل مزيج أويلر بتحديث إعادة الضجيج: تنبأ بالعينة النظيفة، ثم أعد ضجيجها إلى سيجما التالية باستخدام ضجيج جديد. تم تدريب محولات Pika H3 Flex ذات الخطوات القليلة لهذا التحديث؛ بينما لم يتم تدريب نقاط التفتيش الأساسية.
  • shift_provided_sigmas (bool، اختياري) — ما إذا كانت قيم sigmas الصريحة المُمرَّرة إلى set_timesteps() تُشكّل شبكة أساسية يُجري المُجدوِل إزاحةً عليها، كما يفعل مع شبكة linspace الخاصة به، أم أنها جدول مكتمل يُستخدم كما هو. إذا لم يُضبط هذا الخيار، يُستخدم الجدول كما هو مع تحذير بشأن الإيقاف التدريجي؛ وسيصبح الافتراضي True في الإصدار 0.44.0.

مجدول أويلر للتدفق المُصحَّح (eta = 0) مع إزاحة سيجما أُسّية، كما يُستخدم في MiniMax-H3.

index_for_timestep

< >

( timestep: typing.Union[float, torch.Tensor] ) → int

المعاملات

  • timestep (float أو torch.Tensor) — قيمة مأخوذة من self.timesteps. الجدول الزمني متزايد بشكل صارم بالنسبة إلى t، لذا فإن التطابق فريد.

يعيد

int

مؤشر timestep.

خريطة قيمة خطوة زمنية إلى فهرسها في الجدول الزمني.

scale_noise

< >

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

المعاملات

  • sample (torch.FloatTensor) — العينة النظيفة x_0.
  • timestep (float أو torch.FloatTensor) — الوقت المستهدف في [0, 1]؛ 1 يعيد sample دون تغيير.
  • noise (torch.FloatTensor) — الضوضاء التي سيتم خلطها.

يعيد

torch.FloatTensor

العينة المُضغوطة.

عملية الأمامية للتدفق المُصحَّح، وفق اتفاقية t في MiniMax-H3: x_t = t*x_0 + (1 - t)*noise.

يستخدم MiniMax-H3 هذا لإضافة ضوضاء إلى نقاط التثبيت الشرطية، حيث يكون t هو مستوى noise_aug وليس عنصرًا في الجدول الزمني، لذا يُؤخذ timestep بقيمته الحرفية ولا يتم البحث عنه في self.timesteps إطلاقًا.

set_begin_index

< >

( begin_index: int = 0 )

المعاملات

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

يحدد الفهرس الابتدائي للمجدول.

set_shift

< >

( shift: float )

المعاملات

  • shift (float) — الإزاحة الأسّية المستخدمة في الجدولة التالية.

يتجاوز إزاحة سيغما المُهيأة؛ استدعِ قبل set_timesteps().

تُعرّض MiniMax-H3 هذه القيمة لكل طلب على حدة عبر flow_shift (للفيديو) / audio_flow_shift (لصوت).

set_timesteps

< >

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

المعاملات

  • num_inference_steps (int، اختياري) — عدد نقاط شبكة سيجما، بما في ذلك 0 النهائي. يتم تجاهله عند تقديم sigmas.
  • device (str أو torch.device، اختياري) — الجهاز الذي تُنقل إليه تينسورات الجدول الزمني. يتم بناء الشبكة نفسها دائمًا على وحدة المعالجة المركزية (CPU) بصيغة float32 حتى لا يعتمد الجدول الزمني على المعالج التسريعي.
  • sigmas (list[float] أو torch.Tensor، اختياري) — شبكة صريحة، متناقصة بشكل صارم وتنتهي عند 0.0. عند تعيين shift_provided_sigmas=True تكون شبكة أساسية ضمن [0, 1] تخضع للإزاحة كما تفعل شبكة linspace؛ وإلا تُستخدم كما هي (الافتراضي المُتقادم).

إنشاء جدول سيجما / خطوة الزمن.

تُمرَّر الشبكة linspace(1, 0, num_inference_steps) عبر الإزاحة الأسية، مع دمج التكرارات المتتالية، أو تُستخدم sigmas الصريحة، وتُزاح هي الأخرى عند تعيين shift_provided_sigmas. القيمة النهائية 0 جزء أصيل من الشبكة — إذ تُحوِّل الإزاحة 0 إلى 0 بالضبط — لذا يحتفظ الجدول بـ num_inference_steps قيمة سيجما، ويدير num_inference_steps - 1 تقييمات للنموذج، وتُعرَض على شكل self.timesteps = 1 - sigmas[:-1].

خطوة

< >

( model_output: FloatTensortimestep: typing.Union[float, torch.FloatTensor]sample: FloatTensorgenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool = True ) → MiniMaxH3SchedulerOutput or tuple

المعاملات

  • model_output (torch.FloatTensor) — تنبؤ التحوّل بالسرعة عند timestep.
  • timestep (float أو torch.FloatTensor) — خطوة الزمن الحالية، إحدى قيم self.timesteps (لذا timestep == 1 - sigma).
  • sample (torch.FloatTensor) — العينة الحالية x_t.
  • generator (torch.Generator، اختياري) — المولّد الذي تُسحب منه الضوضاء الجديدة باستخدام stochastic_sampling؛ غير مستخدم في الحالات الأخرى.
  • return_dict (bool، القيمة الافتراضية True) — ما إذا كان يجب إرجاع MiniMaxH3SchedulerOutput بدلاً من tuple عادي.

يعيد

MiniMaxH3SchedulerOutput أو tuple

المثال للخطوة التالية.

خذ خطوة واحدة أويلر (eta = 0)، أو خطوة إعادة ضجيج واحدة باستخدام stochastic_sampling.

إخراج النموذج هو سرعة باتجاه البيانات، لذا فإن التقدير المُزيل للضوضاء هو x0 = x_t + (1 - t) * v — لاحظ +، وهو عكس اتفاقية flow-match المعتادة. ثم يكون التحديث هو المزيج x_next = r*x_t + (1 - r)*x0 حيث r = sigma_next / sigma، ويُحسب في float32 لعينات الدقة النصفية. مع stochastic_sampling يكون التحديث x_next = (1 - sigma_next) * x0 + sigma_next * noise بضوضاء جديدة من generator، وكل ذلك في float32، بحيث تُرجع الخطوة الأخيرة (sigma_next = 0) x0.

MiniMaxH3SchedulerOutput

فئة diffusers.schedulers.scheduling_minimax_h3.MiniMaxH3SchedulerOutput

< >

( prev_sample: FloatTensor )

المعاملات

  • prev_sample (torch.FloatTensor) — العينة المحسوبة x_{t+1} للخطوة التالية في حلقة إزالة الضوضاء.

فئة الإخراج لدالة step الخاصة بالجدول الزمني.

Update on GitHub