Buckets:

mishig's picture
|
download
raw
12.7 kB

Bloques de pipeline

ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]]

diffusers.ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]]

diffusers.ModularPipelineBlocks()

Fuente

Clase base para todos los bloques de Pipeline: ConditionalPipelineBlocks, AutoPipelineBlocks, SequentialPipelineBlocks, LoopSequentialPipelineBlocks

ModularPipelineBlocks proporciona un método para cargar y guardar la definición de los bloques de pipeline.

get_block_state[[diffusers.ModularPipelineBlocks.get_block_state]]

get_block_state(state: PipelineState)

Fuente

Obtenga todas las entradas y los intermediarios en un solo diccionario

get_execution_blocks[[diffusers.ModularPipelineBlocks.get_execution_blocks]]

get_execution_blocks(**kwargs)

Fuente

Parámetros:

  • **kwargs : Nombres y valores de entrada. Solo las entradas de activación afectan la selección de bloques.

Obtén el o los bloques que se ejecutarían dados los inputs. Debe ser implementado por las subclases que admiten la selección condicional de bloques.

get_workflow[[diffusers.ModularPipelineBlocks.get_workflow]]

get_workflow(workflow_name: str)

Fuente

Parámetros:

workflow_name : Nombre del flujo de trabajo a recuperar.

Obtén los bloques de ejecución para un flujo de trabajo específico. Debe ser implementado por las subclases que definen _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)

Fuente

crear un ModularPipeline, aceptar opcionalmente pretrained_model_name_or_path para cargar desde el hub.

SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]]

diffusers.SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]]

diffusers.SequentialPipelineBlocks()

Fuente

Parámetros:

block_classes : lista de clases de bloques a utilizar

block_names : lista de prefijos para cada bloque

Un bloque de Pipeline que combina múltiples clases de bloques de pipeline en uno. Al ser llamado, ejecutará cada bloque en secuencia.

Esta clase hereda de ModularPipelineBlocks. Consulte la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos los bloques de pipeline (como la carga o el guardado, etc.).

from_blocks_dict[[diffusers.SequentialPipelineBlocks.from_blocks_dict]]

from_blocks_dict(blocks_dict: dict[str, typing.Any], description: str | None = None)

Fuente

Parámetros:

blocks_dict : Diccionario que mapea nombres de bloques a clases o instancias de bloques

Devuelve:

Una nueva instancia de SequentialPipelineBlocks

Crea una instancia de SequentialPipelineBlocks a partir de un diccionario de bloques.

get_execution_blocks[[diffusers.SequentialPipelineBlocks.get_execution_blocks]]

get_execution_blocks(**kwargs)

Fuente

Parámetros:

  • **kwargs : Nombres y valores de entrada. Solo las entradas de activación afectan la selección de bloques.

Devuelve:

Un SequentialPipelineBlocks que contiene solo los bloques que se ejecutarían

Obtén los bloques que se ejecutarían con las entradas especificadas.

A medida que la recorrida avanza por los bloques secuenciales, las salidas intermedias de los bloques resueltos se añaden a las entradas activas. Esto significa que los bloques condicionales que dependen de intermedios (p. ej., "ejecutar img2img si image_latents está presente") se resolverán correctamente, siempre que la condición se base en la presencia o ausencia (None o no None), y no en el valor real.

LoopSequentialPipelineBlocks[[diffusers.LoopSequentialPipelineBlocks]]

diffusers.LoopSequentialPipelineBlocks[[diffusers.LoopSequentialPipelineBlocks]]

diffusers.LoopSequentialPipelineBlocks()

Fuente

Parámetros:

block_classes : lista de clases de bloques a utilizar

block_names : lista de prefijos para cada bloque

Un bloque Pipeline que combina múltiples clases de bloques de pipeline en un bucle For. Al invocarlo, llamará a cada bloque en secuencia.

Esta clase hereda de ModularPipelineBlocks. Consulte la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos los bloques de pipeline (como la carga o el guardado, etc.).

from_blocks_dict[[diffusers.LoopSequentialPipelineBlocks.from_blocks_dict]]

from_blocks_dict(blocks_dict: dict[str, typing.Any])

Fuente

Parámetros:

blocks_dict : Diccionario que mapea nombres de bloques a instancias de bloques

Devuelve:

Una nueva instancia de LoopSequentialPipelineBlocks

Crea una instancia de LoopSequentialPipelineBlocks a partir de un diccionario de bloques.

AutoPipelineBlocks[[diffusers.AutoPipelineBlocks]]

diffusers.AutoPipelineBlocks[[diffusers.AutoPipelineBlocks]]

diffusers.AutoPipelineBlocks()

Fuente

Parámetros:

block_classes : Lista de clases de bloques a utilizar. Debe tener la misma longitud que block_names y block_trigger_inputs.

block_names : Lista de nombres para cada bloque. Debe tener la misma longitud que block_classes y block_trigger_inputs.

