Diffusers documentation

IP-Adapter

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

IP-Adapter

IP-Adapter est un adaptateur léger qui permet d’interagir avec un modèle de diffusion à l’aide d’une image. Cette méthode découple les couches d’attention croisée des caractéristiques de l’image et du texte. Les caractéristiques de l’image sont générées par un encodeur d’image.

Apprenez à charger et à utiliser un point de contrôle et une image IP-Adapter dans le guide IP-Adapter.

IPAdapterMixin

classe diffusers.loaders.IPAdapterMixin

< >

( )

Mixin pour la gestion des IP Adapters.

load_ip_adapter

< >

( pretrained_model_name_or_path_or_dict: str | list[str] | dict[str, torch.Tensor]subfolder: str | list[str]weight_name: str | list[str]image_encoder_folder: str | None = 'image_encoder'**kwargs )

Paramètres

  • pretrained_model_name_or_path_or_dict (str ou list[str] ou os.PathLike ou list[os.PathLike] ou dict ou list[dict]) — Peut être l'un des éléments suivants :
    • Une chaîne de caractères, l'identifiant du modèle (par exemple google/ddpm-celebahq-256) d'un modèle pré-entraîné hébergé sur le Hub.
    • Un chemin vers un dossier (par exemple ./my_model_directory) contenant les poids du modèle enregistrés avec ModelMixin.save_pretrained().
    • Un dictionnaire d'état torch.
  • subfolder (str ou list[str]) — L’emplacement du sous-dossier d’un fichier de modèle au sein d’un dépôt de modèle plus large sur le Hub ou en local. Si une liste est transmise, elle doit avoir la même longueur que weight_name.
  • weight_name (str ou list[str]) — Le nom du fichier de poids à charger. Si une liste est passée, elle doit avoir la même longueur que subfolder.
  • image_encoder_folder (str, facultatif, par défaut image_encoder) — L’emplacement du sous-dossier de l’encodeur d’images au sein d’un dépôt de modèle plus large sur le Hub ou en local. Passez None pour ne pas charger l’encodeur d’images. Si l’encodeur d’images se trouve dans un dossier à l’intérieur de subfolder, il suffit de passer le nom du dossier contenant les poids de l’encodeur d’images, par exemple image_encoder_folder="image_encoder". Si l’encodeur d’images se trouve dans un dossier autre que subfolder, vous devez passer le chemin du dossier contenant les poids de l’encodeur d’images, par exemple image_encoder_folder="different_subfolder/image_encoder".
  • cache_dir (str | os.PathLike, facultatif) — Chemin vers un répertoire où la configuration d'un modèle pré-entraîné téléchargé est mise en cache si le cache standard n'est pas utilisé.
  • force_download (bool, facultatif, par défaut False) — Indique s'il faut forcer le (re)téléchargement des poids du modèle et des fichiers de configuration, en ignorant les versions mises en cache si elles existent.
  • proxies (dict[str, str], facultatif) — Un dictionnaire de serveurs proxy à utiliser par protocole ou point de terminaison, par exemple, {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Les proxys sont utilisés pour chaque requête.
  • local_files_only (bool, facultatif, par défaut False) — Indique s'il faut charger uniquement les poids et les fichiers de configuration du modèle en local. Si défini sur True, le modèle ne sera pas téléchargé depuis le Hub.
  • token (str ou bool, facultatif) — Le jeton à utiliser comme autorisation bearer HTTP pour les fichiers distants. Si True, le jeton généré par diffusers-cli login (stocké dans ~/.huggingface) est utilisé.
  • revision (str, facultatif, par défaut "main") — La version spécifique du modèle à utiliser. Il peut s’agir d’un nom de branche, d’un nom de tag, d’un identifiant de commit ou de tout identifiant autorisé par Git.
  • low_cpu_mem_usage (bool, facultatif, par défaut True si la version de torch est >= 1.9.0, sinon False) — Accélère le chargement du modèle en ne chargeant que les poids pré-entraînés et sans initialiser les poids. Cela permet également de ne pas utiliser plus de 1 fois la taille du modèle en mémoire CPU (y compris la mémoire de pointe) lors du chargement du modèle. Uniquement pris en charge pour PyTorch >= 1.9.0. Si vous utilisez une version plus ancienne de PyTorch, définir cet argument sur True déclenchera une erreur.

set_ip_adapter_scale

< >

( scale )

Set IP-Adapter scales per-transformer block. L'entrée scale peut être une configuration unique ou une liste de configurations pour un contrôle granulaire de chaque comportement IP-Adapter. Une configuration peut être un float ou un dictionnaire.

Exemple :

# To use original IP-Adapter
scale = 1.0
pipeline.set_ip_adapter_scale(scale)

# To use style block only
scale = {
    "up": {"block_0": [0.0, 1.0, 0.0]},
}
pipeline.set_ip_adapter_scale(scale)

# To use style+layout blocks
scale = {
    "down": {"block_2": [0.0, 1.0]},
    "up": {"block_0": [0.0, 1.0, 0.0]},
}
pipeline.set_ip_adapter_scale(scale)

# To use style and layout from 2 reference images
scales = [{"down": {"block_2": [0.0, 1.0]}}, {"up": {"block_0": [0.0, 1.0, 0.0]}}]
pipeline.set_ip_adapter_scale(scales)

unload_ip_adapter

< >

( )

Décharge les poids de l'IP Adapter

Exemples :

>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.unload_ip_adapter()
>>> ...

SD3IPAdapterMixin

classe diffusers.loaders.SD3IPAdapterMixin

< >

( )

Mixin pour la gestion des IP Adapters de StableDiffusion 3.

is_ip_adapter_active

< >

( ) → bool

Retourne

bool

Vrai lorsque IP-Adapter est chargé et qu'au moins une couche a une échelle > 0.

Vérifie si IP-Adapter est chargé et si scale > 0.

L'échelle de l'IP-Adapter contrôle l'influence du prompt image par rapport au prompt texte. Lorsque cette valeur est définie sur 0, le contexte de l'image est sans importance.

load_ip_adapter

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]weight_name: str = 'ip-adapter.safetensors'subfolder: str | None = Noneimage_encoder_folder: str | None = 'image_encoder'**kwargs )

