Diffusers documentation
CogVideoXDPMScheduler
CogVideoXDPMScheduler
CogVideoXDPMScheduler مبني على DPM-Solver: A Fast ODE Solver for Diffusion Probabilistic Model Sampling in Around 10 Steps و DPM-Solver++: Fast Solver for Guided Sampling of Diffusion Probabilistic Models، وتحديداً لنماذج CogVideoX.
CogVideoXDPMScheduler
فئة diffusers.CogVideoXDPMScheduler
< source >( num_train_timesteps: int = 1000beta_start: float = 0.00085beta_end: float = 0.012beta_schedule: typing.Literal['linear', 'scaled_linear', 'squaredcos_cap_v2'] = 'scaled_linear'trained_betas: numpy.ndarray | list[float] | None = Noneclip_sample: bool = Trueset_alpha_to_one: bool = Truesteps_offset: int = 0prediction_type: typing.Literal['epsilon', 'sample', 'v_prediction'] = 'epsilon'clip_sample_range: float = 1.0sample_max_value: float = 1.0timestep_spacing: typing.Literal['leading', 'linspace', 'trailing'] = 'leading'rescale_betas_zero_snr: bool = Falsesnr_shift_scale: float = 3.0 )
المعاملات
- num_train_timesteps (
int، القيمة الافتراضية 1000) — عدد خطوات الانتشار لتدريب النموذج. - beta_start (
float، القيمة الافتراضية 0.0001) — قيمةbetaالابتدائية للاستدلال. - beta_end (
float، القيمة الافتراضية 0.02) — قيمةbetaالنهائية. - beta_schedule (
str، القيمة الافتراضية"linear") — جدول بيتا، وهو إسناد من نطاق بيتا إلى تسلسل من قيم بيتا لتخطي النموذج. اختر من بينlinearأوscaled_linearأوsquaredcos_cap_v2. - trained_betas (
np.ndarray، اختياري) — مرر مصفوفة من قيم بيتا مباشرةً إلى منشئ الكائن لتجاوزbeta_startوbeta_end. - clip_sample (
bool، القيمة الافتراضيةTrue) — يقوم بقص العينة المتوقعة من أجل الاستقرار العددي. - clip_sample_range (
float، القيمة الافتراضية 1.0) — الحد الأقصى لشدة قص العينات. صالح فقط عندما يكونclip_sample=True. - set_alpha_to_one (
bool، القيمة الافتراضيةTrue) — يستخدم كل خطوة من خطوات الانتشار قيمة حاصل ضرب الألفا في تلك الخطوة وفي الخطوة السابقة. لا توجد ألفا سابقة للخطوة الأخيرة. عند تعيين هذا الخيار إلىTrueيتم تثبيت حاصل ضرب الألفا السابقة على1، وإلا فإنه يستخدم قيمة الألفا في الخطوة 0. - steps_offset (
int، القيمة الافتراضية 0) — إزاحة تُضاف إلى خطوات الاستدلال، كما تتطلبها بعض عائلات النماذج. - prediction_type (
str, defaults toepsilon, optional) — Prediction type of the scheduler function; can beepsilon(predicts the noise of the diffusion process),sample(directly predicts the noisy sample) orv_prediction` (see section 2.4 of Imagen Video paper). - thresholding (
bool، الافتراضيFalse) — ما إذا كان سيتم استخدام طريقة “العتبة الديناميكية”. هذه الطريقة غير مناسبة لنماذج الانتشار في الفضاء الكامن مثل Stable Diffusion. - dynamic_thresholding_ratio (
float) — النسبة المستخدمة في طريقة العتبة الديناميكية. تكون صالحة فقط عندما يكونthresholding=True. - sample_max_value (
float، القيمة الافتراضية 1.0) — القيمة العتبة للتعتيب الديناميكي. صالحة فقط عندما يكونthresholding=True. - timestep_spacing (
str, defaults to"leading") — The way the timesteps should be scaled. Refer to Table 2 of the Common Diffusion Noise Schedules and Sample Steps are Flawed for more information. Choose fromleading,linspaceortrailing. - rescale_betas_zero_snr (
bool، القيمة الافتراضيةFalse) — ما إذا كان يجب إعادة مقياس معاملات بيتا (betas) بحيث تكون نسبة الإشارة إلى الضوضاء النهائية (terminal SNR) صفرًا. يتيح هذا للنموذج توليد عينات ساطعة جدًا ومظلمة جدًا بدلاً من تقييده بتوليد عينات بإضاءة متوسطة. يرتبط ارتباطًا فضفاضًا بـ--offset_noise. - snr_shift_scale (
float، القيمة الافتراضية 3.0) — مقياس الإزاحة لـ SNR.
يمتد DDIMScheduler على إجراء إزالة الضوضاء المُقدَّم في نماذج الانتشار الاحتمالية لإزالة الضوضاء (DDPMs) مع توجيه غير ماركوفي.
يرث هذا النموذج من SchedulerMixin و ConfigMixin. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع مجدوليات الوقت مثل التحميل والحفظ.
add_noise
< source >( original_samples: Tensornoise: Tensortimesteps: IntTensor ) → torch.Tensor
أضف الضوضاء إلى العينات الأصلية وفقًا لحجم الضوضاء في كل خطوة زمنية (وهذا هو عملية الانتشار الأمامية).
get_mult
< source >( h: Tensorr: Tensoralpha_prod_t: Tensoralpha_prod_t_prev: Tensoralpha_prod_t_back: typing.Optional[torch.Tensor] = None ) → tuple
المعاملات
- h (
torch.Tensor) — فرق اللوغ-إس إن آر. - r (
torch.Tensor) — نسبة فروق اللوغ-إس إن آر. - alpha_prod_t (
torch.Tensor) — المنتج التراكمي للألفا عند خطوة الزمن الحالية. - alpha_prod_t_prev (
torch.Tensor) — الجداء التراكمي للألفا في خطوة الزمن السابقة. - alpha_prod_t_back (
torch.Tensor، اختياري) — الجداء التراكمي للقيم ألفا عند خطوة الزمن السابقة لخطوة الزمن السابقة.
يعيد
tuple
مجموعة (tuple) تحتوي على المضاعفات.
احسب المضاعفات للعينة السابقة والعينة الأصلية المتوقعة.
get_variables
< source >( alpha_prod_t: Tensoralpha_prod_t_prev: Tensoralpha_prod_t_back: typing.Optional[torch.Tensor] = None ) → tuple
المعاملات
- alpha_prod_t (
torch.Tensor) — المنتج التراكمي للألفا عند خطوة الزمن الحالية. - alpha_prod_t_prev (
torch.Tensor) — الجداء التراكمي للألفا في خطوة الزمن السابقة. - alpha_prod_t_back (
torch.Tensor، اختياري) — الجداء التراكمي للقيم ألفا عند خطوة الزمن السابقة لخطوة الزمن السابقة.
يعيد
tuple
مجموعة (tuple) تحتوي على المتغيرات h، r، lamb، lamb_next.
احسب المتغيرات المستخدمة في DPM-Solver++ (2M) مع الاستناد إلى التنفيذ الأصلي.
get_velocity
< source >( sample: Tensornoise: Tensortimesteps: IntTensor ) → torch.Tensor
احسب تنبؤ السرعة من العينة والضوضاء وفقًا لصيغة السرعة.
scale_model_input
< source >( sample: Tensortimestep: int | None = None ) → torch.Tensor
يضمن قابلية الاستبدال مع المجدولات التي تحتاج إلى تحجيم مدخلات نموذج إزالة الضوضاء اعتمادًا على خطوة الزمن الحالية.
set_timesteps
< source >( num_inference_steps: intdevice: typing.Union[str, torch.device, NoneType] = None )
يحدد الخطوات الزمنية المنفصلة المستخدمة لسلسلة الانتشار (لتُنفَّذ قبل الاستدلال).
خطوة
< source >( model_output: Tensorold_pred_original_sample: Tensortimestep: inttimestep_back: intsample: Tensoreta: float = 0.0use_clipped_model_output: bool = Falsegenerator: typing.Optional[torch.Generator] = Nonevariance_noise: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = False ) → DDIMSchedulerOutput or tuple
المعاملات
- model_output (
torch.Tensor) — المخرجات المباشرة من نموذج الانتشار المُتعلَّم. - old_pred_original_sample (
torch.Tensor) — العينة الأصلية المتوقعة من خطوة الزمن السابقة. - timestep (
int) — خطوة الزمن المنفصلة الحالية في سلسلة الانتشار. - timestep_back (
int) — خطوة الزمن التي يجب الرجوع إليها. - sample (
torch.Tensor) — نسخة حالية من العينة التي أنشأها عملية الانتشار. - eta (
float) — وزن الضوضاء المضافة في خطوة الانتشار. - use_clipped_model_output (
bool، القيمة الافتراضيةFalse) — إذا كانتTrue، يتم حسابmodel_output“المصحح” من العينة الأصلية المتوقعة المقصوصة. هذا ضروري لأن العينة الأصلية المتوقعة تُقصّ إلى [-1, 1] عندما تكونself.config.clip_sampleهيTrue. إذا لم يحدث أي قصّ، فإنmodel_output“المصحح” سيتطابق مع ذلك المُقدَّم كمدخل، ولا يكون لـuse_clipped_model_outputأي تأثير. - generator (
torch.Generator، اختياري) — مولّد أرقام عشوائية. - variance_noise (
torch.Tensor) — بديل لتوليد الضوضاء باستخدامgeneratorمن خلال تقديم الضوضاء مباشرةً للتباين نفسه. مفيد لطرق مثلCycleDiffusion. - return_dict (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاع DDIMSchedulerOutput أوtuple.
يعيد
DDIMSchedulerOutput أو tuple
إذا كانت True هي قيمة return_dict، يُعاد DDIMSchedulerOutput، وإلا فسيُعاد tuple يكون العنصر الأول فيه tensor العينة.
تنبّأ بالعيّنة من الخطوة الزمنية السابقة عن طريق عكس عملية المعادلة التفاضلية العشوائية (SDE). تنقل هذه الدالة عملية الانتشار من مخرجات النموذج المُتعلَّم (والتي تكون في الغالب الضوضاء المتنبَّأ بها).