Buckets:

mishig's picture
|
download
raw
12.7 kB
# Bloques de pipeline
## ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]]
#### diffusers.ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]]
```python
diffusers.ModularPipelineBlocks()
```
[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L392)
Clase base para todos los bloques de Pipeline: ConditionalPipelineBlocks, AutoPipelineBlocks, SequentialPipelineBlocks, LoopSequentialPipelineBlocks
[ModularPipelineBlocks](/docs/diffusers/v0.43.0/es/api/modular_diffusers/pipeline_blocks#diffusers.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]]
```python
get_block_state(state: PipelineState)
```
[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L590)
Obtenga todas las entradas y los intermediarios en un solo diccionario
#### get_execution_blocks[[diffusers.ModularPipelineBlocks.get_execution_blocks]]
```python
get_execution_blocks(**kwargs)
```
[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L461)
**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]]
```python
get_workflow(workflow_name: str)
```
[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L479)
**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]]
```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)
```
[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L568)
crear un ModularPipeline, aceptar opcionalmente pretrained_model_name_or_path para cargar desde el hub.
## SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]]
#### diffusers.SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]]
```python
diffusers.SequentialPipelineBlocks()
```
[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L1044)
**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](/docs/diffusers/v0.43.0/es/api/modular_diffusers/pipeline_blocks#diffusers.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]]
```python
from_blocks_dict(blocks_dict: dict[str, typing.Any], description: str | None = None)
```
[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L1116)
**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]]
```python
get_execution_blocks(**kwargs)
```
[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L1259)
**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]]
```python
diffusers.LoopSequentialPipelineBlocks()
```
[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L1404)
**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](/docs/diffusers/v0.43.0/es/api/modular_diffusers/pipeline_blocks#diffusers.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]]
```python
from_blocks_dict(blocks_dict: dict[str, typing.Any])
```
[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L1565)
**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]]
```python
diffusers.AutoPipelineBlocks()
```
[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L983)
**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:
```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
```
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]]
```python
select_block(**kwargs)
```
[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L1036)
Seleccione el bloque en función de la entrada de activación presente (distinta de None).
## ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]]
#### diffusers.ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]]
```python
diffusers.ConditionalPipelineBlocks()
```
[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L684)
**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](/docs/diffusers/v0.43.0/es/api/modular_diffusers/pipeline_blocks#diffusers.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]]
```python
get_execution_blocks(**kwargs)
```
[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L874)
**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]]
```python
select_block(**kwargs)
```
[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L830)
**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.