# Proveniente de DiffusionPipeline

Si estás familiarizado con [DiffusionPipeline](/docs/diffusers/v0.43.0/es/api/pipelines/overview#diffusers.DiffusionPipeline) y trabajas por primera vez con un [ModularPipeline](/docs/diffusers/v0.43.0/es/api/modular_diffusers/pipeline#diffusers.ModularPipeline), hay algunas cosas que funcionan de manera diferente. Se enumeran aquí para que las tengas en cuenta antes de pasar por el [quickstart](./quickstart).

- **La carga es perezosa y flexible.** [from_pretrained()](/docs/diffusers/v0.43.0/es/api/modular_diffusers/pipeline#diffusers.ModularPipeline.from_pretrained) construye el pipeline a partir del `modular_model_index.json` del repositorio sin cargar ningún peso. [load_components()](/docs/diffusers/v0.43.0/es/api/modular_diffusers/pipeline#diffusers.ModularPipeline.load_components) los carga a continuación, y no tiene que ser todo de una vez: por defecto carga todo, pero puedes cargar solo los componentes que nombres con `names`, o el conjunto que necesita un flujo de trabajo con `workflow`. [update_components()](/docs/diffusers/v0.43.0/es/api/modular_diffusers/pipeline#diffusers.ModularPipeline.update_components) te permite reutilizar un componente que ya tienes, o uno que difiere de la especificación del repositorio. Consulta [Carga de componentes](./modular_pipeline#loading-components) y [Actualización de componentes](./modular_pipeline#updating-components).
- **[ModularPipeline](/docs/diffusers/v0.43.0/es/api/modular_diffusers/pipeline#diffusers.ModularPipeline) lee un índice diferente, `modular_model_index.json`**, pero también funciona con un repositorio que solo tiene un `model_index.json`, siempre que el modelo tenga un pipeline modular. Lo contrario no es cierto: [DiffusionPipeline](/docs/diffusers/v0.43.0/es/api/pipelines/overview#diffusers.DiffusionPipeline) y las clases `AutoPipeline` no funcionan con un repositorio que solo tiene un `modular_model_index.json`.
- **Una llamada devuelve el estado del pipeline**, que también contiene los valores intermedios (`prompt_embeds`, `latents`, ...). Solicita lo que necesites con el argumento `output`, `output="images"` o `output=["images", "latents"]`, o lee un atributo del estado, como en el [quickstart](./quickstart#run-a-pipeline). Consulta [States](./modular_diffusers_states).
- **La guía sin clasificador se admite en el componente `guider`**, no como argumento de llamada de `guidance_scale`: `pipe.update_components(guider=ClassifierFreeGuidance(guidance_scale=5.0))`. Consulte la [guía de guiders](../using-diffusers/guiders).
- **No existe `callback_on_step_end`**; sin embargo, puedes insertar un bloque en el bucle de desruido para usar tus funciones de callback existentes. Consulta [Pipelines modulares](../using-diffusers/callback#modular-pipelines) en la guía de callbacks.
- **El pipeline es un grafo de bloques** que puedes modificar (eliminar, insertar, reemplazar) antes de construirlo con [init_pipeline()](/docs/diffusers/v0.43.0/es/api/modular_diffusers/pipeline_blocks#diffusers.ModularPipelineBlocks.init_pipeline); `pipe.blocks` devuelve una copia, por lo que edita los bloques primero. Consulta [Componer nuevos flujos de trabajo](./quickstart#compose-new-workflows).
- **El offloading lo gestiona un [ComponentsManager](/docs/diffusers/v0.43.0/es/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager)**, que puede atender varios pipelines que comparten componentes. Consulte la [guía de ComponentsManager](./components_manager#offloading).

