Diffusers documentation

Bloques de pipeline

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Bloques de pipeline

ModularPipelineBlocks

clase diffusers.ModularPipelineBlocks

< >

( )

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

< >

( state: PipelineState )

Obtenga todas las entradas y los intermediarios en un solo diccionario

get_execution_blocks

< >

( **kwargs )

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

< >

( workflow_name: str )

Parámetros

  • workflow_name — Nombre del workflow que se va 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

< >

( pretrained_model_name_or_path: str | os.PathLike | None = Nonecomponents_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = Nonecollection: str | None = None )

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

SequentialPipelineBlocks

clase diffusers.SequentialPipelineBlocks

< >

( )

Parámetros

  • block_classes — lista de clases de bloques que se usarán
  • block_names — lista de prefijos para cada bloque

Un bloque de Pipeline que combina varias 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

< >

( blocks_dict: dictdescription: str | None = None )

Parámetros

  • blocks_dict — Diccionario que mapea nombres de bloques a clases o instancias de bloques

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

get_execution_blocks

< >

( **kwargs )

Parámetros

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

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/ausencia (None o no None), y no en el valor real.

LoopSequentialPipelineBlocks

clase diffusers.LoopSequentialPipelineBlocks

< >

( )

Parámetros

  • block_classes — lista de clases de bloques que se usarán
  • 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

< >

( blocks_dict: dict )

Parámetros

  • blocks_dict — Diccionario que mapea nombres de bloques a instancias de bloques

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

AutoPipelineBlocks

clase diffusers.AutoPipelineBlocks

< >

( )

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 entradas 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

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

< >

( **kwargs )

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

ConditionalPipelineBlocks

clase diffusers.ConditionalPipelineBlocks

< >

( )

Parámetros

  • block_classes — Lista de clases de bloques que se usarán. 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

< >

( **kwargs ) →

  • ModularPipelineBlocks

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:

  • A leaf block (no sub_blocks or LoopSequentialPipelineBlocks) → returns single ModularPipelineBlocks
  • Un SequentialPipelineBlocks → delega en su get_execution_blocks(), que devuelve un SequentialPipelineBlocks que contiene los bloques de ejecución resueltos

select_block

< >

( **kwargs ) → str | None

Parámetros

  • **kwargs — Nombres de entrada de activación y sus valores del 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.

Update on GitHub