Buckets:
| # PEFT | |
| Diffusers admite la carga de adaptadores como [LoRA](../../tutorials/using_peft_for_inference) con la biblioteca [PEFT](https://huggingface.co/docs/peft/index) mediante la clase [PeftAdapterMixin](/docs/diffusers/main/es/api/loaders/peft#diffusers.loaders.PeftAdapterMixin). Esto permite que las clases de modelado de Diffusers, como [UNet2DConditionModel](/docs/diffusers/main/es/api/models/unet2d-cond#diffusers.UNet2DConditionModel) y [SD3Transformer2DModel](/docs/diffusers/main/es/api/models/sd3_transformer2d#diffusers.SD3Transformer2DModel), funcionen con un adaptador. | |
| > [!TIP] | |
| > Consulte el tutorial [Inference with PEFT](../../tutorials/using_peft_for_inference) para obtener una visión general de cómo usar PEFT en Diffusers para inferencia. | |
| ## PeftAdapterMixin[[diffusers.loaders.PeftAdapterMixin]] | |
| #### diffusers.loaders.PeftAdapterMixin[[diffusers.loaders.PeftAdapterMixin]] | |
| ```python | |
| diffusers.loaders.PeftAdapterMixin() | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L62) | |
| Una clase que contiene todas las funciones para cargar y usar pesos de adaptadores compatibles con la biblioteca PEFT. Para más detalles sobre los adaptadores y su inyección en un modelo base, consulte la [documentación](https://huggingface.co/docs/peft/index) de PEFT. | |
| Instale la última versión de PEFT y use este mixin para: | |
| - Adjuntar nuevos adaptadores en el modelo. | |
| - Adjunte varios adaptadores y actívelos/desactívelos de forma iterativa. | |
| - Activar/desactivar todos los adaptadores del modelo. | |
| - Obtén una lista de los adaptadores activos. | |
| #### active_adapters[[diffusers.loaders.PeftAdapterMixin.active_adapters]] | |
| ```python | |
| active_adapters() | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L652) | |
| Obtiene la lista actual de adaptadores activos del modelo. | |
| Si no está familiarizado con los adaptadores y los métodos PEFT, le invitamos a leer más sobre ellos en la [documentación](https://huggingface.co/docs/peft) de PEFT. | |
| #### add_adapter[[diffusers.loaders.PeftAdapterMixin.add_adapter]] | |
| ```python | |
| add_adapter(adapter_config, adapter_name: str = 'default') | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L518) | |
| **Parámetros:** | |
| adapter_config (`[~peft.PeftConfig]`) : La configuración del adaptador a añadir; los adaptadores admitidos son los métodos de non-prefix tuning y adaption prompt. | |
| adapter_name (`str`, *opcional*, valor predeterminado `"default"`) : El nombre del adaptador que se va a añadir. Si no se pasa ningún nombre, se asigna un nombre predeterminado al adaptador. | |
| Añade un nuevo adaptador al modelo actual para el entrenamiento. Si no se pasa un nombre de adaptador, se asigna un nombre predeterminado al adaptador para seguir la convención de la biblioteca PEFT. | |
| Si no está familiarizado con los adaptadores y los métodos PEFT, le invitamos a leer más sobre ellos en la [documentación](https://huggingface.co/docs/peft) de PEFT. | |
| #### delete_adapters[[diffusers.loaders.PeftAdapterMixin.delete_adapters]] | |
| ```python | |
| delete_adapters(adapter_names: list[str] | str) | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L777) | |
| **Parámetros:** | |
| adapter_names (`list[str, str]`) : Los nombres (cadena única o lista de cadenas) del adaptador que se va a eliminar. | |
| Eliminar las capas LoRA de un adaptador del modelo subyacente. | |
| Ejemplo: | |
| ```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() | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L607) | |
| Desactive todos los adaptadores adjuntos al modelo y vuelva a la inferencia con solo el modelo base. | |
| Si no está familiarizado con los adaptadores y los métodos PEFT, le invitamos a leer más sobre ellos en la [documentación](https://huggingface.co/docs/peft) de PEFT. | |
| #### disable_lora[[diffusers.loaders.PeftAdapterMixin.disable_lora]] | |
| ```python | |
| disable_lora() | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L731) | |
| Desactiva las capas LoRA activas del modelo subyacente. | |
| Ejemplo: | |
| ```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() | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L629) | |
| Habilita los adaptadores que están unidos al modelo. El modelo utiliza `self.active_adapters()` para obtener la lista de adaptadores que se habilitarán. | |
| Si no está familiarizado con los adaptadores y los métodos PEFT, le invitamos a leer más sobre ellos en la [documentación](https://huggingface.co/docs/peft) de PEFT. | |
| #### enable_lora[[diffusers.loaders.PeftAdapterMixin.enable_lora]] | |
| ```python | |
| enable_lora() | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L754) | |
| Habilita las capas LoRA activas del modelo subyacente. | |
| Ejemplo: | |
| ```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') | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L815) | |
| **Parámetros:** | |
| target_rank (`int`, *opcional*, valor predeterminado `128`) : El rango más alto entre todos los adaptadores que se cargarán. | |
| check_compiled (`str`, *opcional*, por defecto `"error"`) : Cómo manejar el caso en que el modelo ya está compilado, lo cual generalmente debe evitarse. Las opciones son: - "error" (por defecto): lanzar un error - "warn": emitir una advertencia - "ignore": no hacer nada | |
| Permite la posibilidad de intercambiar adaptadores LoRA en caliente. | |
| La llamada a este método solo es necesaria al intercambiar adaptadores en caliente y si el modelo está compilado o si los rangos de los adaptadores cargados difieren. | |
| #### 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) | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L85) | |
| **Parámetros:** | |
| pretrained_model_name_or_path_or_dict (`str` o `os.PathLike` o `dict`) : Puede ser: - Una cadena, el *model id* (por ejemplo `google/ddpm-celebahq-256`) de un modelo preentrenado alojado en el Hub. - Una ruta a un *directorio* (por ejemplo `./my_model_directory`) que contiene los pesos del modelo guardados con [ModelMixin.save_pretrained()](/docs/diffusers/main/es/api/models/overview#diffusers.ModelMixin.save_pretrained). - Un [torch state dict](https://pytorch.org/tutorials/beginner/saving_loading_models.html#what-is-a-state-dict). | |
| prefix (`str`, *opcional*) : Prefijo para filtrar el state dict. | |
| cache_dir (`str | os.PathLike`, *opcional*) : Ruta a un directorio donde se almacena en caché la configuración de un modelo preentrenado descargado si no se utiliza la caché estándar. | |
| force_download (`bool`, *opcional*, valor predeterminado `False`) : Indica si se debe forzar la (re)descarga de los pesos del modelo y los archivos de configuración, reemplazando las versiones en caché si existen. | |
| proxies (`dict[str, str]`, *opcional*) : Un diccionario de servidores proxy a utilizar por protocolo o punto de acceso, por ejemplo, `{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}`. Los proxies se utilizan en cada solicitud. | |
| local_files_only (`bool`, *opcional*, valor predeterminado `False`) : Indica si se deben cargar únicamente los pesos y archivos de configuración del modelo localmente. Si se establece en `True`, el modelo no se descargará desde el Hub. | |
| token (`str` o *bool*, *opcional*) : El token que se usará como autorización HTTP bearer para archivos remotos. Si es `True`, se utiliza el token generado por `diffusers-cli login` (almacenado en `~/.huggingface`). | |
| revision (`str`, *opcional*, valor predeterminado `"main"`) : La versión específica del modelo que se va a utilizar. Puede ser el nombre de una rama, el nombre de una etiqueta, un id de commit o cualquier identificador permitido por Git. | |
| subfolder (`str`, *opcional*, valor predeterminado `""`) : La ubicación de la subcarpeta de un archivo de modelo dentro de un repositorio de modelos más grande en el Hub o localmente. | |
| network_alphas (`dict[str, float]`) : El valor de la alfa de la red utilizado para un aprendizaje estable y para evitar el subdesbordamiento. Este valor tiene el mismo significado que la opción `--network_alpha` en el script de entrenamiento de kohya-ss. Consulte [este enlace](https://github.com/darkstorm2150/sd-scripts/blob/main/docs/train_network_README-en.md#execute-learning). | |
| low_cpu_mem_usage (`bool`, *opcional*) : Acelera la carga del modelo cargando solo los pesos LoRA preentrenados y no inicializando los pesos aleatorios. | |
| hotswap : (`bool`, *opcional*) El valor predeterminado es `False`. Indica si se debe sustituir un adaptador (LoRA) existente por el adaptador recién cargado in situ. Esto significa que, en lugar de cargar un adaptador adicional, se tomarán los pesos del adaptador existente y se reemplazarán con los pesos del nuevo adaptador. Esto puede ser más rápido y eficiente en memoria. Sin embargo, la principal ventaja del hotswapping es que, cuando el modelo se compila con torch.compile, la carga del nuevo adaptador no requiere la recompilación del modelo. Al usar hotswapping, el `adapter_name` pasado debe ser el nombre de un adaptador ya cargado. Si el nuevo adaptador y el antiguo tienen rangos y/o alfas de LoRA (es decir, escalado) diferentes, es necesario llamar a un método adicional antes de cargar el adaptador: ```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 ``` Tenga en cuenta que el hotswapping de adaptadores del codificador de texto aún no está soportado. Existen algunas limitaciones adicionales a esta técnica, que están documentadas aquí: https://huggingface.co/docs/peft/main/en/package_reference/hotswap | |
| metadata : Metadatos del adaptador LoRA. Cuando se proporcionan, los metadatos inferidos a través del state dict no se utilizan para inicializar `LoraConfig`. | |
| Carga un adaptador LoRA en el modelo subyacente. | |
| #### 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) | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L394) | |
| **Parámetros:** | |
| save_directory (`str` o `os.PathLike`) : Directorio para guardar los parámetros de LoRA. Se creará si no existe. | |
| adapter_name : (`str`, por defecto "default"): El nombre del adaptador que se va a serializar. Útil cuando el modelo subyacente tiene varios adaptadores cargados. | |
| upcast_before_saving (`bool`, por defecto `False`) : Si se debe convertir el modelo subyacente a `torch.float32` antes de la serialización. | |
| safe_serialization (`bool`, *opcional*, por defecto `True`) : Si se guarda el modelo usando `safetensors` o de la forma tradicional de PyTorch con `pickle`. | |
| weight_name : (`str`, *opcional*, valor predeterminado `None`): Nombre del archivo con el que serializar el state dict. | |
| Guarde los parámetros de LoRA correspondientes al modelo subyacente. | |
| #### set_adapter[[diffusers.loaders.PeftAdapterMixin.set_adapter]] | |
| ```python | |
| set_adapter(adapter_name: str | list[str]) | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L558) | |
| **Parámetros:** | |
| adapter_name (str | list[str])) : La lista de adaptadores a establecer o el nombre del adaptador en el caso de un solo adaptador. | |
| Establece un adaptador específico forzando al modelo a usar solo ese adaptador y desactivando los demás. | |
| Si no está familiarizado con los adaptadores y los métodos PEFT, le invitamos a leer más sobre ellos en la [documentación](https://huggingface.co/docs/peft) de 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) | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/peft.py#L462) | |
| **Parámetros:** | |
| adapter_names (`list[str]` o `str`) : Los nombres de los adaptadores a utilizar. | |
| weights (`Union[List[float], float]`, *opcional*) : Los pesos del adaptador o adaptadores a utilizar con el UNet. Si es `None`, los pesos se establecen en `1.0` para todos los adaptadores. | |
| Establece los adaptadores actualmente activos para su uso en la red de difusión (p. ej., unet, transformer, etc.). | |
| Ejemplo: | |
| ```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:
- 14.8 kB
- Xet hash:
- bb57c98d5181c057aa985dd5393a16d39eef314596b9c6e12e55eeeeb7328539
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.