| <!--Copyright 2025 The HuggingFace Team. All rights reserved. |
|
|
| Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
|
|
| http://www.apache.org/licenses/LICENSE-2.0 |
|
|
| Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on |
| an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations under the License. |
| --> |
|
|
| # Getting Started with Modular Diffusers |
|
|
| <Tip warning={true}> |
|
|
| 🧪 **Experimental Feature**: Modular Diffusers is an experimental feature we are actively developing. The API may be subject to breaking changes. |
|
|
| </Tip> |
|
|
| With Modular Diffusers, we introduce a unified pipeline system that simplifies how you work with diffusion models. Instead of creating separate pipelines for each task, Modular Diffusers lets you: |
|
|
| **Write Only What's New**: You won't need to write an entire pipeline from scratch every time you have a new use case. You can create pipeline blocks just for your new workflow's unique aspects and reuse existing blocks for existing functionalities. |
|
|
| **Assemble Like LEGO®**: You can mix and match between blocks in flexible ways. This allows you to write dedicated blocks unique to specific workflows, and then assemble different blocks into a pipeline that can be used more conveniently for multiple workflows. |
|
|
|
|
| Here's how our guides are organized to help you navigate the Modular Diffusers documentation: |
|
|
| ### 🚀 Running Pipelines |
| - **[Modular Pipeline Guide](./modular_pipeline.md)** - How to use predefined blocks to build a pipeline and run it |
| - **[Components Manager Guide](./components_manager.md)** - How to manage and reuse components across multiple pipelines |
|
|
| ### 📚 Creating PipelineBlocks |
| - **[Pipeline and Block States](./modular_diffusers_states.md)** - Understanding PipelineState and BlockState |
| - **[Pipeline Block](./pipeline_block.md)** - How to write custom PipelineBlocks |
| - **[SequentialPipelineBlocks](sequential_pipeline_blocks.md)** - Connecting blocks in sequence |
| - **[LoopSequentialPipelineBlocks](./loop_sequential_pipeline_blocks.md)** - Creating iterative workflows |
| - **[AutoPipelineBlocks](./auto_pipeline_blocks.md)** - Conditional block selection |
|
|
| ### 🎯 Practical Examples |
| - **[End-to-End Example](./end_to_end_guide.md)** - Complete end-to-end examples including sharing your workflow in huggingface hub and deplying UI nodes |
|
|