block_trigger_inputs : Lista de nombres de entrada donde cada elemento especifica la entrada de activación para el bloque correspondiente. Use None para marcar el bloque predeterminado.

Un bloque Pipeline que selecciona automáticamente un bloque para ejecutarlo en función de la presencia de entradas de activación.

Esta es una versión especializada de ConditionalPipelineBlocks donde:

  • Cada bloque tiene una entrada de disparador correspondiente (mapeo 1:1)
  • La selección de bloques es automática: se selecciona el primer bloque cuya entrada de activación está presente
  • block_trigger_inputs debe tener la misma longitud que block_names y block_classes
  • Use None en block_trigger_inputs para especificar el bloque predeterminado, es decir, el bloque que se ejecutará si no hay entradas de activación presentes

Ejemplo:

    class MyAutoBlock(AutoPipelineBlocks):
        block_classes = [InpaintEncoderBlock, ImageEncoderBlock, TextEncoderBlock]
        block_names = ["inpaint", "img2img", "text2img"]
        block_trigger_inputs = ["mask_image", "image", None]  # text2img is the default

Con esta definición:

  • Mientras se proporcione mask_image, se ejecuta el bloque "inpaint" (independientemente de si se proporciona image o no).
  • Si no se proporciona mask_image pero sí se proporciona image, se ejecuta el bloque "img2img"
  • En caso contrario, se ejecuta el bloque "text2img" (predeterminado, el disparador es None)

select_block[[diffusers.AutoPipelineBlocks.select_block]]

select_block(**kwargs)

Fuente

Seleccione el bloque en función de la entrada de activación presente (distinta de None).

ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]]

diffusers.ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]]

diffusers.ConditionalPipelineBlocks()

Fuente

Parámetros:

block_classes : Lista de clases de bloques a utilizar. Debe tener la misma longitud que block_names.

block_names : Lista de nombres para cada bloque. Debe tener la misma longitud que block_classes.

block_trigger_inputs : Lista de nombres de entrada que select_block() utiliza para determinar qué bloque ejecutar. Para ConditionalPipelineBlocks, esto no tiene por qué corresponder a block_names y block_classes. Para AutoPipelineBlocks, esto debe tener la misma longitud que block_names y block_classes, donde cada elemento especifica la entrada de activación para el bloque correspondiente.

default_block_name : Nombre del bloque predeterminado que se ejecuta cuando ninguna entrada de activación coincide. Si es None, este bloque puede omitirse por completo cuando no se proporcionan entradas de activación.

Un bloque Pipeline que selecciona condicionalmente un bloque para ejecutarlo en función de las entradas. Las subclases deben implementar el método select_block para definir la lógica de selección del bloque. Actualmente, solo admitimos lógica de selección basada en la presencia o ausencia de entradas (es decir, si son None o no).

Esta clase hereda de ModularPipelineBlocks. Consulte la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos los bloques de pipeline (como la carga o el guardado, etc.).

get_execution_blocks[[diffusers.ConditionalPipelineBlocks.get_execution_blocks]]

get_execution_blocks(**kwargs)

Fuente

Parámetros:

  • **kwargs : Nombres y valores de entrada. Solo las entradas de activación afectan la selección de bloques.

Devuelve: - ModularPipelineBlocks

Un bloque hoja o SequentialPipelineBlocks resueltos

  • None: Si este bloque se omitiría (no se coincidió con ningún disparador y no hay un valor predeterminado)

Obtén el o los bloques que se ejecutarían con las entradas dadas.

Resuelve recursivamente los ConditionalPipelineBlocks anidados hasta alcanzar:

  • Un bloque hoja (sin sub_blocks ni LoopSequentialPipelineBlocks) → devuelve un único ModularPipelineBlocks
  • Un SequentialPipelineBlocks → delega en su get_execution_blocks(), que devuelve un SequentialPipelineBlocks que contiene los bloques de ejecución resueltos

select_block[[diffusers.ConditionalPipelineBlocks.select_block]]

select_block(**kwargs)

Fuente

Parámetros:

  • **kwargs : Nombres de las entradas de activación y sus valores desde el estado.

Devuelve: str | None

El nombre del bloque que se debe ejecutar, o None para usar el predeterminado/omitir.

Seleccione el bloque a ejecutar en función de las entradas del disparador. Las subclases deben implementar este método para definir la lógica de selección del bloque.

Nota: Cuando las entradas de activación incluyen salidas intermedias de bloques anteriores, la lógica de selección debe depender únicamente de la presencia o ausencia de la entrada (es decir, si es None o no), y no de su valor real. Esto se debe a que get_execution_blocks() resuelve las condiciones de forma estática propagando los nombres de las salidas intermedias sin sus valores en tiempo de ejecución.

Xet Storage Details

Size:
12.7 kB
·
Xet hash:
a26549ab16b0250d2cb6882aada10cc788c6bb5e9e4d9d900272fe40cb0c82cf

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