Diffusers documentation

المجدولون

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

المجدولون

🤗 Diffusers provides many scheduler functions for the diffusion process. A scheduler takes a model’s output (the sample which the diffusion process is iterating on) and a timestep to return a denoised sample. The timestep is important because it dictates where in the diffusion process the step is; data is generated by iterating forward n timesteps and inference occurs by propagating backward through the timesteps. Based on the timestep, a scheduler may be discrete in which case the timestep is an int or continuous in which case the timestep is a float.

يعتمد على السياق، يحدد المُجدول كيفية إضافة الضوضاء إلى صورة بشكل تكراري، أو كيفية تحديث عينة بناءً على مخرجات النموذج:

  • أثناء التدريب، يضيف مُجدول ضوضاء (توجد خوارزميات مختلفة لكيفية إضافة الضوضاء) إلى عينة لتدريب نموذج الانتشار
  • أثناء الاستدلال، يحدد المجدول كيفية تحديث عينة بناءً على مخرجات نموذج مُدرَّب مسبقًا

تم تنفيذ العديد من المجدولات من مكتبة k-diffusion بواسطة Katherine Crowson، وهي تُستخدم على نطاق واسع أيضاً في A1111. لمساعدتك على مطابقة المجدولات من k-diffusion وA1111 مع المجدولات في 🤗 Diffusers، راجع الجدول أدناه:

A1111/k-diffusion🤗 Diffusersالاستخدام
DPM++ 2MDPMSolverMultistepScheduler
DPM++ 2M KarrasDPMSolverMultistepSchedulerمع use_karras_sigmas=True
DPM++ 2M SDEDPMSolverMultistepSchedulerباستخدام algorithm_type="sde-dpmsolver++"
DPM++ 2M SDE KarrasDPMSolverMultistepSchedulerابدأ باستخدام use_karras_sigmas=True وalgorithm_type="sde-dpmsolver++"
DPM++ 2S aN/Aشبيه جدًا بـDPMSolverSinglestepScheduler
DPM++ 2S a KarrasN/Aشبيه جدًا بـ DPMSolverSinglestepScheduler(use_karras_sigmas=True, ...)
DPM++ SDEDPMSolverSinglestepScheduler
DPM++ SDE KarrasDPMSolverSinglestepSchedulerمع use_karras_sigmas=True
DPM2KDPM2DiscreteScheduler
DPM2 KarrasKDPM2DiscreteSchedulerمع use_karras_sigmas=True
DPM2 aKDPM2AncestralDiscreteScheduler
DPM2 a KarrasKDPM2AncestralDiscreteSchedulerمع use_karras_sigmas=True
DPM التكيفيN/A
DPM fastN/A
EulerEulerDiscreteScheduler
Euler aEulerAncestralDiscreteScheduler
هونHeunDiscreteScheduler
LMSLMSDiscreteScheduler
LMS KarrasLMSDiscreteSchedulerمع use_karras_sigmas=True
N/ADEISMultistepScheduler
N/AUniPCMultistepScheduler

جداول الضوضاء وأنواع الجداول

A1111/k-diffusion🤗 Diffusers
Karrasمع use_karras_sigmas=True
sgm_uniforminit مع timestep_spacing="trailing"
بسيطinit مع timestep_spacing="trailing"
أُسّيinit مع timestep_spacing="linspace"، use_exponential_sigmas=True
بيتاinit مع timestep_spacing="linspace"، use_beta_sigmas=True

جميع المجدولين مبنية من الفئة الأساسية SchedulerMixin التي تنفّذ أدوات منخفضة المستوى مشتركة بين جميع المجدولين.

SchedulerMixin

فئة diffusers.SchedulerMixin

< >

( )

الفئة الأساسية لجميع مجدولات التعلم.

تحتوي SchedulerMixin على دوال مشتركة بين جميع المجدولين، مثل وظائف التحميل والحفظ العامة.

يتولى ConfigMixin مهمة تخزين سمات الإعداد (مثل num_train_timesteps) التي تُمرَّر إلى دالة __init__ للمجدول، ويمكن الوصول إلى هذه السمات عبر scheduler.config.num_train_timesteps.

