Diffusers documentation
ComponentsManager
ComponentsManager
ComponentsManager لا يزال قيد التطوير النشط وقد تتغير واجهة برمجياته.
يُعدّ ComponentsManager نظام تسجيل وإدارة نماذج لـ Modular Diffusers. فهو يضيف النماذج ويتتبعها، ويخزّن بيانات وصفية مفيدة (حجم النموذج، موضع الجهاز، المُكيّفات)، ويدعم تفريغ الموارد.
ستوضح لك هذه الدليل كيفية استخدام ComponentsManager لإدارة المكونات وذاكرة الجهاز.
الاتصال بخط أنابيب
Create a ComponentsManager and pass it to a ModularPipeline with either from_pretrained() or init_pipeline().
from diffusers import ModularPipeline, ComponentsManager
import torch
manager = ComponentsManager()
pipe = ModularPipeline.from_pretrained("Tongyi-MAI/Z-Image-Turbo", components_manager=manager)
pipe.load_components(dtype=torch.bfloat16)from diffusers import ModularPipelineBlocks, ComponentsManager
import torch
manager = ComponentsManager()
blocks = ModularPipelineBlocks.from_pretrained("diffusers/Florence2-image-Annotator", trust_remote_code=True)
pipe= blocks.init_pipeline(components_manager=manager)
pipe.load_components(dtype=torch.bfloat16)تُسجَّل المكونات التي تُحمّلها pipeline تلقائيًا في المُدير. يمكنك فحصها فورًا.
فحص المكونات
اطبع ComponentsManager لعرض جميع المكونات المسجّلة، بما في ذلك فئتها، وموضعها على الجهاز، ونوع البيانات (dtype)، وحجم الذاكرة، ومعرّف التحميل.
يتوافق المخرَج أدناه مع مثال from_pretrained أعلاه.
Components:
=============================================================================================================================
Models:
-----------------------------------------------------------------------------------------------------------------------------
Name_ID | Class | Device: act(exec) | Dtype | Size (GB) | Load ID
-----------------------------------------------------------------------------------------------------------------------------
text_encoder_140458257514752 | Qwen3Model | cpu | torch.bfloat16 | 7.49 | Tongyi-MAI/Z-Image-Turbo|text_encoder|null|null
vae_140458257515376 | AutoencoderKL | cpu | torch.bfloat16 | 0.16 | Tongyi-MAI/Z-Image-Turbo|vae|null|null
transformer_140458257515616 | ZImageTransformer2DModel | cpu | torch.bfloat16 | 11.46 | Tongyi-MAI/Z-Image-Turbo|transformer|null|null
-----------------------------------------------------------------------------------------------------------------------------
Other Components:
-----------------------------------------------------------------------------------------------------------------------------
ID | Class | Collection
-----------------------------------------------------------------------------------------------------------------------------
scheduler_140461023555264 | FlowMatchEulerDiscreteScheduler | N/A
tokenizer_140458256346432 | Qwen2Tokenizer | N/A
-----------------------------------------------------------------------------------------------------------------------------تُظهر الجدول النماذج (مع معلومات الجهاز، ونوع البيانات، والذاكرة) بشكل منفصل عن المكونات الأخرى مثل مجدولات المعالجة ومجزئات الرموز. إذا كانت أي من النماذج تستخدم محولات LoRA أو IP-Adapters أو تم تطبيق التكميم عليها، فسيتم عرض هذه المعلومات في قسم إضافي في الأسفل.
إخلاء
تُعدّ طريقة enable_auto_cpu_offload() استراتيجية إزاحة عامة تعمل عبر جميع النماذج بغضّ النظر عن خطّ الأنابيب الذي يستخدمها. بمجرد تفعيلها، لن تحتاج إلى القلق بشأن تحديد الموقع على الجهاز عند إضافة مكوّنات أو إزالتها.
manager.enable_auto_cpu_offload(device="cuda") # or "mps", "xpu", "cpu"تبدأ جميع النماذج على وحدة المعالجة المركزية (CPU)، وينقل ComponentsManager النموذج إلى الجهاز المناسب مباشرة قبل الحاجة إليه، كما يعيد النماذج الأخرى إلى وحدة المعالجة المركزية عندما تكون ذاكرة وحدة معالجة الرسوميات (GPU) منخفضة.
استدعِ disable_auto_cpu_offload() لتعطيل النقل.
manager.disable_auto_cpu_offload()