Buckets:

mishig's picture
|
download
raw
14.7 kB

Pipeline

ModularPipeline[[diffusers.ModularPipeline]]

diffusers.ModularPipeline[[diffusers.ModularPipeline]]

diffusers.ModularPipeline(blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = None, pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, modular_config_dict: dict[str, typing.Any] | None = None, config_dict: dict[str, typing.Any] | None = None, **kwargs)

Source

Paramètres :

blocks : ModularPipelineBlocks, les blocs à utiliser dans le pipeline

Classe de base pour tous les pipelines modulaires.

from_pretrained[[diffusers.ModularPipeline.from_pretrained]]

from_pretrained(pretrained_model_name_or_path: str | os.PathLike | None, trust_remote_code: bool | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, **kwargs)

Source

Paramètres :

pretrained_model_name_or_path (str ou os.PathLike, facultatif) : Chemin vers une configuration de pipeline préentraînée. Il tentera d’abord de charger la configuration depuis modular_model_index.json, puis basculera sur model_index.json pour la compatibilité avec les dépôts standard non modulaires. Si pretrained_model_name_or_path ne contient aucune configuration de pipeline, elle sera définie sur None lors de l’initialisation.

trust_remote_code (bool, optionnel) : Indique s'il faut faire confiance au code distant lors du chargement du pipeline. Doit être défini sur True si vous souhaitez créer des blocs de pipeline basés sur le code personnalisé de pretrained_model_name_or_path

components_manager (ComponentsManager, optionnel) : instance de ComponentsManager pour gérer plusieurs composants à travers différents pipelines et appliquer des stratégies de déchargement.

