Diffusers documentation
HeliosScheduler
HeliosScheduler
HeliosScheduler مبني على أخذ العينات المطابق للتدفق الهرمي الذي تم تقديمه في Helios.
HeliosScheduler
فئة diffusers.HeliosScheduler
< source >( num_train_timesteps: int = 1000shift: float = 1.0stages: int = 3stage_range: list = [0, 0.3333333333333333, 0.6666666666666666, 1]gamma: float = 0.3333333333333333thresholding: bool = Falseprediction_type: str = 'flow_prediction'solver_order: int = 2predict_x0: bool = Truesolver_type: str = 'bh2'lower_order_final: bool = Truedisable_corrector: list = []solver_p: SchedulerMixin = Noneuse_flow_sigmas: bool = Truescheduler_type: str = 'unipc'use_dynamic_shifting: bool = Falsetime_shift_type: typing.Literal['exponential', 'linear'] = 'exponential' )
convert_model_output
< source >( model_output: Tensor*argssample: Tensor = Nonesigma: Tensor = None**kwargs ) → torch.Tensor
المعاملات
- model_output (
torch.Tensor) — المخرجات المباشرة من نموذج الانتشار المُتعلَّم. - timestep (
int) — خطوة الزمن المنفصلة الحالية في سلسلة الانتشار. - sample (
torch.Tensor) — نسخة حالية من العينة التي أنشأها عملية الانتشار. - sigma (
torch.Tensor، اختياري) — قيمة sigma للخطوة الحالية في جدول الضوضاء.
يعيد
torch.Tensor
مخرجات النموذج المحوّل.
حوّل مخرجات النموذج إلى النوع المقابل الذي يحتاجه خوارزمية UniPC.
تهيئة الخطوات الزمنية العالمية والقيم السيجما
تهيئة خطوات الزمن لكل مرحلة
multistep_uni_c_bh_update
< source >( this_model_output: Tensor*argslast_sample: Tensor = Nonethis_sample: Tensor = Noneorder: int = Nonesigma_before: Tensor = Nonesigma: Tensor = None**kwargs ) → torch.Tensor
المعاملات
- this_model_output (
torch.Tensor) — مخرجات النموذج عندx_t. - this_timestep (
int) — خطوة الزمن الحاليةt. - last_sample (
torch.Tensor) — العينة المولّدة قبل آخر متنبئx_{t-1}. - this_sample (
torch.Tensor) — العينة المولّدة بعد آخر متنبئx_{t}. - order (
int) — قيمةpفي UniC-p عند هذه الخطوة. يجب أن يكون ترتيب الدقة الفعّالorder + 1. - sigma_before (
torch.Tensor، اختياري) — قيمة sigma للخطوة السابقة في جدول الضوضاء. - sigma (
torch.Tensor، اختياري) — قيمة sigma للخطوة الحالية في جدول الضوضاء.
يعيد
torch.Tensor
المصفوفة العينة المُصحَّحة عند خطوة الزمن الحالية.
خطوة واحدة لنموذج UniC (نسخة B(h)).
multistep_uni_p_bh_update
< source >( model_output: Tensor*argssample: Tensor = Noneorder: int = Nonesigma: Tensor = Nonesigma_next: Tensor = None**kwargs ) → torch.Tensor
المعاملات
- model_output (
torch.Tensor) — المخرجات المباشرة من نموذج الانتشار المُتعلَّم عند خطوة الزمن الحالية. - prev_timestep (
int) — خطوة الزمن المنفصلة السابقة في سلسلة الانتشار. - sample (
torch.Tensor) — نسخة حالية من العينة التي أنشأها عملية الانتشار. - order (
int) — ترتيب UniP في خطوة الزمن هذه (يتوافق مع p في UniPC-p). - sigma (
torch.Tensor، اختياري) — قيمة sigma للخطوة الحالية في جدول الضوضاء. - sigma_next (
torch.Tensor، اختياري) — قيمة sigma للخطوة التالية في جدول الضوضاء.
يعيد
torch.Tensor
المصفوفة العينة عند خطوة الزمن السابقة.
خطوة واحدة لنموذج UniP (نسخة B(h)). أو يُستخدم self.solver_p إذا تم تحديد ذلك.
set_begin_index
< source >( begin_index: int = 0 )
يحدد الفهرس الابتدائي للمجدول. يجب تشغيل هذه الدالة من خط الأنابيب قبل الاستدلال.
set_timesteps
< source >( num_inference_steps: intstage_index: int | None = Nonedevice: typing.Union[str, torch.device] = Nonesigmas: bool | None = Nonemu: bool | None = Noneis_amplify_first_chunk: bool = False )
ضبط خطوات الزمن والقيم السيجما لكل مرحلة
time_shift
< source >( mu: floatsigma: floatt: Tensor ) → torch.Tensor
طبّق إزاحةً زمنية على قيم sigmas.
scheduling_helios
Update on GitHub