Diffusers documentation
IP-Adapter
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
Mixin pour la gestion des IP Adapters.
load_ip_adapter
< source >( 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 (
stroulist[str]ouos.PathLikeoulist[os.PathLike]oudictoulist[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.
- Une chaîne de caractères, l'identifiant du modèle (par exemple
- subfolder (
stroulist[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 queweight_name. - weight_name (
stroulist[str]) — Le nom du fichier de poids à charger. Si une liste est passée, elle doit avoir la même longueur quesubfolder. - image_encoder_folder (
str, facultatif, par défautimage_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. PassezNonepour ne pas charger l’encodeur d’images. Si l’encodeur d’images se trouve dans un dossier à l’intérieur desubfolder, il suffit de passer le nom du dossier contenant les poids de l’encodeur d’images, par exempleimage_encoder_folder="image_encoder". Si l’encodeur d’images se trouve dans un dossier autre quesubfolder, vous devez passer le chemin du dossier contenant les poids de l’encodeur d’images, par exempleimage_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éfautFalse) — 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éfautFalse) — Indique s'il faut charger uniquement les poids et les fichiers de configuration du modèle en local. Si défini surTrue, le modèle ne sera pas téléchargé depuis le Hub. - token (
strou bool, facultatif) — Le jeton à utiliser comme autorisation bearer HTTP pour les fichiers distants. SiTrue, le jeton généré pardiffusers-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éfautTruesi la version de torch est >= 1.9.0, sinonFalse) — 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 surTruedéclenchera une erreur.
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)Décharge les poids de l'IP Adapter
SD3IPAdapterMixin
Mixin pour la gestion des IP Adapters de StableDiffusion 3.
is_ip_adapter_active
< source >( ) → 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
< source >( 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 (
strouos.PathLikeoudict) — 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.
- Une chaîne de caractères, l'identifiant du modèle (par exemple
- 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 quesubfolder. - 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 queweight_name. - image_encoder_folder (
str, facultatif, par défautimage_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. PassezNonepour ne pas charger l’encodeur d’images. Si l’encodeur d’images se trouve dans un dossier à l’intérieur desubfolder, il suffit de passer le nom du dossier contenant les poids de l’encodeur d’images, par exempleimage_encoder_folder="image_encoder". Si l’encodeur d’images se trouve dans un dossier autre quesubfolder, vous devez passer le chemin du dossier contenant les poids de l’encodeur d’images, par exempleimage_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éfautFalse) — 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éfautFalse) — Indique s'il faut charger uniquement les poids et les fichiers de configuration du modèle en local. Si défini surTrue, le modèle ne sera pas téléchargé depuis le Hub. - token (
strou bool, facultatif) — Le jeton à utiliser comme autorisation bearer HTTP pour les fichiers distants. SiTrue, le jeton généré pardiffusers-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éfautTruesi la version de torch est >= 1.9.0, sinonFalse) — 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 surTruedéclenchera une erreur.
set_ip_adapter_scale
< source >( scale: float )
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.
Décharge les poids de l'IP Adapter.
IPAdapterMaskProcessor
classe diffusers.IPAdapterMaskProcessor
< source >( 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éfautTrue) — Indique s'il faut réduire les dimensions (hauteur, largeur) de l'image à des multiples devae_scale_factor. - vae_scale_factor (
int, facultatif, valeur par défaut8) — Facteur d'échelle du VAE. Sido_resizeestTrue, l'image est redimensionnée automatiquement en multiples de ce facteur. - resample (
str, facultatif, par défautlanczos) — Filtre de rééchantillonnage à utiliser lors du redimensionnement de l'image. - do_normalize (
bool, facultatif, valeur par défautFalse) — Indique s'il faut normaliser l'image dans l'intervalle [-1,1]. - do_binarize (
bool, facultatif, par défautTrue) — Indique s'il faut binariser l'image en 0/1. - do_convert_grayscale (
bool, facultatif, valeur par défautTrue) — Indique s'il faut convertir les images au format niveaux de gris.
Processeur d'images pour les masques d'images IP Adapter.
downsample
< source >( 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é avecIPAdapterMaskProcessor.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.