collection (str, optionnel) --` Nom de la collection pour organiser les composants dans le ComponentsManager.

workflow (str, optionnel) : Nom d'un workflow déclaré par les blocs du pipeline. S'il est fourni, les blocs sont élagués aux blocs d'exécution de ce workflow, de sorte que le pipeline n'attend — et que load_components() ne charge — que les composants utilisés par ce workflow.

Charger un ModularPipeline depuis un dépôt du hub Hugging Face.

get_component_spec[[diffusers.ModularPipeline.get_component_spec]]

get_component_spec(name: str)

Source

Retourne :

  • une copie de l'objet ComponentSpec pour le nom de composant donné

load_components[[diffusers.ModularPipeline.load_components]]

load_components(names: list[str] | str | None = None, workflow: str | None = None, **kwargs)

Source

Paramètres :

names : liste des noms de composants à charger. Si None, tous les composants dont default_creation_method == "from_pretrained" seront chargés. Si fourni sous forme de liste ou de chaîne, seuls les composants spécifiés seront chargés.

workflow : nom d'un workflow déclaré par les blocs de pipeline. S'il est fourni, seuls les composants utilisés par les blocs d'exécution de ce workflow sont chargés. Ne peut pas être combiné avec names.

  • **kwargs : kwargs supplémentaires à transmettre à from_pretrained(). Peut être : - une valeur unique à appliquer à tous les composants à charger, par exemple dtype=torch.bfloat16 - un dictionnaire, par exemple dtype={"unet": torch.bfloat16, "default": torch.float32} - si nécessaire, écrase ComponentSpec si un champ de chargement différent est passé dans kwargs, par exemple pretrained_model_name_or_path, variant, revision, etc. - si nécessaire, écrase ComponentSpec si un champ de chargement différent est passé dans kwargs, par exemple pretrained_model_name_or_path, variant, revision, etc.

Charger les composants sélectionnés à partir des spécifications.

register_components[[diffusers.ModularPipeline.register_components]]

register_components(**kwargs)

Source

Paramètres :

  • **kwargs : Arguments par mot-clé où les clés sont les noms des composants et les valeurs sont les objets de composants. Par exemple, register_components(unet=unet_model, text_encoder=encoder_model)

Enregistrez les composants avec leurs spécifications correspondantes.

Cette méthode est responsable de :

  1. Définit les objets de composant en tant qu'attributs du chargeur (par exemple, self.unet = unet)
  2. Met à jour le dictionnaire de configuration, qui sera enregistré sous le nom modular_model_index.json lors de l'appel à save_pretrained (uniquement pour les composants from_pretrained)
  3. Ajoute des composants au gestionnaire de composants si celui-ci est attaché (uniquement pour les composants from_pretrained)

Cette méthode est appelée lorsque :

  • Les composants sont d'abord initialisés dans init :
    • les composants de from_pretrained non chargés lors de init sont enregistrés comme None ;
    • les composants non from_pretrained sont créés lors de init et enregistrés en tant que l'objet lui-même
  • Les composants sont mis à jour à l'aide de la méthode update_components() : par exemple, loader.update_components(unet=unet) ou loader.update_components(guider=guider_spec)
  • (from_pretrained) Les composants sont chargés avec la méthode load_components() : par exemple, loader.load_components(names=["unet"]) ou loader.load_components() pour charger tous les composants par défaut

Remarques :

  • Lors de l’enregistrement de None pour un composant, l’attribut est défini sur None, mais les spécifications sont toujours synchronisées avec le dictionnaire de configuration, qui sera enregistré sous la forme modular_model_index.json lors de l’appel à save_pretrained.
  • Les component_specs sont mis à jour pour correspondre au nouveau composant en dehors de cette méthode, par exemple dans la méthode update_components()

save_pretrained[[diffusers.ModularPipeline.save_pretrained]]

save_pretrained(save_directory: str | os.PathLike, safe_serialization: bool = True, variant: str | None = None, max_shard_size: int | str | None = None, push_to_hub: bool = False, **kwargs)

Source

Paramètres :

save_directory (str ou os.PathLike) : Répertoire dans lequel enregistrer le pipeline. Il sera créé s'il n'existe pas.

safe_serialization (bool, facultatif, par défaut True) : Indique si le modèle doit être enregistré en utilisant safetensors ou de manière traditionnelle PyTorch avec pickle.

variant (str, facultatif) : Si spécifié, les poids sont enregistrés au format pytorch_model.<variant>.bin.

max_shard_size (int ou str, par défaut None) : La taille maximale d'un point de contrôle avant son fractionnement. Les points de contrôle fractionnés auront chacun une taille inférieure à cette valeur. S'il est exprimé sous forme de chaîne, il doit être composé de chiffres suivis d'une unité (comme "5GB"). S'il est exprimé sous forme d'entier, l'unité est l'octet.

push_to_hub (bool, facultatif, par défaut False) : Indique s'il faut publier le pipeline sur le Hugging Face model hub après l'avoir enregistré.

  • **kwargs : Arguments supplémentaires par mot-clé : - overwrite_modular_index (bool, facultatif, valeur par défaut True) : Indique s'il faut mettre à jour modular_model_index.json afin que la spécification de chargement de chaque composant enregistré pointe vers la destination : repo_id lors de la publication sur le Hub, sinon save_directory. Les composants non chargés ne sont pas enregistrés et conservent toujours leurs spécifications de chargement enregistrées. Passez False pour conserver également les spécifications enregistrées des composants en cours d'enregistrement (par exemple pour un index qui référence délibérément d'autres dépôts) ; les composants sans identifiant de chargement (tels que les modèles personnalisés ajoutés avec update_components) sont toujours réécrits car ils n'ont pas de source enregistrée. - repo_id (str, facultatif) : L'identifiant du dépôt vers lequel publier le pipeline. Valeur par défaut : le dernier composant de save_directory. - commit_message (str, facultatif) : Message de commit pour l'opération de publication sur le Hub. - private (bool, facultatif) : Indique si le dépôt doit être privé. - create_pr (bool, facultatif, valeur par défaut False) : Indique s'il faut créer une demande de tirage (pull request) au lieu de publier directement. - token (str, facultatif) : Le jeton Hugging Face à utiliser pour l'authentification.

Enregistrez le pipeline et tous ses composants dans un répertoire afin qu’il puisse être rechargé à l’aide de la méthode de classe from_pretrained().

vers[[diffusers.ModularPipeline.to]]

to(*args, **kwargs)

Source

Paramètres :

dtype (torch.dtype, facultatif) : Renvoie un pipeline avec le dtype spécifié

device (torch.Device, facultatif) : Retourne un pipeline avec le device spécifié

silence_dtype_warnings (str, facultatif, par défaut False) : Indique s'il faut omettre les avertissements si le dtype cible n'est pas compatible avec le device cible.

Retourne : DiffusionPipeline

Le pipeline converti en dtype et/ou dtype spécifié(s).

Effectue la conversion du dtype et/ou du device du Pipeline. Un torch.dtype et un torch.device sont inférés à partir des arguments de self.to(*args, **kwargs).

> Si le pipeline possède déjà le torch.dtype et le torch.device corrects, il est renvoyé tel quel. Sinon, > le pipeline renvoyé est une copie de self avec le torch.dtype et le torch.device souhaités.

Voici les façons d'appeler to :

  • to(dtype, silence_dtype_warnings=False) → DiffusionPipeline pour renvoyer un pipeline avec le dtype spécifié
  • to(device, silence_dtype_warnings=False) → DiffusionPipeline pour renvoyer un pipeline avec le device spécifié
  • to(device=None, dtype=None, silence_dtype_warnings=False) → DiffusionPipeline pour renvoyer un pipeline avec le device et le dtype spécifiés

unload_components[[diffusers.ModularPipeline.unload_components]]

unload_components(names: list[str] | str)

Source

Paramètres :

names : nom du composant ou liste de noms de composants à décharger.

Décharger les composants sélectionnés, libérant ainsi leur mémoire.

L'attribut component est réinitialisé à None et, si un ComponentsManager est attaché, le composant est retiré de celui-ci. La spécification du composant n'est pas modifiée, ce qui permet de le recharger ultérieurement avec load_components().

update_components[[diffusers.ModularPipeline.update_components]]

update_components(**kwargs)

Source

Paramètres :

  • **kwargs : Objets de composants ou valeurs de configuration à mettre à jour : - Objets de composants : Les modèles chargés avec AutoModel.from_pretrained() ou ComponentSpec.load() sont automatiquement étiquetés avec des informations de chargement. Les objets ConfigMixin sans poids (par exemple, les planificateurs, les guides) peuvent être passés directement. - Valeurs de configuration : Des valeurs simples pour mettre à jour les paramètres de configuration (par exemple, requires_safety_checker=False)

Mettre à jour les composants et les valeurs et spécifications de configuration après l'instantiation du pipeline.

Cette méthode vous permet de :

  1. Remplacer les composants existants par de nouveaux (par exemple, mettre à jour self.unet ou self.text_encoder)
  2. Mettre à jour les valeurs de configuration (par exemple, modifier le drapeau self.requires_safety_checker)

En plus de mettre à jour les composants et les valeurs de configuration en tant qu'attributs du pipeline, la méthode met également à jour :

  • les spécifications correspondantes dans _component_specs et _config_specs
  • le dictionnaire config, qui sera enregistré sous le nom modular_model_index.json lors de l'appel à save_pretrained

Exemples :

# Update pre-trained model
pipeline.update_components(unet=new_unet_model, text_encoder=new_text_encoder)

# Update configuration values
pipeline.update_components(requires_safety_checker=False)

Remarques :

  • Les composants chargés avec AutoModel.from_pretrained() ou ComponentSpec.load() auront spécifications de chargement conservées pour la sérialisation. Les composants personnalisés ou chargés localement sans références au Hub verront leurs entrées dans modular_model_index.json mises à jour automatiquement lors de l'appel à save_pretrained().
  • Les objets ConfigMixin sans poids (par exemple, les planificateurs, les guides) peuvent être passés directement.

Xet Storage Details

Size:
14.7 kB
·
Xet hash:
d842b837753efdccee5235e242c4b1e1dae2d310b65ec8dcb85e2f3525c26e11

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