# من DiffusionPipeline

إذا كنت على دراية بـ [DiffusionPipeline](/docs/diffusers/main/ar/api/pipelines/overview#diffusers.DiffusionPipeline) وتعمل مع [ModularPipeline](/docs/diffusers/main/ar/api/modular_diffusers/pipeline#diffusers.ModularPipeline) لأول مرة، فإن بعض الأمور تعمل بشكل مختلف. وهي مذكورة هنا حتى تكون على علم بها قبل أن تتابع [البدء السريع](./quickstart).

- **Loading is lazy and flexible.** [from_pretrained()](/docs/diffusers/main/ar/api/modular_diffusers/pipeline#diffusers.ModularPipeline.from_pretrained) builds the pipeline from the repository's `modular_model_index.json` without loading any weights. [load_components()](/docs/diffusers/main/ar/api/modular_diffusers/pipeline#diffusers.ModularPipeline.load_components) then loads them, and it doesn't have to be all at once: by default it loads everything, but you can load only the components you name with `names`, or the set one workflow needs with `workflow`. [update_components()](/docs/diffusers/main/ar/api/modular_diffusers/pipeline#diffusers.ModularPipeline.update_components) lets you reuse a component you already have, or one that differs from the repository's spec. See [Loading components](./modular_pipeline#loading-components) and [Updating components](./modular_pipeline#updating-components).
- **[ModularPipeline](/docs/diffusers/main/ar/api/modular_diffusers/pipeline#diffusers.ModularPipeline) يقرأ فهرسًا مختلفًا، `modular_model_index.json`**، لكنه يعمل أيضًا مع مستودع يحتوي فقط على `model_index.json`، طالما أن النموذج يحتوي على خط أنابيب معياري. والعكس غير صحيح: ففئات [DiffusionPipeline](/docs/diffusers/main/ar/api/pipelines/overview#diffusers.DiffusionPipeline) و`AutoPipeline` لا تعمل مع مستودع يحتوي فقط على `modular_model_index.json`.
- **تُعيد الاستدعاء حالة خط الأنابيب**، التي تحتفظ أيضًا بالقيم الوسيطة (`prompt_embeds`، `latents`، ...). اطلب ما تحتاجه عبر الحجة `output`، مثل `output="images"` أو `output=["images", "latents"]`، أو اقرأ خاصية من الحالة، كما في [البدء السريع](./quickstart#run-a-pipeline). راجع [الحالات](./modular_diffusers_states).
- **يُؤمَّن توجيه التصنيف الحر في مكوّن `guider`**، وليس في معامل استدعاء `guidance_scale`: `pipe.update_components(guider=ClassifierFreeGuidance(guidance_scale=5.0))`. راجع [دليل الموجّهات](../using-diffusers/guiders).
- **لا يوجد `callback_on_step_end`**؛ ومع ذلك، يمكنك إدراج كتلة في حلقة إزالة الضوضاء لاستخدام دوال الاستدعاء الموجودة لديك. راجع [خطوط الأنابيب المعيارية](../using-diffusers/callback#modular-pipelines) في دليل الاستدعاءات.
- **خط الأنابيب هو رسم بياني من الكتل** يمكنك تغييرها (إزالة، إدراج، استبدال) قبل بنائها باستخدام [init_pipeline()](/docs/diffusers/main/ar/api/modular_diffusers/pipeline_blocks#diffusers.ModularPipelineBlocks.init_pipeline)؛ يعيد `pipe.blocks` نسخة، لذا عدّل الكتل أولاً. راجع [تكوين سير عمل جديدة](./quickstart#compose-new-workflows).
- **يتم التعامل مع عملية الإزاحة بواسطة [ComponentsManager](/docs/diffusers/main/ar/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager)**، والذي يمكنه خدمة عدة خطوط أنابيب تتشارك في المكونات. راجع [دليل ComponentsManager](./components_manager#offloading).

