Buckets:
Блоки конвейера
ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]]
diffusers.ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]]
diffusers.ModularPipelineBlocks()
Базовый класс для всех блоков конвейера: ConditionalPipelineBlocks, AutoPipelineBlocks, SequentialPipelineBlocks, LoopSequentialPipelineBlocks
ModularPipelineBlocks предоставляет метод для загрузки и сохранения определения блоков конвейера.
get_block_state[[diffusers.ModularPipelineBlocks.get_block_state]]
get_block_state(state: PipelineState)
Получите все входные данные и промежуточные результаты в одном словаре
get_execution_blocks[[diffusers.ModularPipelineBlocks.get_execution_blocks]]
get_execution_blocks(**kwargs)
Параметры:
- **kwargs : Имена и значения входных параметров. На выбор блока влияют только входные параметры триггера.
Получает блок(и), которые будут выполнены при заданных входных данных. Должен быть реализован в подклассах, поддерживающих условный выбор блоков.
get_workflow[[diffusers.ModularPipelineBlocks.get_workflow]]
get_workflow(workflow_name: str)
Параметры:
workflow_name : Имя рабочего процесса для получения.
Получает блоки выполнения для конкретного рабочего процесса. Должен быть реализован в подклассах, определяющих _workflow_map.
init_pipeline[[diffusers.ModularPipelineBlocks.init_pipeline]]
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)
создайте ModularPipeline, при необходимости принимая pretrained_model_name_or_path для загрузки из хабa.
SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]]
diffusers.SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]]
diffusers.SequentialPipelineBlocks()
Параметры:
block_classes : список классов блоков, которые будут использоваться
block_names : список префиксов для каждого блока
A Pipeline Blocks, объединяющий несколько классов блоков конвейера в один. При вызове последовательно вызывает каждый блок.
Этот класс наследуется от ModularPipelineBlocks. См. документацию родительского класса для общих методов, которые библиотека реализует для всех блоков конвейера (например, загрузка или сохранение и т. д.)
from_blocks_dict[[diffusers.SequentialPipelineBlocks.from_blocks_dict]]
from_blocks_dict(blocks_dict: dict[str, typing.Any], description: str | None = None)
Параметры:
blocks_dict : словарь, сопоставляющий имена блоков с классами или экземплярами блоков
Возвращает:
Новый экземпляр SequentialPipelineBlocks
Создаёт экземпляр SequentialPipelineBlocks из словаря блоков.
get_execution_blocks[[diffusers.SequentialPipelineBlocks.get_execution_blocks]]
get_execution_blocks(**kwargs)
Параметры:
- **kwargs : Имена и значения входных параметров. На выбор блока влияют только входные параметры триггера.
Возвращает:
SequentialPipelineBlocks, содержащие только блоки, которые будут выполнены
Получите блоки, которые будут выполнены при заданных входных данных.
По мере того как обход проходит последовательные блоки, промежуточные выходные данные из разрешённых блоков добавляются к активным входным данным. Это означает, что условные блоки, зависящие от промежуточных значений (например, «запустить img2img, если image_latents присутствует»), будут разрешены корректно, при условии, что условие основано на наличии/отсутствии (None или не None), а не на фактическом значении.
LoopSequentialPipelineBlocks[[diffusers.LoopSequentialPipelineBlocks]]
diffusers.LoopSequentialPipelineBlocks[[diffusers.LoopSequentialPipelineBlocks]]
diffusers.LoopSequentialPipelineBlocks()
Параметры:
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. См. документацию родительского класса для общих методов, которые библиотека реализует для всех блоков конвейера (например, загрузка или сохранение и т. д.)
from_blocks_dict[[diffusers.LoopSequentialPipelineBlocks.from_blocks_dict]]
from_blocks_dict(blocks_dict: dict[str, typing.Any])
Параметры:
blocks_dict : словарь, сопоставляющий имена блоков с экземплярами блоков
Возвращает:
Новый экземпляр LoopSequentialPipelineBlocks
Создаёт экземпляр LoopSequentialPipelineBlocks из словаря блоков.
AutoPipelineBlocks[[diffusers.AutoPipelineBlocks]]
diffusers.AutoPipelineBlocks[[diffusers.AutoPipelineBlocks]]
diffusers.AutoPipelineBlocks()
Параметры:
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, чтобы указать блок по умолчанию, то есть блок, который будет выполнен, если входные данные для запуска отсутствуют
Пример:
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]]
select_block(**kwargs)
Выберите блок на основе того, какой входной триггер присутствует (не равен None).
ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]]
diffusers.ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]]
diffusers.ConditionalPipelineBlocks()
Параметры:
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. См. документацию родительского класса для общих методов, которые библиотека реализует для всех блоков конвейера (например, загрузка или сохранение и т. д.)
get_execution_blocks[[diffusers.ConditionalPipelineBlocks.get_execution_blocks]]
get_execution_blocks(**kwargs)
Параметры:
- **kwargs : Имена и значения входных параметров. На выбор блока влияют только входные параметры триггера.
Возвращает: - ModularPipelineBlocks
Листовой блок или разрешённый SequentialPipelineBlocks
None: если этот блок будет пропущен (не сработал ни один триггер и нет значения по умолчанию)
Получите блок(и), которые будут выполнены при заданных входных данных.
Рекурсивно разрешает вложенные ConditionalPipelineBlocks, пока не достигнет одного из следующих:
- Листовой блок (без sub_blocks или LoopSequentialPipelineBlocks) → возвращает один
ModularPipelineBlocks SequentialPipelineBlocks→ делегирует вызов своемуget_execution_blocks(), который возвращает aSequentialPipelineBlocks, содержащий разрешённые блоки выполнения
select_block[[diffusers.ConditionalPipelineBlocks.select_block]]
select_block(**kwargs)
Параметры:
- **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.