Diffusers documentation

Blocs 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

Blocs de pipeline

ModularPipelineBlocks

classe 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

< >

( state: PipelineState )

Obtenir toutes les entrées et les intermédiaires dans un seul dictionnaire

get_execution_blocks

< >

( **kwargs )

Paramètres

  • **kwargs — Noms et valeurs des entrées. Seules les entrées de déclenchement affectent la sélection du bloc.

Obtenir 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

< >

( 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

< >

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

créer un ModularPipeline, accepter éventuellement pretrained_model_name_or_path pour charger depuis le hub.

SequentialPipelineBlocks

classe diffusers.SequentialPipelineBlocks

< >

( )

Paramètres

  • block_classes — liste des classes de blocs à 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. 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

< >

( blocks_dict: dictdescription: str | None = None )

Paramètres

  • blocks_dict — Dictionnaire associant les noms de blocs aux classes ou instances de blocs

Crée une instance de SequentialPipelineBlocks à partir d'un dictionnaire de blocs.

get_execution_blocks

< >

( **kwargs )

Paramètres

  • **kwargs — Noms et valeurs des entrées. Seules les entrées de déclenchement affectent la sélection du bloc.

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

classe diffusers.LoopSequentialPipelineBlocks

< >

( )

Paramètres

  • block_classes — liste des classes de blocs à 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

< >

( blocks_dict: dict )

Paramètres

  • blocks_dict — Dictionnaire associant les noms de blocs aux instances de blocs

Crée une instance de LoopSequentialPipelineBlocks à partir d'un dictionnaire de blocs.

AutoPipelineBlocks

classe 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 de déclenchement 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_inputs doit avoir la même longueur que block_names et block_classes
  • Utilisez None dans block_trigger_inputs pour spécifier le bloc par défaut, c'est-à-dire le bloc qui s'exécutera si aucune entrée de déclenchement n'est présente

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_image est fourni, le bloc « inpaint » s’exécute (que image soit fourni ou non).
  • Si mask_image n'est pas fourni mais que image l'est, le bloc « img2img » s'exécute
  • Sinon, le bloc « text2img » s’exécute (par défaut, le déclencheur est None)

select_block

< >

( **kwargs )

Sélectionner le bloc en fonction de l'entrée de déclencheur présente (non None).

ConditionalPipelineBlocks

classe 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

< >

( **kwargs ) →

  • ModularPipelineBlocks

Paramètres

  • **kwargs — Noms et valeurs des entrées. Seules les entrées de déclenchement affectent la sélection du bloc.

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 :

  • A leaf block (no sub_blocks or LoopSequentialPipelineBlocks) → returns single ModularPipelineBlocks
  • Un SequentialPipelineBlocks → délègue à son get_execution_blocks() qui renvoie un SequentialPipelineBlocks contenant les blocs d'exécution résolus

select_block

< >

( **kwargs ) → str | None

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.

Update on GitHub