Buckets:
| # PEFT | |
| Diffusers prend en charge le chargement d'adaptateurs tels que [LoRA](../../tutorials/using_peft_for_inference) avec la bibliothèque [PEFT](https://huggingface.co/docs/peft/index) grâce à la classe [PeftAdapterMixin](/docs/diffusers/main/fr/api/loaders/peft#diffusers.loaders.PeftAdapterMixin). Cela permet aux classes de modélisation de Diffusers comme [UNet2DConditionModel](/docs/diffusers/main/fr/api/models/unet2d-cond#diffusers.UNet2DConditionModel) et [SD3Transformer2DModel](/docs/diffusers/main/fr/api/models/sd3_transformer2d#diffusers.SD3Transformer2DModel) de fonctionner avec un adaptateur. | |
| > [!TIP] | |
| > Reportez-vous au tutoriel [Inference with PEFT](../../tutorials/using_peft_for_inference) pour un aperçu de l’utilisation de PEFT dans Diffusers pour l’inférence. | |
| ## PeftAdapterMixin[[diffusers.loaders.PeftAdapterMixin]] | |
| #### diffusers.loaders.PeftAdapterMixin[[diffusers.loaders.PeftAdapterMixin]] | |
| ```python | |
| diffusers.loaders.PeftAdapterMixin() | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L62) | |
| Une classe contenant toutes les fonctions pour charger et utiliser les poids des adaptateurs pris en charge par la bibliothèque PEFT. Pour plus de détails sur les adaptateurs et leur injection dans un modèle de base, consultez la [documentation](https://huggingface.co/docs/peft/index) de PEFT. | |
| Installez la dernière version de PEFT et utilisez ce mixin pour : | |
| - Attacher de nouveaux adaptateurs au modèle. | |
| - Attachez plusieurs adaptateurs et activez/désactivez-les de manière itérative. | |
| - Activer/désactiver tous les adaptateurs du modèle. | |
| - Obtenir la liste des adaptateurs actifs. | |
| #### active_adapters[[diffusers.loaders.PeftAdapterMixin.active_adapters]] | |
| ```python | |
| active_adapters() | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L652) | |
| Renvoie la liste actuelle des adaptateurs actifs du modèle. | |
| Si vous n'êtes pas familier avec les adaptateurs et les méthodes PEFT, nous vous invitons à en savoir plus sur eux dans la [documentation](https://huggingface.co/docs/peft) PEFT. | |
| #### add_adapter[[diffusers.loaders.PeftAdapterMixin.add_adapter]] | |
| ```python | |
| add_adapter(adapter_config, adapter_name: str = 'default') | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L518) | |
| **Paramètres :** | |
| adapter_config (`[~peft.PeftConfig]`) : la configuration de l'adaptateur à ajouter ; les adaptateurs pris en charge sont les méthodes de non-prefix tuning et de adaption prompt. | |
| adapter_name (`str`, *facultatif*, valeur par défaut `"default"`) : Le nom de l'adaptateur à ajouter. Si aucun nom n'est transmis, un nom par défaut est attribué à l'adaptateur. | |
| Ajoute un nouvel adaptateur au modèle actuel pour l'entraînement. Si aucun nom d'adaptateur n'est transmis, un nom par défaut est attribué à l'adaptateur afin de respecter la convention de la bibliothèque PEFT. | |
| Si vous n'êtes pas familier avec les adaptateurs et les méthodes PEFT, nous vous invitons à en savoir plus dans la [documentation](https://huggingface.co/docs/peft) PEFT. | |
| #### delete_adapters[[diffusers.loaders.PeftAdapterMixin.delete_adapters]] | |
| ```python | |
| delete_adapters(adapter_names: list[str] | str) | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L777) | |
| **Paramètres :** | |
| adapter_names (`list[str, str]`) : Les noms (chaîne unique ou liste de chaînes) de l'adaptateur à supprimer. | |
| Supprimer les couches LoRA d'un adaptateur du modèle sous-jacent. | |
| Exemple : | |
| ```py | |
| from diffusers import AutoPipelineForText2Image | |
| import torch | |
| pipeline = AutoPipelineForText2Image.from_pretrained( | |
| "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16 | |
| ).to("cuda") | |
| pipeline.load_lora_weights( | |
| "jbilcke-hf/sdxl-cinematic-1", weight_name="pytorch_lora_weights.safetensors", adapter_names="cinematic" | |
| ) | |
| pipeline.unet.delete_adapters("cinematic") | |
| ``` | |
| #### disable_adapters[[diffusers.loaders.PeftAdapterMixin.disable_adapters]] | |
| ```python | |
| disable_adapters() | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L607) | |
| Désactiver tous les adaptateurs attachés au modèle et revenir à l’inférence avec le modèle de base uniquement. | |
| Si vous n'êtes pas familier avec les adaptateurs et les méthodes PEFT, nous vous invitons à en savoir plus sur eux dans la [documentation](https://huggingface.co/docs/peft) PEFT. | |
| #### disable_lora[[diffusers.loaders.PeftAdapterMixin.disable_lora]] | |
| ```python | |
| disable_lora() | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L731) | |
| Désactive les couches LoRA actives du modèle sous-jacent. | |
| Exemple : | |
| ```py | |
| from diffusers import AutoPipelineForText2Image | |
| import torch | |
| pipeline = AutoPipelineForText2Image.from_pretrained( | |
| "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16 | |
| ).to("cuda") | |
| pipeline.load_lora_weights( | |
| "jbilcke-hf/sdxl-cinematic-1", weight_name="pytorch_lora_weights.safetensors", adapter_name="cinematic" | |
| ) | |
| pipeline.unet.disable_lora() | |
| ``` | |
| #### enable_adapters[[diffusers.loaders.PeftAdapterMixin.enable_adapters]] | |
| ```python | |
| enable_adapters() | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L629) | |
| Active les adaptateurs attachés au modèle. Le modèle utilise `self.active_adapters()` pour récupérer la liste des adaptateurs à activer. | |
| Si vous n'êtes pas familier avec les adaptateurs et les méthodes PEFT, nous vous invitons à en savoir plus sur eux dans la [documentation](https://huggingface.co/docs/peft) PEFT. | |
| #### enable_lora[[diffusers.loaders.PeftAdapterMixin.enable_lora]] | |
| ```python | |
| enable_lora() | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L754) | |
| Active les couches LoRA actives du modèle sous-jacent. | |
| Exemple : | |
| ```py | |
| from diffusers import AutoPipelineForText2Image | |
| import torch | |
| pipeline = AutoPipelineForText2Image.from_pretrained( | |
| "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16 | |
| ).to("cuda") | |
| pipeline.load_lora_weights( | |
| "jbilcke-hf/sdxl-cinematic-1", weight_name="pytorch_lora_weights.safetensors", adapter_name="cinematic" | |
| ) | |
| pipeline.unet.enable_lora() | |
| ``` | |
| #### enable_lora_hotswap[[diffusers.loaders.PeftAdapterMixin.enable_lora_hotswap]] | |
| ```python | |
| enable_lora_hotswap(target_rank: int = 128, check_compiled: typing.Literal['error', 'warn', 'ignore'] = 'error') | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L815) | |
| **Paramètres :** | |
| target_rank (`int`, *facultatif*, valeur par défaut `128`) : Le rang le plus élevé parmi tous les adaptateurs qui seront chargés. | |
| check_compiled (`str`, *facultatif*, par défaut `"error"`) : Comment gérer le cas où le modèle est déjà compilé, ce qui devrait généralement être évité. Les options sont : - "error" (par défaut) : lever une erreur - "warn" : émettre un avertissement - "ignore" : ne rien faire | |
| Permet de remplacer à chaud les adaptateurs LoRA. | |
| L'appel de cette méthode n'est requis que lors du remplacement à chaud des adaptateurs et si le modèle est compilé ou si les rangs des adaptateurs chargés diffèrent. | |
| #### load_lora_adapter[[diffusers.loaders.PeftAdapterMixin.load_lora_adapter]] | |
| ```python | |
| load_lora_adapter(pretrained_model_name_or_path_or_dict, prefix = 'transformer', hotswap: bool = False, **kwargs) | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L85) | |
| **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/main/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). | |
| prefix (`str`, *facultatif*) : Préfixe pour filtrer le dictionnaire d'état. | |
| 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. | |
| subfolder (`str`, *facultatif*, valeur par défaut `""`) : Emplacement du sous-dossier du fichier de modèle au sein d'un dépôt de modèle plus large sur le Hub ou en local. | |
| network_alphas (`dict[str, float]`) : La valeur de l'alpha du réseau utilisée pour un apprentissage stable et la prévention du sous-débordement. Cette valeur a la même signification que l'option `--network_alpha` du script d'entraînement kohya-ss. Consultez [ce lien](https://github.com/darkstorm2150/sd-scripts/blob/main/docs/train_network_README-en.md#execute-learning). | |
| low_cpu_mem_usage (`bool`, *facultatif*) : Accélère le chargement du modèle en ne chargeant que les poids LoRA préentraînés et sans initialiser les poids aléatoires. | |
| hotswap : (`bool`, *facultatif*) La valeur par défaut est `False`. Indique s'il faut substituer un adaptateur existant (LoRA) par l'adaptateur nouvellement chargé, sur place. Cela signifie que, au lieu de charger un adaptateur supplémentaire, les poids de l'adaptateur existant seront remplacés par ceux du nouvel adaptateur. Cette approche peut être plus rapide et plus efficace en termes de mémoire. Cependant, l'avantage principal du hotswapping est que, lorsque le modèle est compilé avec torch.compile, le chargement du nouvel adaptateur ne nécessite pas de recompiler le modèle. Lors de l'utilisation du hotswapping, le `adapter_name` transmis doit être le nom d'un adaptateur déjà chargé. Si le nouvel adaptateur et l'ancien adaptateur ont des rangs et/ou des alphas LoRA (c'est-à-dire des échelles) différents, vous devez appeler une méthode supplémentaire avant de charger l'adaptateur : ```py pipeline = ... # load diffusers pipeline max_rank = ... # the highest rank among all LoRAs that you want to load # call *before* compiling and loading the LoRA adapter pipeline.enable_lora_hotswap(target_rank=max_rank) pipeline.load_lora_weights(file_name) # optionally compile the model now ``` Notez que le hotswapping des adaptateurs de l'encodeur de texte n'est pas encore pris en charge. Cette technique comporte d'autres limitations, documentées ici : https://huggingface.co/docs/peft/main/en/package_reference/hotswap | |
| metadata : métadonnées de l'adaptateur LoRA. Si elles sont fournies, les métadonnées déduites à partir du dictionnaire d'état ne sont pas utilisées pour initialiser `LoraConfig`. | |
| Charge un adaptateur LoRA dans le modèle sous-jacent. | |
| #### save_lora_adapter[[diffusers.loaders.PeftAdapterMixin.save_lora_adapter]] | |
| ```python | |
| save_lora_adapter(save_directory, adapter_name: str = 'default', upcast_before_saving: bool = False, safe_serialization: bool = True, weight_name: str | None = None) | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L394) | |
| **Paramètres :** | |
| save_directory (`str` ou `os.PathLike`) : Répertoire où enregistrer les paramètres LoRA. Sera créé s'il n'existe pas. | |
| adapter_name : (`str`, par défaut "default") : Le nom de l'adaptateur à sérialiser. Utile lorsque le modèle sous-jacent a plusieurs adaptateurs chargés. | |
| upcast_before_saving (`bool`, par défaut `False`) : Indique s'il faut convertir le modèle sous-jacent en `torch.float32` avant la sérialisation. | |
| 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`. | |
| weight_name : (`str`, *facultatif*, par défaut `None`) : Nom du fichier avec lequel sérialiser le state dict. | |
| Enregistrez les paramètres LoRA correspondant au modèle sous-jacent. | |
| #### set_adapter[[diffusers.loaders.PeftAdapterMixin.set_adapter]] | |
| ```python | |
| set_adapter(adapter_name: str | list[str]) | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L558) | |
| **Paramètres :** | |
| adapter_name (str | list[str])) : La liste des adaptateurs à définir ou le nom de l'adaptateur dans le cas d'un adaptateur unique. | |
| Définit un adaptateur spécifique en forçant le modèle à n'utiliser que cet adaptateur et en désactivant les autres adaptateurs. | |
| Si vous n'êtes pas familier avec les adaptateurs et les méthodes PEFT, nous vous invitons à en savoir plus sur eux dans la [documentation](https://huggingface.co/docs/peft) PEFT. | |
| #### set_adapters[[diffusers.loaders.PeftAdapterMixin.set_adapters]] | |
| ```python | |
| set_adapters(adapter_names: list[str] | str, weights: float | dict | list[float] | list[dict] | list[None] | None = None) | |
| ``` | |
| [Source](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L462) | |
| **Paramètres :** | |
| adapter_names (`list[str]` ou `str`) : Les noms des adaptateurs à utiliser. | |
| weights (`Union[List[float], float]`, *facultatif*) : Les poids de l'adaptateur (ou des adaptateurs) à utiliser avec le UNet. Si `None`, les poids sont définis à `1.0` pour tous les adaptateurs. | |
| Définir les adaptateurs actuellement actifs pour leur utilisation dans le réseau de diffusion (par exemple, unet, transformer, etc.). | |
| Exemple : | |
| ```py | |
| from diffusers import AutoPipelineForText2Image | |
| import torch | |
| pipeline = AutoPipelineForText2Image.from_pretrained( | |
| "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16 | |
| ).to("cuda") | |
| pipeline.load_lora_weights( | |
| "jbilcke-hf/sdxl-cinematic-1", weight_name="pytorch_lora_weights.safetensors", adapter_name="cinematic" | |
| ) | |
| pipeline.load_lora_weights("nerijs/pixel-art-xl", weight_name="pixel-art-xl.safetensors", adapter_name="pixel") | |
| pipeline.unet.set_adapters(["cinematic", "pixel"], weights=[0.5, 0.5]) | |
| ``` | |
Xet Storage Details
- Size:
- 15.3 kB
- Xet hash:
- d3d20c0caeb8c8f3cde2a8a4729a4d932579ff3ad8374b1ab0bdad4f9c74260f
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.