Buckets:
| # Pipeline 块 | |
| ## ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]] | |
| #### diffusers.ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]] | |
| ```python | |
| diffusers.ModularPipelineBlocks() | |
| ``` | |
| [源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L392) | |
| 所有 Pipeline Blocks 的基类:ConditionalPipelineBlocks、AutoPipelineBlocks、SequentialPipelineBlocks、LoopSequentialPipelineBlocks | |
| [ModularPipelineBlocks](/docs/diffusers/v0.43.0/zh/api/modular_diffusers/pipeline_blocks#diffusers.ModularPipelineBlocks) 提供了用于加载和保存流水线块定义的方法。 | |
| #### get_block_state[[diffusers.ModularPipelineBlocks.get_block_state]] | |
| ```python | |
| get_block_state(state: PipelineState) | |
| ``` | |
| [源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L590) | |
| 在一个字典中获取所有输入和中间值 | |
| #### get_execution_blocks[[diffusers.ModularPipelineBlocks.get_execution_blocks]] | |
| ```python | |
| get_execution_blocks(**kwargs) | |
| ``` | |
| [源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L461) | |
| **参数:** | |
| - ****kwargs**:输入名称和值。只有触发输入会影响块的选择。 | |
| 获取在给定输入下将执行的块。支持条件块选择的子类必须实现此方法。 | |
| #### get_workflow[[diffusers.ModularPipelineBlocks.get_workflow]] | |
| ```python | |
| get_workflow(workflow_name: str) | |
| ``` | |
| [源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L479) | |
| **参数:** | |
| workflow_name : 要获取的工作流名称。 | |
| 获取特定工作流的执行块。必须由定义了 `_workflow_map` 的子类实现。 | |
| #### init_pipeline[[diffusers.ModularPipelineBlocks.init_pipeline]] | |
| ```python | |
| init_pipeline(pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None) | |
| ``` | |
| [源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L568) | |
| 创建一个 ModularPipeline,可选地接受 pretrained_model_name_or_path 以从 hub 加载。 | |
| ## SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]] | |
| #### diffusers.SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]] | |
| ```python | |
| diffusers.SequentialPipelineBlocks() | |
| ``` | |
| [源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L1044) | |
| **参数:** | |
| block_classes : 要使用的块类列表 | |
| block_names : 每个块的 prefixes 列表 | |
| A Pipeline Blocks 将多个 pipeline block 类组合为一个。调用时,它会按顺序调用每个 block。 | |
| 此类继承自 [ModularPipelineBlocks](/docs/diffusers/v0.43.0/zh/api/modular_diffusers/pipeline_blocks#diffusers.ModularPipelineBlocks)。请查阅父类文档,了解该库为所有 pipeline 块实现的通用方法(例如加载或保存等)。 | |
| #### from_blocks_dict[[diffusers.SequentialPipelineBlocks.from_blocks_dict]] | |
| ```python | |
| from_blocks_dict(blocks_dict: dict[str, typing.Any], description: str | None = None) | |
| ``` | |
| [源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L1116) | |
| **参数:** | |
| blocks_dict : 将块名称映射到块类或实例的字典 | |
| **返回值:** | |
| 新的 SequentialPipelineBlocks 实例 | |
| 从块字典创建 SequentialPipelineBlocks 实例。 | |
| #### get_execution_blocks[[diffusers.SequentialPipelineBlocks.get_execution_blocks]] | |
| ```python | |
| get_execution_blocks(**kwargs) | |
| ``` | |
| [源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L1259) | |
| **参数:** | |
| - ****kwargs**:输入名称和值。只有触发输入会影响块的选择。 | |
| **返回值:** | |
| 仅包含将执行的块的 SequentialPipelineBlocks | |
| 获取在给定指定输入的情况下将执行的块。 | |
| 当遍历按顺序处理各个块时,已解析块的中间输出会被添加到活动输入中。这意味着,只要条件是基于存在性(即 None 或非 None)而非实际值,依赖于中间结果的有条件块(例如“如果 image_latents 存在,则运行 img2img”)就能正确解析。 | |
| ## LoopSequentialPipelineBlocks[[diffusers.LoopSequentialPipelineBlocks]] | |
| #### diffusers.LoopSequentialPipelineBlocks[[diffusers.LoopSequentialPipelineBlocks]] | |
| ```python | |
| diffusers.LoopSequentialPipelineBlocks() | |
| ``` | |
| [源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L1404) | |
| **参数:** | |
| block_classes : 要使用的块类列表 | |
| block_names : 每个块的 prefixes 列表 | |
| Pipeline 是一种将多个 pipeline 块类组合到 For Loop 中的块。调用时,它会按顺序调用每个块。 | |
| 此类继承自 [ModularPipelineBlocks](/docs/diffusers/v0.43.0/zh/api/modular_diffusers/pipeline_blocks#diffusers.ModularPipelineBlocks)。请查阅父类文档,了解该库为所有 pipeline 块实现的通用方法(例如加载或保存等)。 | |
| #### from_blocks_dict[[diffusers.LoopSequentialPipelineBlocks.from_blocks_dict]] | |
| ```python | |
| from_blocks_dict(blocks_dict: dict[str, typing.Any]) | |
| ``` | |
| [源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L1565) | |
| **参数:** | |
| blocks_dict : 将块名称映射到块实例的字典 | |
| **返回值:** | |
| 新的 LoopSequentialPipelineBlocks 实例 | |
| 从块字典创建 LoopSequentialPipelineBlocks 实例。 | |
| ## AutoPipelineBlocks[[diffusers.AutoPipelineBlocks]] | |
| #### diffusers.AutoPipelineBlocks[[diffusers.AutoPipelineBlocks]] | |
| ```python | |
| diffusers.AutoPipelineBlocks() | |
| ``` | |
| [源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L983) | |
| **参数:** | |
| block_classes : 要使用的块类列表。其长度必须与 `block_names` 和 `block_trigger_inputs` 相同。 | |
| block_names : 每个块的名称列表。其长度必须与 `block_classes` 和 `block_trigger_inputs` 相同。 | |
| block_trigger_inputs : 输入名称列表,其中每个元素指定对应块的触发输入。使用 `None` 标记默认块。 | |
| Pipeline 块会根据触发输入的存在情况,自动选择要运行的块。 | |
| 这是 `ConditionalPipelineBlocks` 的一个专用版本,其中: | |
| - 每个块都有一个对应的触发输入(1:1 映射) | |
| - 块选择是自动的:第一个触发输入存在的块会被选中 | |
| - `block_trigger_inputs` 的长度必须与 `block_names` 和 `block_classes` 相同 | |
| - 在 `block_trigger_inputs` 中使用 `None` 来指定默认块,即在没有触发输入时将运行的块 | |
| 示例: | |
| ```python | |
| class MyAutoBlock(AutoPipelineBlocks): | |
| block_classes = [InpaintEncoderBlock, ImageEncoderBlock, TextEncoderBlock] | |
| block_names = ["inpaint", "img2img", "text2img"] | |
| block_trigger_inputs = ["mask_image", "image", None] # text2img is the default | |
| ``` | |
| 使用此定义: | |
| - 只要提供了 `mask_image`,"inpaint" 块就会执行(无论是否提供了 `image`)。 | |
| - 如果未提供 `mask_image` 但提供了 `image`,则会运行 "img2img" 块 | |
| - 否则,将执行 "text2img" 块(默认值,触发器为 `None`) | |
| #### select_block[[diffusers.AutoPipelineBlocks.select_block]] | |
| ```python | |
| select_block(**kwargs) | |
| ``` | |
| [源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L1036) | |
| 根据哪个触发输入存在(不为 None)来选择块。 | |
| ## ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]] | |
| #### diffusers.ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]] | |
| ```python | |
| diffusers.ConditionalPipelineBlocks() | |
| ``` | |
| [源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L684) | |
| **参数:** | |
| block_classes : 要使用的块类列表。其长度必须与 `block_names` 相同。 | |
| block_names : 每个块的名称列表。其长度必须与 `block_classes` 相同。 | |
| block_trigger_inputs : `select_block()` 用于确定要运行哪个块的输入名称列表。对于 `ConditionalPipelineBlocks`,此列表无需与 `block_names` 和 `block_classes` 对应。对于 `AutoPipelineBlocks`,此列表的长度必须与 `block_names` 和 `block_classes` 相同,其中每个元素指定对应块的触发输入。 | |
| default_block_name : 当没有触发输入匹配时,要运行的默认块的名称。如果为 None,则在未提供触发输入时,可以完全跳过此块。 | |
| Pipeline Blocks 会根据输入有条件地选择要运行的 block。子类必须实现 `select_block` 方法以定义选择 block 的逻辑。目前,我们仅支持基于输入是否存在(即是否为 `None`)的选择逻辑。 | |
| 此类继承自 [ModularPipelineBlocks](/docs/diffusers/v0.43.0/zh/api/modular_diffusers/pipeline_blocks#diffusers.ModularPipelineBlocks)。请查阅父类文档,了解该库为所有 pipeline 块实现的通用方法(例如加载或保存等)。 | |
| #### get_execution_blocks[[diffusers.ConditionalPipelineBlocks.get_execution_blocks]] | |
| ```python | |
| get_execution_blocks(**kwargs) | |
| ``` | |
| [源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L874) | |
| **参数:** | |
| - ****kwargs**:输入名称和值。只有触发输入会影响块的选择。 | |
| **返回:** - `ModularPipelineBlocks` | |
| 叶块或已解析的 `SequentialPipelineBlocks` | |
| - `None`:如果此块将被跳过(没有匹配的触发器且没有默认值) | |
| 获取给定输入下将执行的块。 | |
| 递归解析嵌套的 ConditionalPipelineBlocks,直到达到以下任一条件: | |
| - 叶块(没有 sub_blocks 或 LoopSequentialPipelineBlocks)→ 返回单个 `ModularPipelineBlocks` | |
| - `SequentialPipelineBlocks` → 委托给其 `get_execution_blocks()`,该方法返回 | |
| 一个包含已解析执行块的 `SequentialPipelineBlocks` | |
| #### select_block[[diffusers.ConditionalPipelineBlocks.select_block]] | |
| ```python | |
| select_block(**kwargs) | |
| ``` | |
| [源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L830) | |
| **参数:** | |
| - ****kwargs** : 来自 state 的触发器输入名称及其值。 | |
| **返回:** `str | None` | |
| 要运行的块名称,或 None 以使用默认值/跳过。 | |
| 根据触发器输入选择要运行的块。子类必须实现此方法以定义选择块的逻辑。 | |
| 注意:当触发输入包含来自前面块的中间输出时,选择逻辑应仅取决于该输入是否存在(即是否为 None),而不取决于其实际值。这是因为 `get_execution_blocks()` 通过传播中间输出名称(而不传播其运行时值)来静态解析条件。 | |
Xet Storage Details
- Size:
- 10.9 kB
- Xet hash:
- 4010c1f6632feadf715ab3c3b229a3120b582403ceaaa21a4ea7002e4dc8b839
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.