Paramètres

  • pretrained_model_name_or_path_or_dict (str ou os.PathLike ou dict) — Peut être l'un des éléments suivants :
    • Une chaîne de caractères, l'identifiant du modèle (par exemple google/ddpm-celebahq-256) d'un modèle pré-entraîné hébergé sur le Hub.
    • Un chemin vers un dossier (par exemple ./my_model_directory) contenant les poids du modèle enregistrés avec ModelMixin.save_pretrained().
    • Un dictionnaire d'état torch.
  • weight_name (str, par défaut “ip-adapter.safetensors”) — Le nom du fichier de poids à charger. Si une liste est transmise, elle doit avoir la même longueur que subfolder.
  • subfolder (str, facultatif) — L’emplacement du sous-dossier d’un fichier de modèle au sein d’un dépôt de modèle plus large sur le Hub ou en local. Si une liste est transmise, elle doit avoir la même longueur que weight_name.
  • image_encoder_folder (str, facultatif, par défaut image_encoder) — L’emplacement du sous-dossier de l’encodeur d’images au sein d’un dépôt de modèle plus large sur le Hub ou en local. Passez None pour ne pas charger l’encodeur d’images. Si l’encodeur d’images se trouve dans un dossier à l’intérieur de subfolder, il suffit de passer le nom du dossier contenant les poids de l’encodeur d’images, par exemple image_encoder_folder="image_encoder". Si l’encodeur d’images se trouve dans un dossier autre que subfolder, vous devez passer le chemin du dossier contenant les poids de l’encodeur d’images, par exemple image_encoder_folder="different_subfolder/image_encoder".
  • cache_dir (str | os.PathLike, facultatif) — Chemin vers un répertoire où la configuration d'un modèle pré-entraîné téléchargé est mise en cache si le cache standard n'est pas utilisé.
  • force_download (bool, facultatif, par défaut False) — Indique s'il faut forcer le (re)téléchargement des poids du modèle et des fichiers de configuration, en ignorant les versions mises en cache si elles existent.
  • proxies (dict[str, str], facultatif) — Un dictionnaire de serveurs proxy à utiliser par protocole ou point de terminaison, par exemple, {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Les proxys sont utilisés pour chaque requête.
  • local_files_only (bool, facultatif, par défaut False) — Indique s'il faut charger uniquement les poids et les fichiers de configuration du modèle en local. Si défini sur True, le modèle ne sera pas téléchargé depuis le Hub.
  • token (str ou bool, facultatif) — Le jeton à utiliser comme autorisation bearer HTTP pour les fichiers distants. Si True, le jeton généré par diffusers-cli login (stocké dans ~/.huggingface) est utilisé.
  • revision (str, facultatif, par défaut "main") — La version spécifique du modèle à utiliser. Il peut s’agir d’un nom de branche, d’un nom de tag, d’un identifiant de commit ou de tout identifiant autorisé par Git.
  • low_cpu_mem_usage (bool, facultatif, par défaut True si la version de torch est >= 1.9.0, sinon False) — Accélère le chargement du modèle en ne chargeant que les poids pré-entraînés et sans initialiser les poids. Cela permet également de ne pas utiliser plus de 1 fois la taille du modèle en mémoire CPU (y compris la mémoire de pointe) lors du chargement du modèle. Uniquement pris en charge pour PyTorch >= 1.9.0. Si vous utilisez une version plus ancienne de PyTorch, définir cet argument sur True déclenchera une erreur.

set_ip_adapter_scale

< >

( scale: float )

Paramètres

  • scale (float) — Échelle de l'IP-Adapter à définir.

Définissez l'échelle de l'IP-Adapter, qui contrôle le conditionnement par l'invite d'image. Une valeur de 1,0 signifie que le modèle est uniquement conditionné par l'invite d'image, et 0,0 uniquement par l'invite de texte. Diminuer cette valeur encourage le modèle à produire des images plus variées, mais elles peuvent être moins alignées avec l'invite d'image.

Exemple :

>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.set_ip_adapter_scale(0.6)
>>> ...

unload_ip_adapter

< >

( )

Décharge les poids de l'IP Adapter.

Exemple :

>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.unload_ip_adapter()
>>> ...

IPAdapterMaskProcessor

classe diffusers.IPAdapterMaskProcessor

< >

( do_resize: bool = Truevae_scale_factor: int = 8resample: str = 'lanczos'do_normalize: bool = Falsedo_binarize: bool = Truedo_convert_grayscale: bool = True )

Paramètres

  • do_resize (bool, facultatif, par défaut True) — Indique s'il faut réduire les dimensions (hauteur, largeur) de l'image à des multiples de vae_scale_factor.
  • vae_scale_factor (int, facultatif, valeur par défaut 8) — Facteur d'échelle du VAE. Si do_resize est True, l'image est redimensionnée automatiquement en multiples de ce facteur.
  • resample (str, facultatif, par défaut lanczos) — Filtre de rééchantillonnage à utiliser lors du redimensionnement de l'image.
  • do_normalize (bool, facultatif, valeur par défaut False) — Indique s'il faut normaliser l'image dans l'intervalle [-1,1].
  • do_binarize (bool, facultatif, par défaut True) — Indique s'il faut binariser l'image en 0/1.
  • do_convert_grayscale (bool, facultatif, valeur par défaut True) — Indique s'il faut convertir les images au format niveaux de gris.

Processeur d'images pour les masques d'images IP Adapter.

downsample

< >

( mask: Tensorbatch_size: intnum_queries: intvalue_embed_dim: int ) → torch.Tensor

Paramètres

  • mask (torch.Tensor) — Le tenseur de masque d'entrée généré avec IPAdapterMaskProcessor.preprocess().
  • batch_size (int) — La taille du lot.
  • num_queries (int) — Le nombre de requêtes.
  • value_embed_dim (int) — La dimension des embeddings de valeur.

Retourne

torch.Tensor

Le tenseur de masque sous-échantillonné.

Effectue un sous-échantillonnage du tenseur de masque fourni afin de correspondre aux dimensions attendues pour l'attention à produit scalaire mis à l'échelle. Si le rapport d'aspect du masque ne correspond pas au rapport d'aspect de l'image de sortie, un avertissement est émis.

Update on GitHub