Skip to content

Commit 3e46c86

Browse files
committed
fix links in the doc
1 parent 8cb5b08 commit 3e46c86

File tree

2 files changed

+9
-11
lines changed

2 files changed

+9
-11
lines changed

docs/source/en/modular_diffusers/getting_started.md

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ With Modular Diffusers, we introduce a unified pipeline system that simplifies h
1818

1919
**Assemble Like LEGO®**: You can mix and match blocks in flexible ways. This allows you to write dedicated blocks for specific workflows, and then assemble different blocks into a pipeline that that can be used more conveniently for multiple workflows.
2020

21-
In this guide, we will focus on how to build pipelines this way using blocks we officially support at diffusers 🧨! We will show you how to write your own pipeline blocks and go into more details on how they work under the hood in this [guide](TODO). For advanced users who want to build complete workflows from scratch, we provide an end-to-end example in the [Developer Guide](developer_guide.md) that covers everything from writing custom pipeline blocks to deploying your workflow as a UI node.
21+
In this guide, we will focus on how to build pipelines this way using blocks we officially support at diffusers 🧨! We will show you how to write your own pipeline blocks and go into more details on how they work under the hood in this [guide](./write_own_pipeline_block.md). For advanced users who want to build complete workflows from scratch, we provide an end-to-end example in the [Developer Guide](./end_to_end.md) that covers everything from writing custom pipeline blocks to deploying your workflow as a UI node.
2222

2323
Let's get started! The Modular Diffusers Framework consists of three main components:
2424
- ModularPipelineBlocks
@@ -29,10 +29,10 @@ Let's get started! The Modular Diffusers Framework consists of three main compon
2929

3030
Pipeline blocks are the fundamental building blocks of the Modular Diffusers system. All pipeline blocks inherit from the base class `ModularPipelineBlocks`, including:
3131

32-
- [`PipelineBlock`](TODO): The most granular block - you define the computation logic.
33-
- [`SequentialPipelineBlocks`](TODO): A multi-block composed of multiple blocks that run sequentially, passing outputs as inputs to the next block.
34-
- [`LoopSequentialPipelineBlocks`](TODO): A special type of multi-block that forms loops.
35-
- [`AutoPipelineBlocks`](TODO): A multi-block composed of multiple blocks that are selected at runtime based on the inputs.
32+
- [`PipelineBlock`]: The most granular block - you define the computation logic.
33+
- [`SequentialPipelineBlocks`]: A multi-block composed of multiple blocks that run sequentially, passing outputs as inputs to the next block.
34+
- [`LoopSequentialPipelineBlocks`]: A special type of multi-block that forms loops.
35+
- [`AutoPipelineBlocks`]: A multi-block composed of multiple blocks that are selected at runtime based on the inputs.
3636

3737
All blocks have a consistent interface defining their requirements (components, configs, inputs, outputs) and computation logic. They can be used standalone or combined into larger blocks. Blocks are designed to be assembled into workflows for tasks such as image generation, video creation, and inpainting.
3838

@@ -288,7 +288,7 @@ ALL_BLOCKS = {
288288

289289
</Tip>
290290

291-
We will not go over how to write your own ModularPipelineBlocks but you can learn more about it [here](TODO).
291+
We will not go over how to write your own ModularPipelineBlocks but you can learn more about it [here](./write_own_pipeline_block.md).
292292

293293
This covers the essentials of pipeline blocks! You may have noticed that we haven't discussed how to load or run pipeline blocks - that's because **pipeline blocks are not runnable by themselves**. They are essentially **"definitions"** - they define the specifications and computational steps for a pipeline, but they do not contain any model states. To actually run them, you need to convert them into a `ModularPipeline` object.
294294

@@ -848,7 +848,7 @@ StableDiffusionXLAutoControlnetStep(
848848

849849
<Tip>
850850

851-
💡 **Auto Blocks**: This is first time we meet a Auto Blocks! `AutoPipelineBlocks` automatically adapt to your inputs by combining multiple workflows with conditional logic. This is why one convenient block can work for all tasks and controlnet types. See the [Auto Blocks Guide](TODO) for more details.
851+
💡 **Auto Blocks**: This is first time we meet a Auto Blocks! `AutoPipelineBlocks` automatically adapt to your inputs by combining multiple workflows with conditional logic. This is why one convenient block can work for all tasks and controlnet types. See the [Auto Blocks Guide](https://huggingface.co/docs/diffusers/modular_diffusers/write_own_pipeline_block#autopipelineblocks) for more details.
852852

853853
</Tip>
854854

@@ -1029,8 +1029,6 @@ Since we have a modular setup where different pipelines may share components, we
10291029
- `blocks.init_pipeline(repo)` creates a pipeline with a built-in loader that only includes components its blocks needs
10301030
- `StableDiffusionXLModularLoader.from_pretrained(repo)` set up a standalone loader that includes everything in the repo's `modular_model_index.json`
10311031

1032-
See the [Loader Guide](TODO) for more details.
1033-
10341032
</Tip>
10351033

10361034
```py

docs/source/en/modular_diffusers/write_own_pipeline_block.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ expected_config = [
132132
]
133133
```
134134

135-
**Components**: In the `ComponentSpec`, You must provide a `name` and ideally a `type_hint`. The actual loading details (`repo`, `subfolder`, `variant` and `revision` fields) are typically specified when creating the pipeline, as we covered in the [quicktour](quicktour.md#loading-components-into-a-modularpipeline).
135+
**Components**: In the `ComponentSpec`, You must provide a `name` and ideally a `type_hint`. The actual loading details (`repo`, `subfolder`, `variant` and `revision` fields) are typically specified when creating the pipeline, as we covered in the [Getting Started Guide](https://huggingface.co/docs/diffusers/en/modular_diffusers/getting_started#loading-components-into-a-modularpipeline).
136136

137137
**Configs**: Simple pipeline-level settings that control behavior across all blocks.
138138

@@ -292,7 +292,7 @@ I hope by now you have a basic idea about how `PipelineBlock` manages state thro
292292

293293
## Create a `SequentialPipelineBlocks`
294294

295-
I assume that you're already familiar with `SequentialPipelineBlocks` and how to create them with the `from_blocks_dict` API. It's one of the most common ways to use Modular Diffusers, and we've covered it pretty well in the [Getting Started Guide](https://moon-ci-docs.huggingface.co/docs/diffusers/pr_9672/en/modular_diffusers/quicktour#modularpipelineblocks).
295+
I assume that you're already familiar with `SequentialPipelineBlocks` and how to create them with the `from_blocks_dict` API. It's one of the most common ways to use Modular Diffusers, and we've covered it pretty well in the [Getting Started Guide](https://huggingface.co/docs/diffusers/pr_9672/en/modular_diffusers/getting_started#modularpipelineblocks).
296296

297297
But how do blocks actually connect and work together? Understanding this is crucial for building effective modular workflows. Let's explore this through an example.
298298

0 commit comments

Comments
 (0)