Buckets:
Blocs de pipeline
ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]]
diffusers.ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]]
diffusers.ModularPipelineBlocks()
Classe de base pour tous les blocs de Pipeline : ConditionalPipelineBlocks, AutoPipelineBlocks, SequentialPipelineBlocks, LoopSequentialPipelineBlocks
ModularPipelineBlocks fournit une méthode pour charger et enregistrer la définition des blocs de pipeline.
get_block_state[[diffusers.ModularPipelineBlocks.get_block_state]]
get_block_state(state: PipelineState)
Obtenir toutes les entrées et les intermédiaires dans un seul dictionnaire
get_execution_blocks[[diffusers.ModularPipelineBlocks.get_execution_blocks]]
get_execution_blocks(**kwargs)
Paramètres :
- **kwargs : Noms et valeurs des entrées. Seules les entrées de déclenchement affectent la sélection des blocs.
Obtenez le ou les blocs qui s'exécuteraient étant donné les entrées. Doit être implémenté par les sous-classes qui prennent en charge la sélection conditionnelle de blocs.
get_workflow[[diffusers.ModularPipelineBlocks.get_workflow]]
get_workflow(workflow_name: str)
Paramètres :
workflow_name : Nom du workflow à récupérer.
Récupère les blocs d'exécution pour un workflow spécifique. Doit être implémenté par les sous-classes qui définissent _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)
créer un ModularPipeline, accepter éventuellement pretrained_model_name_or_path pour charger depuis le hub.
SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]]
diffusers.SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]]
diffusers.SequentialPipelineBlocks()
Paramètres :
block_classes : liste des classes de bloc à utiliser
block_names : liste des préfixes pour chaque bloc
Un bloc de pipeline qui combine plusieurs classes de blocs de pipeline en un seul. Lors de son appel, il appelle chaque bloc dans l'ordre.
Cette classe hérite de ModularPipelineBlocks. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous les blocs de pipeline (tel que le chargement ou l'enregistrement, etc.)
from_blocks_dict[[diffusers.SequentialPipelineBlocks.from_blocks_dict]]
from_blocks_dict(blocks_dict: dict[str, typing.Any], description: str | None = None)
Paramètres :
blocks_dict : Dictionnaire associant les noms de blocs aux classes ou instances de blocs
Retourne :
Une nouvelle instance de SequentialPipelineBlocks
Crée une instance de SequentialPipelineBlocks à partir d'un dictionnaire de blocs.
get_execution_blocks[[diffusers.SequentialPipelineBlocks.get_execution_blocks]]
get_execution_blocks(**kwargs)
Paramètres :
- **kwargs : Noms et valeurs des entrées. Seules les entrées de déclenchement affectent la sélection des blocs.
Retourne :
SequentialPipelineBlocks ne contenant que les blocs qui s'exécuteraient
Obtenez les blocs qui s’exécuteraient avec les entrées spécifiées.
Lorsque la traversée parcourt les blocs séquentiels, les sorties intermédiaires des blocs résolus sont ajoutées aux entrées actives. Cela signifie que les blocs conditionnels qui dépendent d’intermédiaires (par exemple, « exécuter img2img si image_latents est présent ») seront résolus correctement, à condition que la condition soit basée sur la présence ou l’absence (None ou non None), et non sur la valeur réelle.
LoopSequentialPipelineBlocks[[diffusers.LoopSequentialPipelineBlocks]]
diffusers.LoopSequentialPipelineBlocks[[diffusers.LoopSequentialPipelineBlocks]]
diffusers.LoopSequentialPipelineBlocks()
Paramètres :
block_classes : liste des classes de bloc à utiliser
block_names : liste des préfixes pour chaque bloc
Un bloc Pipeline qui combine plusieurs classes de blocs de pipeline dans une boucle For. Lorsqu'il est appelé, il appelle chaque bloc dans l'ordre.
Cette classe hérite de ModularPipelineBlocks. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous les blocs de pipeline (tel que le chargement ou l'enregistrement, etc.)
from_blocks_dict[[diffusers.LoopSequentialPipelineBlocks.from_blocks_dict]]
from_blocks_dict(blocks_dict: dict[str, typing.Any])
Paramètres :
blocks_dict : Dictionnaire associant les noms de blocs aux instances de blocs
Retourne :
Une nouvelle instance de LoopSequentialPipelineBlocks
Crée une instance de LoopSequentialPipelineBlocks à partir d'un dictionnaire de blocs.
AutoPipelineBlocks[[diffusers.AutoPipelineBlocks]]
diffusers.AutoPipelineBlocks[[diffusers.AutoPipelineBlocks]]
diffusers.AutoPipelineBlocks()
Paramètres :
block_classes : Liste des classes de blocs à utiliser. Doit avoir la même longueur que block_names et block_trigger_inputs.
block_names : Liste des noms de chaque bloc. Doit avoir la même longueur que block_classes et block_trigger_inputs.
block_trigger_inputs : Liste des noms d'entrées où chaque élément spécifie l'entrée déclencheuse pour le bloc correspondant. Utilisez None pour marquer le bloc par défaut.
Un bloc Pipeline qui sélectionne automatiquement un bloc à exécuter en fonction de la présence d'entrées déclencheuses.
Il s’agit d’une version spécialisée de ConditionalPipelineBlocks dans laquelle :
- Chaque bloc possède une entrée de déclencheur correspondante (correspondance 1:1)
- La sélection du bloc est automatique : le premier bloc dont l'entrée de déclenchement est présente est sélectionné
block_trigger_inputsdoit avoir la même longueur queblock_namesetblock_classes- Utilisez
Nonedansblock_trigger_inputspour spécifier le bloc par défaut, c'est-à-dire le bloc qui s'exécutera si aucun élément déclencheur n'est présent
Exemple :
class MyAutoBlock(AutoPipelineBlocks):
block_classes = [InpaintEncoderBlock, ImageEncoderBlock, TextEncoderBlock]
block_names = ["inpaint", "img2img", "text2img"]
block_trigger_inputs = ["mask_image", "image", None] # text2img is the default
Avec cette définition :
- Tant que
mask_imageest fourni, le bloc "inpaint" s'exécute (queimagesoit fourni ou non). - Si
mask_imagen'est pas fourni mais queimagel'est, le bloc "img2img" s'exécute - Sinon, le bloc « text2img » s’exécute (par défaut, le déclencheur est
None)
select_block[[diffusers.AutoPipelineBlocks.select_block]]
select_block(**kwargs)
Sélectionner le bloc en fonction de l'entrée de déclencheur présente (non None).
ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]]
diffusers.ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]]
diffusers.ConditionalPipelineBlocks()
Paramètres :
block_classes : Liste des classes de blocs à utiliser. Doit avoir la même longueur que block_names.
block_names : Liste des noms de chaque bloc. Doit avoir la même longueur que block_classes.
block_trigger_inputs : Liste des noms d'entrées que select_block() utilise pour déterminer quel bloc exécuter. Pour ConditionalPipelineBlocks, cela n'a pas besoin de correspondre à block_names et block_classes. Pour AutoPipelineBlocks, cela doit avoir la même longueur que block_names et block_classes, où chaque élément spécifie l'entrée déclencheuse du bloc correspondant.
default_block_name : Nom du bloc par défaut à exécuter lorsque aucune entrée de déclenchement ne correspond. Si None, ce bloc peut être entièrement ignoré si aucune entrée de déclenchement n'est fournie.
Un bloc Pipeline qui sélectionne conditionnellement un bloc à exécuter en fonction des entrées. Les sous-classes doivent implémenter la méthode select_block pour définir la logique de sélection du bloc. Actuellement, nous ne prenons en charge que la logique de sélection basée sur la présence ou l'absence d'entrées (c'est-à-dire si elles sont None ou non).
Cette classe hérite de ModularPipelineBlocks. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous les blocs de pipeline (tel que le chargement ou l'enregistrement, etc.)
get_execution_blocks[[diffusers.ConditionalPipelineBlocks.get_execution_blocks]]
get_execution_blocks(**kwargs)
Paramètres :
- **kwargs : Noms et valeurs des entrées. Seules les entrées de déclenchement affectent la sélection des blocs.
Retourne : - ModularPipelineBlocks
Un bloc feuille ou des SequentialPipelineBlocks résolus
None: si ce bloc est ignoré (aucun déclencheur ne correspond et aucun défaut n’est défini)
Obtenir le ou les blocs qui s’exécuteraient étant donné les entrées.
Résout récursivement les ConditionalPipelineBlocks imbriqués jusqu'à atteindre l'un des éléments suivants :
- Un bloc feuille (sans sub_blocks ni LoopSequentialPipelineBlocks) → renvoie un seul
ModularPipelineBlocks - Un
SequentialPipelineBlocks→ délègue à songet_execution_blocks()qui renvoie unSequentialPipelineBlockscontenant les blocs d'exécution résolus
select_block[[diffusers.ConditionalPipelineBlocks.select_block]]
select_block(**kwargs)
Paramètres :
- **kwargs : Noms des entrées de déclenchement et leurs valeurs issues de l'état.
Retourne : str | None
Le nom du bloc à exécuter, ou None pour utiliser le bloc par défaut ou passer à l'étape suivante.
Sélectionnez le bloc à exécuter en fonction des entrées de déclenchement. Les sous-classes doivent implémenter cette méthode pour définir la logique de sélection du bloc.
Note : lorsque les entrées de déclenchement incluent des sorties intermédiaires de blocs antérieurs, la logique de sélection ne doit dépendre que de la présence ou de l’absence de l’entrée (c’est-à-dire qu’elle soit None ou non), et non de sa valeur réelle. En effet, get_execution_blocks() résout les conditions de manière statique en propageant les noms des sorties intermédiaires sans leurs valeurs d’exécution.
Xet Storage Details
- Size:
- 12.9 kB
- Xet hash:
- af4fcf4b83ea036662be718718bb362c5772c422d87b99712eeb3ccd62e74928
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.