Buckets:
خط أنابيب
ModularPipeline[[diffusers.ModularPipeline]]
diffusers.ModularPipeline[[diffusers.ModularPipeline]]
diffusers.ModularPipeline(blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = None, pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, modular_config_dict: dict[str, typing.Any] | None = None, config_dict: dict[str, typing.Any] | None = None, **kwargs)
المعاملات:
blocks : ModularPipelineBlocks، وهي الوحدات المستخدمة في خط المعالجة
الفئة الأساسية لجميع خطوط الأنابيب المعيارية.
from_pretrained[[diffusers.ModularPipeline.from_pretrained]]
from_pretrained(pretrained_model_name_or_path: str | os.PathLike | None, trust_remote_code: bool | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, **kwargs)
المعاملات:
pretrained_model_name_or_path (str أو os.PathLike، اختياري) : المسار إلى تكوين خط أنابيب مُدرَّب مسبقًا. سيحاول أولًا تحميل التكوين من modular_model_index.json، ثم يلجأ إلى model_index.json لضمان التوافق مع المستودعات القياسية غير المعيارية. إذا لم يحتوي pretrained_model_name_or_path على أي تكوين لخط أنابيب، فسيتم تعيينه إلى None أثناء التهيئة.
trust_remote_code (bool, اختياري) : ما إذا كان يجب الثقة بالكود البعيد عند تحميل خط الأنابيب، ويجب ضبطه على True إذا كنت ترغب في إنشاء كتل خط الأنابيب بناءً على الكود المخصص في pretrained_model_name_or_path
components_manager (ComponentsManager، اختياري) : مثيل من ComponentsManager لإدارة عدة مكونات عبر خطوط أنابيب مختلفة وتطبيق استراتيجيات التفريغ.
collection (str، اختياري) --` اسم المجموعة لتنظيم المكونات في ComponentsManager.
workflow (str, اختياري) : اسم مسار عمل مُعلن بواسطة كتل خط الأنابيب. إذا تم تقديمه، تُقصّ الكتل إلى كتل التنفيذ الخاصة بذلك المسار، بحيث يتوقع خط الأنابيب فقط — ولا يحمّل load_components() إلا — المكونات التي يستخدمها ذلك المسار.
تحميل ModularPipeline من مستودع في huggingface hub.
get_component_spec[[diffusers.ModularPipeline.get_component_spec]]
get_component_spec(name: str)
يعيد:
- نسخة من كائن ComponentSpec للاسم المكوّن المحدد
load_components[[diffusers.ModularPipeline.load_components]]
load_components(names: list[str] | str | None = None, workflow: str | None = None, **kwargs)
المعاملات:
names : list of component names to load. If None, will load all components with default_creation_method == "from_pretrained". If provided as a list or string, will load only the specified components.
workflow : اسم سير عمل مُعلن بواسطة كتل خط الأنابيب. إذا تم تقديمه، يتم تحميل المكونات التي تستخدمها كتل تنفيذ ذلك السير عمل فقط. لا يمكن دمجه مع names.
- **kwargs : معاملات إضافية تُمرَّر إلى
from_pretrained(). يمكن أن تكون: - قيمة واحدة تُطبَّق على جميع المكونات التي سيتم تحميلها، مثل dtype=torch.bfloat16 - قاموس، مثل dtype={"unet": torch.bfloat16, "default": torch.float32} - إذا كان من المحتمل تجاوز ComponentSpec عند تمرير حقل تحميل مختلف في kwargs، مثلpretrained_model_name_or_path،variant،revision، إلخ. - إذا كان من المحتمل تجاوز ComponentSpec عند تمرير حقل تحميل مختلف في kwargs، مثلpretrained_model_name_or_path،variant،revision، إلخ.
تحميل المكونات المحددة من المواصفات.
register_components[[diffusers.ModularPipeline.register_components]]
register_components(**kwargs)
المعاملات:
- **kwargs : حُجج بكلمات مفتاحية حيث تكون المفاتيح أسماء المكونات والقيم كائنات المكونات. على سبيل المثال، register_components(unet=unet_model, text_encoder=encoder_model)
سجّل المكونات مع مواصفاتها المقابلة.
تتولى هذه الطريقة المسؤولية عن:
- يُعيّن كائنات المكوّنات كخصائص على المُحمِّل (مثل self.unet = unet)
- يحدّث قاموس الإعدادات، الذي سيُحفظ باسم
modular_model_index.jsonأثناءsave_pretrained(لمكونات from_pretrained فقط) - يضيف المكونات إلى مدير المكونات إذا كان مرفقًا (للمكونات من from_pretrained فقط)
يتم استدعاء هذه الطريقة عند:
- تُهيّأ المكوّنات أولاً في init:
- مكوّنات from_pretrained غير محمّلة أثناء init لذا يتم تسجيلها على أنها None؛
- تُنشأ مكوّنات non from_pretrained أثناء init وتُسجَّل كالكائن نفسه
- تُحدَّث المكونات باستخدام طريقة
update_components()؛ على سبيل المثال loader.update_components(unet=unet) أو loader.update_components(guider=guider_spec) - (from_pretrained) يتم تحميل المكونات باستخدام طريقة
load_components(): على سبيل المثال، loader.load_components(names=["unet"]) أو loader.load_components() لتحميل جميع المكونات الافتراضية
ملاحظات:
- When registering None for a component, it sets attribute to None but still syncs specs with the config dict, which will be saved as
modular_model_index.jsonduringsave_pretrained - component_specs are updated to match the new component outside of this method, e.g. in
update_components()method
save_pretrained[[diffusers.ModularPipeline.save_pretrained]]
save_pretrained(save_directory: str | os.PathLike, safe_serialization: bool = True, variant: str | None = None, max_shard_size: int | str | None = None, push_to_hub: bool = False, **kwargs)
المعاملات:
save_directory (str أو os.PathLike) : المجلد الذي سيتم حفظ خط الأنابيب فيه. سيتم إنشاؤه إذا لم يكن موجودًا.
safe_serialization (bool، اختياري، الافتراضي True) : ما إذا كان سيتم حفظ النموذج باستخدام safetensors أو بالطريقة التقليدية الخاصة بـ PyTorch باستخدام pickle.
variant (str، اختياري) : إذا تم تحديده، تُحفظ الأوزان بالتنسيق pytorch_model.<variant>.bin.
max_shard_size (int أو str، القيمة الافتراضية هي None) : الحد الأقصى لحجم نقطة التفتيش قبل تقسيمها إلى أجزاء. ستكون نقاط التفتيش المقسمة بعد ذلك كل منها بحجم أقل من هذا الحجم. إذا عُبر عنها كنص، فيجب أن تتكون من أرقام متبوعة بوحدة (مثل "5GB"). إذا عُبر عنها كعدد صحيح، فإن الوحدة هي البايت.
push_to_hub (bool، اختياري، الافتراضي False) : ما إذا كان يجب دفع خط الأنابيب إلى مركز نماذج Hugging Face بعد حفظه.
- **kwargs : حُجج إضافية بالكلمات المفتاحية: -
overwrite_modular_index(bool، اختياري، القيمة الافتراضيةTrue): ما إذا كان يجب تحديثmodular_model_index.jsonبحيث تشير مواصفات التحميل لكل مكوّن محفوظ إلى الوجهة:repo_idعند الدفع إلى Hub، وإلاsave_directory. المكوّنات غير المحمّلة لا تُحفظ وتحتفظ دائمًا بمواصفات التحميل المسجّلة لها. مرّرFalseللحفاظ أيضًا على المواصفات المسجّلة للمكوّنات التي يتم حفظها (مثل فهرس يشير عمدًا إلى مستودعات أخرى)؛ أما المكوّنات التي لا تحمل معرّف تحميل (مثل النماذج المخصصة المضافة عبرupdate_components) فتُعاد كتابتها على أي حال لأنها لا تملك مصدرًا مسجّلًا. -repo_id(str، اختياري): معرّف المستودع الذي سيتم دفع خط الأنابيب إليه. القيمة الافتراضية هي المكوّن الأخير منsave_directory. -commit_message(str، اختياري): رسالة الالتزام لعملية الدفع إلى hub. -private(bool، اختياري): ما إذا كان يجب أن يكون المستودع خاصًا. -create_pr(bool، اختياري، القيمة الافتراضيةFalse): ما إذا كان يجب إنشاء طلب سحب بدلاً من الدفع مباشرة. -token(str، اختياري): رمز Hugging Face المستخدم للمصادقة.
احفظ خط الأنابيب وجميع مكوّناته في مجلد، بحيث يمكن إعادة تحميله باستخدام طريقة الفئة from_pretrained().
إلى[[diffusers.ModularPipeline.to]]
to(*args, **kwargs)
المعاملات:
dtype (torch.dtype، اختياري) : يعيد خط أنابيب مع dtype المحدد
device (torch.Device، اختياري) : يعيد خط أنابيب مع device المحدد
silence_dtype_warnings (str، اختياري، القيمة الافتراضية False) : ما إذا كان يجب تجاهل التحذيرات إذا لم يكن dtype المستهدف متوافقًا مع device المستهدف.
يعيد: DiffusionPipeline
تم تحويل خط الأنابيب إلى dtype و/أو dtype المحدد.
يُنفّذ تحويل نوع البيانات (dtype) و/أو الجهاز (device) الخاص بـ Pipeline. يتم استنتاج torch.dtype وtorch.device من معاملات self.to(*args, **kwargs).
> إذا كان خط الأنابيب يحتوي بالفعل على torch.dtype وtorch.device الصحيحين، فإنه يُعاد كما هو. وإلا، > فإن خط الأنابيب المُعاد هو نسخة من self مع torch.dtype وtorch.device المطلوبين.
إليك طرق استدعاء to:
to(dtype, silence_dtype_warnings=False) → DiffusionPipelineلإرجاع خط أنابيب بالـdtypeالمحددto(device, silence_dtype_warnings=False) → DiffusionPipelineلإرجاع خط أنابيب معdeviceالمحددto(device=None, dtype=None, silence_dtype_warnings=False) → DiffusionPipelineلإرجاع خط أنابيب معdeviceوdtypeالمحددين
unload_components[[diffusers.ModularPipeline.unload_components]]
unload_components(names: list[str] | str)
المعاملات:
names : اسم المكوّن أو قائمة بأسماء المكوّنات التي سيتم تفريغها.
تفريغ المكونات المحددة، مما يحرر ذاكرتها.
يُعاد تعيين خاصية المكوّن إلى None، وإذا كان مكوّن ComponentsManager مرفقًا، يُزال المكوّن منه. تبقى مواصفات المكوّن دون تغيير، لذا يمكن تحميل المكوّن مرة أخرى لاحقًا باستخدام load_components().
update_components[[diffusers.ModularPipeline.update_components]]
update_components(**kwargs)
المعاملات:
- **kwargs : كائنات المكونات أو قيم الإعدادات التي سيتم تحديثها: - كائنات المكونات: يتم وضع علامة تلقائيًا على النماذج المحمّلة عبر
AutoModel.from_pretrained()أوComponentSpec.load()بمعلومات التحميل. يمكن تمرير كائنات ConfigMixin التي لا تحتوي على أوزان (مثل المجدولين والموجهين) مباشرة. - قيم الإعدادات: قيم بسيطة لتحديث إعدادات التهيئة (مثلrequires_safety_checker=False)
حدّث المكوّنات وقيم الإعدادات والمواصفات بعد إنشاء خط الأنابيب.
تتيح لك هذه الطريقة:
- استبدال المكونات الموجودة بأخرى جديدة (مثل تحديث
self.unetأوself.text_encoder) - تحديث قيم الإعدادات (مثل تغيير علم
self.requires_safety_checker)
بالإضافة إلى تحديث المكونات وقيم الإعدادات كخصائص للخط، يقوم هذا الإجراء أيضًا بتحديث:
- المواصفات المقابلة في
_component_specsو_config_specs - قائمة
configالتي سيتم حفظها باسمmodular_model_index.jsonأثناءsave_pretrained
أمثلة:
# Update pre-trained model
pipeline.update_components(unet=new_unet_model, text_encoder=new_text_encoder)
# Update configuration values
pipeline.update_components(requires_safety_checker=False)
ملاحظات:
- ستتمتع المكونات المحمّلة عبر
AutoModel.from_pretrained()أوComponentSpec.load()تُحفظ المواصفات المحمّلة لأغراض التسلسل. أما المكونات المخصصة أو المحمّلة محليًا دون مراجع إلى Hub، فسيتم تحديث إدخالاتها فيmodular_model_index.jsonتلقائيًا أثناءsave_pretrained(). - يمكن تمرير كائنات ConfigMixin التي لا تحتوي على أوزان (مثل المجدولين والموجهين) مباشرة.
Xet Storage Details
- Size:
- 16.4 kB
- Xet hash:
- ca356c335c6242d9f56dff4f3b2c65b0372c0a336444575e7287f38c5cd87dcc
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.