Buckets:

mishig's picture
|
download
raw
17.2 kB
# Блоки конвейера
## 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)
Базовый класс для всех блоков конвейера: ConditionalPipelineBlocks, AutoPipelineBlocks, SequentialPipelineBlocks, LoopSequentialPipelineBlocks
[ModularPipelineBlocks](/docs/diffusers/v0.43.0/ru/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 для загрузки из хабa.
## 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 : список префиксов для каждого блока
A Pipeline Blocks, объединяющий несколько классов блоков конвейера в один. При вызове последовательно вызывает каждый блок.
Этот класс наследуется от [ModularPipelineBlocks](/docs/diffusers/v0.43.0/ru/api/modular_diffusers/pipeline_blocks#diffusers.ModularPipelineBlocks). См. документацию родительского класса для общих методов, которые библиотека реализует для всех блоков конвейера (например, загрузка или сохранение и т. д.)
#### 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, содержащие только блоки, которые будут выполнены
Получите блоки, которые будут выполнены при заданных входных данных.
По мере того как обход проходит последовательные блоки, промежуточные выходные данные из разрешённых блоков добавляются к активным входным данным. Это означает, что условные блоки, зависящие от промежуточных значений (например, «запустить img2img, если image_latents присутствует»), будут разрешены корректно, при условии, что условие основано на наличии/отсутствии (None или не None), а не на фактическом значении.
## 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 : список префиксов для каждого блока
A Pipeline blocks that combines multiple pipeline block classes into a For Loop. When called, it will call each block in sequence.
Этот класс наследуется от [ModularPipelineBlocks](/docs/diffusers/v0.43.0/ru/api/modular_diffusers/pipeline_blocks#diffusers.ModularPipelineBlocks). См. документацию родительского класса для общих методов, которые библиотека реализует для всех блоков конвейера (например, загрузка или сохранение и т. д.)
#### 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`, чтобы обозначить блок по умолчанию.
A Pipeline — блок, который автоматически выбирает блок для выполнения на основе наличия входных триггеров.
Это специализированная версия `ConditionalPipelineBlocks`, в которой:
- Каждый блок имеет один соответствующий вход-триггер (соответствие 1:1)
- Выбор блока выполняется автоматически: выбирается первый блок, у которого присутствует входной сигнал запуска
- `block_trigger_inputs` должен иметь ту же длину, что и `block_names` и `block_classes`
- Используйте `None` в `block_trigger_inputs`, чтобы указать блок по умолчанию, то есть блок, который будет выполнен, если входные данные для запуска отсутствуют
Пример:
```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, этот блок может быть полностью пропущен, если входные триггеры не предоставлены.
A Pipeline Блок, который условно выбирает блок для выполнения на основе входных данных. Подклассы должны реализовать метод `select_block`, чтобы определить логику выбора блока. В настоящее время поддерживается только логика выбора на основе наличия или отсутствия входных данных (то есть, являются ли они `None` или нет).
Этот класс наследуется от [ModularPipelineBlocks](/docs/diffusers/v0.43.0/ru/api/modular_diffusers/pipeline_blocks#diffusers.ModularPipelineBlocks). См. документацию родительского класса для общих методов, которые библиотека реализует для всех блоков конвейера (например, загрузка или сохранение и т. д.)
#### 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()`, который возвращает
a `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** : Имена входных параметров триггера и их значения из состояния.
**Возвращает:** `str | None`
Имя блока для выполнения или None для использования значения по умолчанию/пропуска.
Выберите блок для выполнения на основе входных данных триггера. Подклассы должны реализовать этот метод, чтобы определить логику выбора блока.
Примечание: Если входные данные триггера включают промежуточные результаты предыдущих блоков, логика выбора должна зависеть только от наличия или отсутствия входного значения (то есть, является ли оно None), а не от его фактического значения. Это связано с тем, что `get_execution_blocks()` статически разрешает условия, распространяя имена промежуточных результатов без их значений во время выполнения.

Xet Storage Details

Size:
17.2 kB
·
Xet hash:
603e8b28256d402129db2ab682c60af541677d0fc6f8a86c0cbcb6143495d7ae

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