# Berasal dari DiffusionPipeline

Jika Anda sudah familiar dengan [DiffusionPipeline](/docs/diffusers/v0.43.0/id/api/pipelines/overview#diffusers.DiffusionPipeline) dan baru pertama kali bekerja dengan [ModularPipeline](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline#diffusers.ModularPipeline), ada beberapa hal yang bekerja dengan cara berbeda. Hal-hal tersebut diuraikan di sini agar Anda memahaminya sebelum mengikuti [quickstart](./quickstart).

- **Pemmuatan bersifat lazy dan fleksibel.** [from_pretrained()](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline#diffusers.ModularPipeline.from_pretrained) membangun pipeline dari `modular_model_index.json` repositori tanpa memuat bobot apa pun. [load_components()](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline#diffusers.ModularPipeline.load_components) kemudian memuat komponen-komponen tersebut, dan tidak harus sekaligus: secara default memuat semuanya, tetapi Anda dapat memuat hanya komponen yang Anda sebutkan dengan `names`, atau set yang dibutuhkan satu workflow dengan `workflow`. [update_components()](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline#diffusers.ModularPipeline.update_components) memungkinkan Anda menggunakan kembali komponen yang sudah Anda miliki, atau komponen yang berbeda dari spesifikasi repositori. Lihat [Pemmuatan komponen](./modular_pipeline#loading-components) dan [Pembaruan komponen](./modular_pipeline#updating-components).
- **[ModularPipeline](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline#diffusers.ModularPipeline) membaca indeks yang berbeda, `modular_model_index.json`**, tetapi juga berfungsi dengan repositori yang hanya memiliki `model_index.json`, selama model tersebut memiliki modular pipeline. Kebalikannya tidak berlaku: [DiffusionPipeline](/docs/diffusers/v0.43.0/id/api/pipelines/overview#diffusers.DiffusionPipeline) dan kelas `AutoPipeline` tidak berfungsi dengan repositori yang hanya memiliki `modular_model_index.json`.
- **Panggilan mengembalikan status pipeline**, yang juga menyimpan nilai-nilai antara (`prompt_embeds`, `latents`, ...). Minta apa yang Anda butuhkan dengan argumen `output`, `output="images"` atau `output=["images", "latents"]`, atau baca atribut dari status, seperti pada [quickstart](./quickstart#run-a-pipeline). Lihat [States](./modular_diffusers_states).
- **Classifier-free guidance didukung di komponen `guider`**, bukan sebagai argumen pemanggilan `guidance_scale`: `pipe.update_components(guider=ClassifierFreeGuidance(guidance_scale=5.0))`. Lihat [panduan guiders](../using-diffusers/guiders).
- **Tidak ada `callback_on_step_end`**; namun, Anda dapat menyisipkan blok ke dalam loop denoising untuk menggunakan fungsi callback yang sudah ada. Lihat [Pipelines modular](../using-diffusers/callback#modular-pipelines) di panduan callback.
- **Pipeline adalah graf dari blok-blok** yang dapat Anda ubah (pop, insert, replace) sebelum membangunnya dengan [init_pipeline()](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline_blocks#diffusers.ModularPipelineBlocks.init_pipeline); `pipe.blocks` mengembalikan salinan, jadi ubah blok-bloknya terlebih dahulu. Lihat [Mengomposisi workflow baru](./quickstart#compose-new-workflows).
- **Offloading ditangani oleh [ComponentsManager](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager)**, yang dapat melayani beberapa pipeline yang berbagi komponen. Lihat [panduan ComponentsManager](./components_manager#offloading).

