Buckets:

mishig's picture
|
download
raw
9.13 kB

UNet

Некоторые методы обучения, такие как LoRA и Custom Diffusion, как правило, нацелены на слои внимания UNet, однако эти методы могут быть применены и к другим слоям, не связанным с вниманием. Вместо обучения всех параметров модели обучается только их подмножество, что быстрее и эффективнее. Этот класс полезен, если вы только загружаете веса в UNet. Если вам нужно загрузить веса в текстовый энкодер или одновременно в текстовый энкодер и UNet, используйте вместо этого функцию load_lora_weights().

Класс UNet2DConditionLoadersMixin предоставляет функции для загрузки и сохранения весов, слияния и разделения LoRA, отключения и включения LoRA, а также установки и удаления адаптеров.

Чтобы узнать больше о том, как загрузить веса LoRA, см. руководство LoRA.

UNet2DConditionLoadersMixin[[diffusers.loaders.UNet2DConditionLoadersMixin]]

diffusers.loaders.UNet2DConditionLoadersMixin[[diffusers.loaders.UNet2DConditionLoadersMixin]]

diffusers.loaders.UNet2DConditionLoadersMixin()

Источник

Загрузите слои LoRA в 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)

Источник

Параметры:

pretrained_model_name_or_path_or_dict (str или os.PathLike или dict) : Может быть одним из следующих: - Строка, идентификатор модели (например, google/ddpm-celebahq-256) предобученной модели, размещенной на Hub. - Путь к каталогу (например, ./my_model_directory), содержащему веса модели, сохраненные с помощью ModelMixin.save_pretrained(). - torch state dict.

cache_dir (str | os.PathLike, необязательный) : Путь к каталогу, в котором кэшируется конфигурация загруженной предобученной модели, если стандартный кэш не используется.

force_download (bool, необязательный, по умолчанию False) : Указывает, следует ли принудительно (пере)скачивать веса модели и файлы конфигурации, заменяя кэшированные версии, если они существуют.

proxies (dict[str, str], необязательный) : Словарь прокси-серверов для использования по протоколу или конечной точке, например, {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Прокси используются при каждом запросе.

local_files_only (bool, необязательный, по умолчанию False) : Загружать только локальные веса модели и файлы конфигурации или нет. Если установлено в True, модель не будет скачана с Hub.

token (str или bool, необязательный) : Токен, используемый в качестве HTTP bearer-авторизации для удалённых файлов. Если True, используется токен, сгенерированный командой diffusers-cli login (сохранённый в ~/.huggingface).

revision (str, необязательный, по умолчанию "main") : Конкретная версия модели, которую следует использовать. Может быть именем ветки, именем тега, идентификатором коммита или любым другим идентификатором, поддерживаемым Git.

subfolder (str, необязательный, по умолчанию "") : Путь к подпапке, в которой находится файл модели в составе более крупного репозитория моделей на Hub или локально.

weight_name (str, необязательный, по умолчанию None) : Имя файла сериализованного state dict.

Загрузите предобученные слои attention-процессора Custom Diffusion в UNet2DConditionModel. Слой attention-процессора должен быть определён в attention_processor.py и являться классом torch.nn.Module. Для загрузки слоёв LoRA используйте вместо этого load_lora_adapter().

Пример:

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)

Источник

Параметры:

save_directory (str или os.PathLike) : Каталог для сохранения attention processor (будет создан, если не существует).

is_main_process (bool, необязательный, по умолчанию True) : Указывает, является ли процесс, вызывающий данный метод, основным. Полезно при распределённом обучении, когда необходимо вызвать эту функцию во всех процессах. В этом случае установите is_main_process=True только в основном процессе, чтобы избежать гонок.

save_function (Callable) : функция, используемая для сохранения словаря состояния. Полезно при распределённом обучении, когда необходимо заменить torch.save на другой метод. Может быть настроено с помощью переменной окружения DIFFUSERS_SAVE_MODE.

safe_serialization (bool, необязательный, по умолчанию True) : Сохранять ли модель с использованием safetensors или с помощью pickle.

Сохраните слои процессора внимания Custom Diffusion в каталог, чтобы их можно было загрузить с помощью метода load_attn_procs(). Для сохранения слоёв LoRA используйте вместо этого save_lora_adapter().

Пример:

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:
9.13 kB
·
Xet hash:
412f17ed3680d14974fe0fcac81277b40be05792e0b79de16e846edb5bf02d1b

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