Buckets:

mishig's picture
|
download
raw
14.9 kB
# IP-Adapter
[IP-Adapter](https://hf.co/papers/2308.06721) 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.
> [!TIP]
> Apprenez à charger et à utiliser un point de contrôle et une image IP-Adapter dans le guide [IP-Adapter](../../using-diffusers/ip_adapter).
## IPAdapterMixin[[diffusers.loaders.IPAdapterMixin]]
#### diffusers.loaders.IPAdapterMixin[[diffusers.loaders.IPAdapterMixin]]
```python
diffusers.loaders.IPAdapterMixin()
```
[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L54)
Mixin pour la gestion des IP Adapters.
#### load_ip_adapter[[diffusers.loaders.IPAdapterMixin.load_ip_adapter]]
```python
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)
```
[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L57)
**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 : - 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 *répertoire* (par exemple `./my_model_directory`) contenant les poids du modèle enregistrés avec [ModelMixin.save_pretrained()](/docs/diffusers/v0.43.0/fr/api/models/overview#diffusers.ModelMixin.save_pretrained). - Un [dictionnaire d'état torch](https://pytorch.org/tutorials/beginner/saving_loading_models.html#what-is-a-state-dict).
subfolder (`str` ou `list[str]`) : 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`) : 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 locaux. 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 tente é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. Pris en charge uniquement 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[[diffusers.loaders.IPAdapterMixin.set_ip_adapter_scale]]
```python
set_ip_adapter_scale(scale)
```
[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L252)
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 :
```py
# 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[[diffusers.loaders.IPAdapterMixin.unload_ip_adapter]]
```python
unload_ip_adapter()
```
[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L305)
Décharge les poids de l'IP Adapter
Exemples :
```python
>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.unload_ip_adapter()
>>> ...
```
## SD3IPAdapterMixin[[diffusers.loaders.SD3IPAdapterMixin]]
#### diffusers.loaders.SD3IPAdapterMixin[[diffusers.loaders.SD3IPAdapterMixin]]
```python
diffusers.loaders.SD3IPAdapterMixin()
```
[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L885)
Mixin pour la gestion des IP Adapters de StableDiffusion 3.
#### is_ip_adapter_active[[diffusers.loaders.SD3IPAdapterMixin.is_ip_adapter_active]]
```python
is_ip_adapter_active()
```
[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L888)
**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[[diffusers.loaders.SD3IPAdapterMixin.load_ip_adapter]]
```python
load_ip_adapter(pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor], weight_name: str = 'ip-adapter.safetensors', subfolder: str | None = None, image_encoder_folder: str | None = 'image_encoder', **kwargs)
```
[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L906)
**Paramètres :**
pretrained_model_name_or_path_or_dict (`str` ou `os.PathLike` ou `dict`) : Peut être : - 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()](/docs/diffusers/v0.43.0/fr/api/models/overview#diffusers.ModelMixin.save_pretrained). - Un [dictionnaire d'état torch](https://pytorch.org/tutorials/beginner/saving_loading_models.html#what-is-a-state-dict).
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*) : 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`) : 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 locaux. 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 tente é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. Pris en charge uniquement 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[[diffusers.loaders.SD3IPAdapterMixin.set_ip_adapter_scale]]
```python
set_ip_adapter_scale(scale: float)
```
[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L1054)
**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 :
```python
>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.set_ip_adapter_scale(0.6)
>>> ...
```
#### unload_ip_adapter[[diffusers.loaders.SD3IPAdapterMixin.unload_ip_adapter]]
```python
unload_ip_adapter()
```
[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L1077)
Décharge les poids de l'IP Adapter.
Exemple :
```python
>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.unload_ip_adapter()
>>> ...
```
## IPAdapterMaskProcessor[[diffusers.IPAdapterMaskProcessor]]
#### diffusers.IPAdapterMaskProcessor[[diffusers.IPAdapterMaskProcessor]]
```python
diffusers.IPAdapterMaskProcessor(do_resize: bool = True, vae_scale_factor: int = 8, resample: str = 'lanczos', do_normalize: bool = False, do_binarize: bool = True, do_convert_grayscale: bool = True)
```
[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/image_processor.py#L1277)
**Paramètres :**
do_resize (`bool`, *facultatif*, valeur 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*, 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[[diffusers.IPAdapterMaskProcessor.downsample]]
```python
downsample(mask: Tensor, batch_size: int, num_queries: int, value_embed_dim: int)
```
[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/image_processor.py#L1318)
**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 dimensionnalité 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.

Xet Storage Details

Size:
14.9 kB
·
Xet hash:
97ed9b4bcb59d0143abd24197ed9b25400395ee97ac2a4ebb13a1376bd85d35f

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