Buckets:
UNet
Algunos métodos de entrenamiento, como LoRA y Custom Diffusion, suelen dirigirse a las capas de atención del UNet, pero estos métodos también pueden dirigirse a otras capas que no son de atención. En lugar de entrenar todos los parámetros de un modelo, solo se entrena un subconjunto de parámetros, lo cual es más rápido y eficiente. Esta clase es útil si solo estás cargando pesos en un UNet. Si necesitas cargar pesos en el codificador de texto o en un codificador de texto y un UNet, intenta usar la función load_lora_weights() en su lugar.
La clase UNet2DConditionLoadersMixin proporciona funciones para cargar y guardar pesos, fusionar y desfusionar LoRAs, desactivar y activar LoRAs, y establecer y eliminar adaptadores.
Para obtener más información sobre cómo cargar los pesos de LoRA, consulte la guía de LoRA.
UNet2DConditionLoadersMixin[[diffusers.loaders.UNet2DConditionLoadersMixin]]
diffusers.loaders.UNet2DConditionLoadersMixin[[diffusers.loaders.UNet2DConditionLoadersMixin]]
diffusers.loaders.UNet2DConditionLoadersMixin()
Carga las capas LoRA en un UNet2DCondtionModel.
load_attn_procs[[diffusers.loaders.UNet2DConditionLoadersMixin.load_attn_procs]]
load_attn_procs(pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor], **kwargs)
Parámetros:
pretrained_model_name_or_path_or_dict (str o os.PathLike o dict) : Puede ser: - Una cadena, el id del modelo (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(). - Un torch 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.
weight_name (str, opcional, valor predeterminado None) : Nombre del archivo de state dict serializado.
Carga las capas de procesador de atención de Custom Diffusion preentrenadas en UNet2DConditionModel. Las capas de procesador de atención deben definirse en attention_processor.py y ser una clase torch.nn.Module. Para cargar capas LoRA, usa load_lora_adapter() en su lugar.
Ejemplo:
import torch
from diffusers import DiffusionPipeline
pipeline = DiffusionPipeline.from_pretrained(
"CompVis/stable-diffusion-v1-4",
torch_dtype=torch.float16,
).to("cuda")
pipeline.unet.load_attn_procs("path-to-save-model", weight_name="pytorch_custom_diffusion_weights.bin")
save_attn_procs[[diffusers.loaders.UNet2DConditionLoadersMixin.save_attn_procs]]
save_attn_procs(save_directory: str | os.PathLike, is_main_process: bool = True, weight_name: str = None, save_function: typing.Callable = None, safe_serialization: bool = True, **kwargs)
Parámetros:
save_directory (str o os.PathLike) : Directorio para guardar un procesador de atención (se creará si no existe).
is_main_process (bool, opcional, valor predeterminado True) : Indica si el proceso que realiza esta llamada es el proceso principal o no. Útil durante el entrenamiento distribuido cuando es necesario llamar a esta función en todos los procesos. En este caso, establezca is_main_process=True solo en el proceso principal para evitar condiciones de carrera.
save_function (Callable) : La función que se utilizará para guardar el diccionario de estado. Útil durante el entrenamiento distribuido cuando necesitas reemplazar torch.save con otro método. Se puede configurar con la variable de entorno DIFFUSERS_SAVE_MODE.
safe_serialization (bool, opcional, valor predeterminado True) : Si se guarda el modelo usando safetensors o con pickle.
Guarde las capas del procesador de atención de Custom Diffusion en un directorio para que pueda recargarlas con el método load_attn_procs(). Para guardar las capas de LoRA, use save_lora_adapter() en su lugar.
Ejemplo:
import torch
from diffusers import DiffusionPipeline
pipeline = DiffusionPipeline.from_pretrained(
"CompVis/stable-diffusion-v1-4",
torch_dtype=torch.float16,
).to("cuda")
pipeline.unet.load_attn_procs("path-to-save-model", weight_name="pytorch_custom_diffusion_weights.bin")
pipeline.unet.save_attn_procs("path-to-save-model", weight_name="pytorch_custom_diffusion_weights.bin")
Xet Storage Details
- Size:
- 6.89 kB
- Xet hash:
- 47d92e4ca49d396ca14f92d05cb59c452df7a1733f4572771c8a4dfb1b4c3633
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.