# DDIMInverseScheduler

`DDIMInverseScheduler` هو المجدول المعكوس من [Denoising Diffusion Implicit Models](https://huggingface.co/papers/2010.02502) (DDIM) بواسطة Jiaming Song و Chenlin Meng و Stefano Ermon. يعتمد التنفيذ بشكل كبير على تعريف عكس DDIM من [Null-text Inversion for Editing Real Images using Guided Diffusion Models](https://huggingface.co/papers/2211.09794).

## DDIMInverseScheduler[[diffusers.DDIMInverseScheduler]]

#### diffusers.DDIMInverseScheduler[[diffusers.DDIMInverseScheduler]]

```python
diffusers.DDIMInverseScheduler(num_train_timesteps: int = 1000, beta_start: float = 0.0001, beta_end: float = 0.02, beta_schedule: typing.Literal['linear', 'scaled_linear', 'squaredcos_cap_v2'] = 'linear', trained_betas: numpy.ndarray | list[float] | None = None, clip_sample: bool = True, set_alpha_to_one: bool = True, steps_offset: int = 0, prediction_type: typing.Literal['epsilon', 'sample', 'v_prediction'] = 'epsilon', clip_sample_range: float = 1.0, timestep_spacing: typing.Literal['leading', 'trailing'] = 'leading', rescale_betas_zero_snr: bool = False, **kwargs)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_ddim_inverse.py#L138)

**المعاملات:**

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` يتم تثبيت حاصل ضرب ألفا السابقة عند 0، وإلا فإنه يستخدم قيمة ألفا في الخطوة `num_train_timesteps - 1`.

steps_offset (`int`، القيمة الافتراضية 0) : إزاحة تُضاف إلى خطوات الاستدلال، كما تتطلبها بعض عائلات النماذج.

prediction_type (`str`, defaults to `epsilon`, *optional*) : Prediction type of the scheduler function; can be `epsilon` (predicts the noise of the diffusion process), `sample` (directly predicts the noisy sample`) or `v_prediction` (see section 2.4 of [Imagen Video](https://huggingface.co/papers/2210.02303) paper).

timestep_spacing (`str`، الافتراضي `"leading"`) : الطريقة التي ينبغي بها قياس خطوات الزمن. راجع الجدول 2 من [جداول ضوضاء الانتشار الشائعة وخطوات العينة معيبة](https://huggingface.co/papers/2305.08891) لمزيد من المعلومات.

rescale_betas_zero_snr (`bool`، القيمة الافتراضية `False`) : ما إذا كان يجب إعادة مقياس معاملات بيتا (betas) بحيث يكون SNR النهائي صفراً. يتيح هذا النموذج توليد عينات ساطعة جداً ومظلمة جداً بدلاً من تقييده بتوليد عينات بإضاءة متوسطة. له علاقة غير مباشرة بـ [`--offset_noise`](https://github.com/huggingface/diffusers/blob/74fd735eb073eb1d774b1ab4154a0876eb82f055/examples/dreambooth/train_dreambooth.py#L506).

`DDIMInverseScheduler` هو المجدول العكسي لـ [DDIMScheduler](/docs/diffusers/v0.43.0/ar/api/schedulers/ddim#diffusers.DDIMScheduler).

يرث هذا النموذج من [SchedulerMixin](/docs/diffusers/v0.43.0/ar/api/schedulers/overview#diffusers.SchedulerMixin) و [ConfigMixin](/docs/diffusers/v0.43.0/ar/api/configuration#diffusers.ConfigMixin). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع مجدولات التعلم، مثل التحميل والحفظ.

#### scale_model_input[[diffusers.DDIMInverseScheduler.scale_model_input]]

```python
scale_model_input(sample: Tensor, timestep: int | None = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_ddim_inverse.py#L250)

**المعاملات:**

sample (`torch.Tensor`) : العينة المدخلة.

timestep (`int`، *اختياري*) : الخطوة الزمنية الحالية في سلسلة الانتشار.

**يعيد:** `torch.Tensor`

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

يضمن قابلية الاستبدال مع المجدولات التي تحتاج إلى تحجيم مدخلات نموذج إزالة الضوضاء اعتمادًا على خطوة الزمن الحالية.

#### set_timesteps[[diffusers.DDIMInverseScheduler.set_timesteps]]

```python
set_timesteps(num_inference_steps: int, device: typing.Union[str, torch.device, NoneType] = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_ddim_inverse.py#L267)

**المعاملات:**

num_inference_steps (`int`) : عدد خطوات الانتشار المستخدمة عند توليد العينات باستخدام نموذج مُدرَّب مسبقًا.

device (`str` أو `torch.device`، *اختياري*) : الجهاز الذي يجب نقل خطوات الزمن (timesteps) إليه. إذا كان `None`، فلن يتم نقل خطوات الزمن.

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

#### خطوة[[diffusers.DDIMInverseScheduler.step]]

```python
step(model_output: Tensor, timestep: int, sample: Tensor, return_dict: bool = True)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_ddim_inverse.py#L311)

**المعاملات:**

model_output (`torch.Tensor`) : المخرجات المباشرة من نموذج الانتشار المُتعلَّم.

timestep (`int`) : الخطوة الزمنية المنفصلة الحالية في سلسلة الانتشار.

sample (`torch.Tensor`) : نسخة حالية من عينة تم إنشاؤها بواسطة عملية الانتشار.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع `~schedulers.scheduling_ddim_inverse.DDIMInverseSchedulerOutput` أو `tuple` أم لا.

**يعيد:** `~schedulers.scheduling_ddim_inverse.DDIMInverseSchedulerOutput` أو `tuple`

If return_dict is `True`, `~schedulers.scheduling_ddim_inverse.DDIMInverseSchedulerOutput` is returned, otherwise a tuple is returned where the first element is the sample tensor.

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

