# Pipelines The [`DiffusionPipeline`] is the easiest way to load any pretrained diffusion pipeline from the [Hub](https://huggingface.co/models?library=diffusers) and to use it in inference. One should not use the Diffusion Pipeline class for training or fine-tuning a diffusion model. Individual components of diffusion pipelines are usually trained individually, so we suggest to directly work with [`UNetModel`] and [`UNetConditionModel`]. Any diffusion pipeline that is loaded with [`~DiffusionPipeline.from_pretrained`] will automatically detect the pipeline type, *e.g.* [`StableDiffusionPipeline`] and consequently load each component of the pipeline and pass them into the `__init__` function of the pipeline, *e.g.* [`~StableDiffusionPipeline.__init__`]. Any pipeline object can be saved locally with [`~DiffusionPipeline.save_pretrained`]. ## DiffusionPipeline [[autodoc]] DiffusionPipeline - from_pretrained - save_pretrained - to - device - components ## ImagePipelineOutput By default diffusion pipelines return an object of class [[autodoc]] pipeline_utils.ImagePipelineOutput