Buckets:

hf-doc-build/doc-dev / diffusers /pr_15066 /en /modular_diffusers /coming_from_diffusion_pipeline.md
HuggingFaceDocBuilder's picture
|
download
raw
3.34 kB

Coming from DiffusionPipeline

If you are familiar with DiffusionPipeline and are working with a ModularPipeline for the first time, a few things work differently. They are listed here so that you have them in mind before you go through the quickstart.

  • Loading is lazy and flexible. from_pretrained() builds the pipeline from the repository's modular_model_index.json without loading any weights. 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() lets you reuse a component you already have, or one that differs from the repository's spec. See Loading components and Updating components.
  • ModularPipeline reads a different index, modular_model_index.json, but it also works with a repository that only has a model_index.json, as long as the model has a modular pipeline. The reverse is not true: DiffusionPipeline and the AutoPipeline classes don't work with a repository that only has a modular_model_index.json.
  • A call returns the pipeline state, which holds the intermediate values too (prompt_embeds, latents, ...). Ask for what you need with the output argument, output="images" or output=["images", "latents"], or read an attribute of the state, as in the quickstart. See States.
  • Classifier-free guidance is supported in the guider component, not a guidance_scale call argument: pipe.update_components(guider=ClassifierFreeGuidance(guidance_scale=5.0)). See the guiders guide.
  • There is no callback_on_step_end; however, you can insert a block into the denoising loop to use your existing callback functions. See Modular pipelines in the callbacks guide.
  • The pipeline is a graph of blocks that you can change (pop, insert, replace) before building it with init_pipeline(); pipe.blocks returns a copy, so edit the blocks first. See Compose new workflows.
  • Offloading is handled by a ComponentsManager, which can serve several pipelines that share components. See the ComponentsManager guide.

Xet Storage Details

Size:
3.34 kB
·
Xet hash:
1424bd162d052764c2393eabc32d4ec9b03bfe8cca3a02ebb543a8d23053314a

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.