Buckets:
المجدولون
🤗 يوفر Diffusers العديد من دوال المجدول (scheduler) لعملية الانتشار. يستقبل المجدول مخرجات النموذج (العينة التي تعمل عليها عملية الانتشار) وخطوة زمنية (timestep) ليعيد عينة منزوعة الضوضاء. وتكمن أهمية الخطوة الزمنية في أنها تحدد موقع الخطوة ضمن عملية الانتشار؛ إذ يتم توليد البيانات عبر التكرار للأمام لعدد n من الخطوات الزمنية، بينما يحدث الاستدلال (inference) عبر التراجع للخلف عبر الخطوات الزمنية. بناءً على الخطوة الزمنية، قد يكون المجدول منفصلا (discrete) وفي هذه الحالة تكون الخطوة الزمنية من نوع int، أو مستمرا (continuous) وفي هذه الحالة تكون الخطوة الزمنية من نوع float.
يعتمد على السياق، يحدد المُجدول كيفية إضافة الضوضاء إلى صورة بشكل تكراري، أو كيفية تحديث عينة بناءً على مخرجات النموذج:
- أثناء التدريب، يضيف مُجدول ضوضاء (توجد خوارزميات مختلفة لكيفية إضافة الضوضاء) إلى عينة لتدريب نموذج الانتشار
- أثناء الاستدلال، يحدد المجدول كيفية تحديث عينة بناءً على مخرجات نموذج مُدرَّب مسبقًا
تم تنفيذ العديد من المجدولين من مكتبة k-diffusion بواسطة Katherine Crowson، كما أنها تُستخدم على نطاق واسع في A1111. لمساعدتك على مطابقة المجدولين من k-diffusion وA1111 مع المجدولين في 🤗 Diffusers، راجع الجدول أدناه:
| A1111/k-diffusion | 🤗 Diffusers | الاستخدام |
|---|---|---|
| DPM++ 2M | DPMSolverMultistepScheduler | |
| DPM++ 2M Karras | DPMSolverMultistepScheduler | مع use_karras_sigmas=True |
| DPM++ 2M SDE | DPMSolverMultistepScheduler | باستخدام algorithm_type="sde-dpmsolver++" |
| DPM++ 2M SDE Karras | DPMSolverMultistepScheduler | ابدأ باستخدام use_karras_sigmas=True وalgorithm_type="sde-dpmsolver++" |
| DPM++ 2S a | N/A | شبيه جدًا بـ DPMSolverSinglestepScheduler |
| DPM++ 2S a Karras | N/A | شبيه جدًا بـ DPMSolverSinglestepScheduler(use_karras_sigmas=True, ...) |
| DPM++ SDE | DPMSolverSinglestepScheduler | |
| DPM++ SDE Karras | DPMSolverSinglestepScheduler | مع use_karras_sigmas=True |
| DPM2 | KDPM2DiscreteScheduler | |
| DPM2 Karras | KDPM2DiscreteScheduler | مع use_karras_sigmas=True |
| DPM2 a | KDPM2AncestralDiscreteScheduler | |
| DPM2 a Karras | KDPM2AncestralDiscreteScheduler | مع use_karras_sigmas=True |
| DPM التكيفي | N/A | |
| DPM fast | N/A | |
| Euler | EulerDiscreteScheduler | |
| Euler a | EulerAncestralDiscreteScheduler | |
| هون | HeunDiscreteScheduler | |
| LMS | LMSDiscreteScheduler | |
| LMS Karras | LMSDiscreteScheduler | مع use_karras_sigmas=True |
| N/A | DEISMultistepScheduler | |
| N/A | UniPCMultistepScheduler |
جداول الضوضاء وأنواع الجداول
| A1111/k-diffusion | 🤗 Diffusers |
|---|---|
| Karras | مع use_karras_sigmas=True |
| sgm_uniform | init مع 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]]
diffusers.SchedulerMixin[[diffusers.SchedulerMixin]]
diffusers.SchedulerMixin()
الفئة الأساسية لجميع مجدولات التعلم.
يتضمن SchedulerMixin دوالًا مشتركة بين جميع المجدولين، مثل وظائف التحميل والحفظ العامة.
يتولى ConfigMixin مهمة تخزين سمات الإعداد (مثل num_train_timesteps) التي تُمرَّر إلى دالة __init__ للمجدول، ويمكن الوصول إلى هذه السمات عبر scheduler.config.num_train_timesteps.
خصائص الفئة:
- _compatibles (
list[str]) -- قائمة بفئات المجدول (scheduler) المتوافقة مع فئة المجدول الأصلية. استخدم from_config() لتحميل فئة مجدول متوافقة مختلفة (يجب أن يتم تجاوزها بواسطة الفئة الأصلية).
from_pretrained[[diffusers.SchedulerMixin.from_pretrained]]
from_pretrained(pretrained_model_name_or_path: str | os.PathLike | None = None, subfolder: str | None = None, return_unused_kwargs: bool = False, **kwargs: 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 servers) للاستخدام حسب البروتوكول أو نقطة النهاية، على سبيل المثال، {'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 bearer للملفات البعيدة. إذا كان True، يُستخدم التوكن المولّد من diffusers-cli login (المخزَّن في ~/.huggingface).
revision (str، اختياري، القيمة الافتراضية "main") : إصدار النموذج المحدد الذي سيتم استخدامه. يمكن أن يكون اسم فرع، أو اسم وسم، أو معرف التزامن، أو أي معرّف مسموح به بواسطة Git.
يعيد: SchedulerMixin أو tuple[SchedulerMixin, dict[str, Any]]
المجدول المُثبَّت من الإعداد. إذا كان return_unused_kwargs هو True، يُعاد tuple يكون عنصره الثاني قاموسًا من معاملات الكلمات المفتاحية غير المستخدمة.
أنشئ جدولة (scheduler) من ملف تكوين JSON مُعرّف مسبقًا في مجلد محلي أو مستودع على Hub.
> لاستخدام النماذج الخاصة أو النماذج المُقيَّدة، سجّل الدخول باستخدام
hf > auth login. يمكنك أيضًا تفعيل وضع "offline-mode" الخاص لاستخدام هذه الطريقة في بيئة محمية بجدار ناري.
save_pretrained[[diffusers.SchedulerMixin.save_pretrained]]
save_pretrained(save_directory: str | os.PathLike, push_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]]
diffusers.schedulers.scheduling_utils.SchedulerOutput[[diffusers.schedulers.scheduling_utils.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]]
diffusers.utils.PushToHubMixin[[diffusers.utils.PushToHubMixin]]
diffusers.utils.PushToHubMixin()
مزيج (Mixin) لدفع نموذج أو مجدول أو خط أنابيب إلى Hugging Face Hub.
push_to_hub[[diffusers.utils.PushToHubMixin.push_to_hub]]
push_to_hub(repo_id: str, commit_message: str | None = None, private: bool | None = None, token: str | None = None, create_pr: bool = False, safe_serialization: bool = True, variant: str | None = None, subfolder: 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")
Xet Storage Details
- Size:
- 20.3 kB
- Xet hash:
- 0b6a2b757ab1e14aafb63b74524a58c5a672eea9773339a29649b79ccbc5e832
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.