خصائص الفئة:

  • _compatibles (list[str]) — قائمة بفئات المجدول (scheduler) المتوافقة مع فئة المجدول الأصلية. استخدم from_config() لتحميل فئة مجدول متوافقة مختلفة (يجب أن يتم تجاوزها بواسطة الفئة الأصلية).

from_pretrained

< >

( pretrained_model_name_or_path: str | os.PathLike | None = Nonesubfolder: str | None = Nonereturn_unused_kwargs: bool = False**kwargs: Any ) → SchedulerMixin or tuple[SchedulerMixin, dict[str, Any]]

المعاملات

  • pretrained_model_name_or_path (str أو os.PathLike, اختياري) — يمكن أن يكون:
    • سلسلة نصية، وهي معرف النموذج (على سبيل المثال google/ddpm-celebahq-256) لنموذج مُدرَّب مسبقًا مستضاف على الـ Hub.
    • مسار إلى مجلد (على سبيل المثال ./my_model_directory) يحتوي على إعدادات المجدول المحفوظة باستخدام save_pretrained().
  • subfolder (str، اختياري) — موقع المجلد الفرعي لملف النموذج داخل مستودع نموذج أكبر على Hub أو محليًا.
  • return_unused_kwargs (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب إرجاع معاملات kwargs التي لا تستهلكها فئة Python أم لا.
  • cache_dir (str أو os.PathLike، اختياري) — المسار إلى مجلد حيث يتم تخزين إعدادات النموذج المُدرَّب مسبقًا المُحمَّل مؤقتًا إذا لم يُستخدم المجلد المؤقت القياسي.
  • force_download (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب إجبار إعادة تنزيل أوزان النموذج وملفات الإعداد، مع تجاوز النسخ المخزنة مؤقتًا إذا كانت موجودة.
  • proxies (dict[str, str]، اختياري) — قاموس لخوادم الوكيل (proxy) للاستخدام حسب البروتوكول أو نقطة النهاية، على سبيل المثال {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. تُستخدم هذه الوكلاء في كل طلب.
  • output_loading_info (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب إرجاع قاموس يحتوي على المفاتيح الناقصة والمفاتيح غير المتوقعة ورسائل الأخطاء أم لا.
  • local_files_only (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم تحميل أوزان النموذج وملفات الإعداد المحلية فقط أم لا. إذا تم ضبطه على True، فلن يتم تنزيل النموذج من Hub.
  • token (str أو bool، اختياري) — الرمز الذي يُستخدم كتفويض حامل HTTP للملفات البعيدة. إذا كان True، يُستخدم الرمز المولّد من diffusers-cli login (المخزّن في ~/.huggingface).
  • revision (str، اختياري، القيمة الافتراضية "main") — الإصدار المحدد من النموذج الذي سيتم استخدامه. يمكن أن يكون اسم فرع، أو اسم وسم، أو معرف commit، أو أي معرّف مسموح به بواسطة Git.

يعيد

SchedulerMixin أو tuple[SchedulerMixin, dict[str, Any]]

المجدول المُثبَّت من الإعداد. إذا كان return_unused_kwargs هو True، يُعاد tuple يكون عنصره الثاني قاموسًا من معاملات الكلمات المفتاحية غير المستخدمة.

أنشئ جدولة (scheduler) من ملف تكوين JSON مُعرّف مسبقًا في مجلد محلي أو مستودع على Hub.

> لاستخدام النماذج الخاصة أو النماذج المُقيَّدة، سجّل الدخول باستخدام hf > auth login. كما يمكنك تفعيل وضع “offline-mode” الخاص لاستخدام هذه الطريقة في بيئة محمية بجدار ناري.

save_pretrained

< >

( save_directory: str | os.PathLikepush_to_hub: bool = False**kwargs: Any )

المعاملات

  • save_directory (str أو os.PathLike) — المجلد الذي سيتم حفظ ملف الإعدادات بصيغة JSON فيه (سيتم إنشاؤه إذا لم يكن موجودًا).
  • push_to_hub (bool، اختياري، الافتراضي False) — ما إذا كان سيتم دفع نموذجك إلى Hugging Face Hub بعد حفظه. يمكنك تحديد المستودع الذي تريد الدفع إليه باستخدام repo_id (سيكون الافتراضي هو اسم save_directory في نطاقك).
  • kwargs (dict[str, Any]، اختياري) — معلمات إضافية تُمرَّر إلى طريقة push_to_hub().

احفظ كائن تكوين المجدول في مجلد بحيث يمكن إعادة تحميله باستخدام طريقة الفئة from_pretrained().

SchedulerOutput

فئة diffusers.schedulers.scheduling_utils.SchedulerOutput

< >

( prev_sample: Tensor )

المعاملات

  • prev_sample (torch.Tensor من الشكل (batch_size, num_channels, height, width) للصور) — العينة المحسوبة (x_{t-1}) لخطوة الزمن السابقة. يجب استخدام prev_sample كمدخل للنموذج التالي في حلقة إزالة الضوضاء.

الفئة الأساسية لمخرجات دالة step في المجدول.

KarrasDiffusionSchedulers

KarrasDiffusionSchedulers تعميم واسع للمجدولين في 🤗 Diffusers. تتميز المجدولات في هذه الفئة على مستوى عالٍ باستراتيجية أخذ عينات الضوضاء، ونوع الشبكة والتوسع، واستراتيجية التدريب، وكيفية وزن الخسارة.

تندرج المجدولات المختلفة في هذه الفئة، اعتماداً على نوع محلل المعادلات التفاضلية العادية (ODE)، ضمن التصنيف المذكور أعلاه، وتوفر تجريدًا جيدًا لتصميم المجدولات الرئيسية المُنفَّذة في 🤗 Diffusers. يمكن العثور على المجدولات في هذه الفئة هنا.

PushToHubMixin

فئة diffusers.utils.PushToHubMixin

< >

( )

مزيج (Mixin) لدفع نموذج أو مجدول أو خط أنابيب إلى Hugging Face Hub.

push_to_hub

< >

( repo_id: strcommit_message: str | None = Noneprivate: bool | None = Nonetoken: str | None = Nonecreate_pr: bool = Falsesafe_serialization: bool = Truevariant: str | None = Nonesubfolder: str | None = None )

المعاملات

  • repo_id (str) — اسم المستودع الذي تريد دفع ملفات النموذج أو المجدول أو خط الأنابيب إليه. يجب أن يحتوي على اسم مؤسستك عند الدفع إلى مؤسسة. كما يمكن أن يكون repo_id مسارًا إلى مجلد محلي.
  • commit_message (str، اختياري) — الرسالة التي تُرسل عند الدفع. القيمة الافتراضية هي "Upload {object}".
  • private (bool، اختياري) — ما إذا كان سيتم جعل المستودع خاصًا. إذا كان None (الافتراضي)، فسيكون المستودع عامًا ما لم يكن الافتراضي للمنظمة هو الخاص. يتم تجاهل هذه القيمة إذا كان المستودع موجودًا بالفعل.
  • token (str، اختياري) — الرمز الذي يُستخدم كتوكن مصادقة HTTP Bearer للملفات البعيدة. الرمز الذي يتم إنشاؤه عند تشغيل hf auth login (يُخزَّن في ~/.huggingface).
  • create_pr (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم إنشاء طلب سحب (PR) بالملفات المرفوعة أم الالتزام مباشرة.
  • safe_serialization (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم تحويل أوزان النموذج إلى صيغة safetensors أم لا.
  • variant (str، اختياري) — إذا تم تحديده، تُحفظ الأوزان بالتنسيق pytorch_model.<variant>.bin.

ارفع ملفات النموذج أو المجدول أو خط الأنابيب إلى 🤗 Hugging Face Hub.

أمثلة:

from diffusers import UNet2DConditionModel

unet = UNet2DConditionModel.from_pretrained("stabilityai/stable-diffusion-2", subfolder="unet")

# Push the `unet` to your namespace with the name "my-finetuned-unet".
unet.push_to_hub("my-finetuned-unet")

# Push the `unet` to an organization with the name "my-finetuned-unet".
unet.push_to_hub("your-org/my-finetuned-unet")
Update on GitHub