Diffusers documentation

LoRA

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.43.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

LoRA

LoRA — это быстрый и лёгкий метод обучения, который вставляет и обучает значительно меньшее количество параметров вместо всех параметров модели. Это приводит к созданию файла меньшего размера (~100 МБ) и упрощает быстрое обучение модели для освоения нового концепта. Веса LoRA обычно загружаются в denoiser, текстовый энкодер или в оба. Denoiser обычно соответствует UNet (например, UNet2DConditionModel) или Transformer (например, SD3Transformer2DModel). Существует несколько классов для загрузки весов LoRA:

  • StableDiffusionLoraLoaderMixin предоставляет функции для загрузки и выгрузки, слияния и разделения, а также включения и отключения и другие функции для управления весами LoRA. Этот класс можно использовать с любой моделью.
  • StableDiffusionXLLoraLoaderMixin — это версия Stable Diffusion (SDXL) класса StableDiffusionLoraLoaderMixin для загрузки и сохранения весов LoRA. Используется только с моделью SDXL.
  • SD3LoraLoaderMixin предоставляет аналогичные функции для Stable Diffusion 3.
  • FluxLoraLoaderMixin предоставляет аналогичные функции для Flux.
  • CogVideoXLoraLoaderMixin предоставляет аналогичные функции для CogVideoX.
  • Mochi1LoraLoaderMixin предоставляет аналогичные функции для Mochi.
  • AuraFlowLoraLoaderMixin предоставляет аналогичные функции для AuraFlow.
  • LTXVideoLoraLoaderMixin предоставляет аналогичные функции для LTX-Video.
  • SanaLoraLoaderMixin предоставляет аналогичные функции для Sana.
  • HeliosLoraLoaderMixin предоставляет аналогичные функции для HunyuanVideo.
  • HunyuanVideoLoraLoaderMixin предоставляет аналогичные функции для HunyuanVideo.
  • Lumina2LoraLoaderMixin предоставляет аналогичные функции для Lumina2.
  • WanLoraLoaderMixin предоставляет аналогичные функции для Wan.
  • SkyReelsV2LoraLoaderMixin предоставляет аналогичные функции для SkyReels-V2.
  • CogView4LoraLoaderMixin предоставляет аналогичные функции для CogView4.
  • AmusedLoraLoaderMixin предназначен для AmusedPipeline.
  • AnimaLoraLoaderMixin предоставляет аналогичные функции для Anima.
  • AceStepLoraLoaderMixin предоставляет аналогичные функции для ACE-Step.
  • HiDreamImageLoraLoaderMixin предоставляет аналогичные функции для HiDream Image
  • QwenImageLoraLoaderMixin предоставляет аналогичные функции для Qwen Image.
  • ZImageLoraLoaderMixin предоставляет аналогичные функции для Z-Image.
  • Flux2LoraLoaderMixin предоставляет аналогичные функции для Flux2.
  • ErnieImageLoraLoaderMixin предоставляет аналогичные функции для Ernie-Image.
  • LTX2LoraLoaderMixin предоставляет аналогичные функции для Flux2.
  • MiniMaxH3LoraLoaderMixin предоставляет аналогичные функции для MiniMax-H3.
  • PikaH3FlexLoraLoaderMixin предоставляет аналогичные функции для Pika H3 Flex.
  • RFD4ProteinaLoraLoaderMixin предоставляет аналогичные функции для RFD4-Proteína.
  • BriaFibo2LoraLoaderMixin предоставляет аналогичные функции для fibo-2.
  • LoraBaseMixin предоставляет базовый класс с несколькими утилитами для слияния, отмены слияния, выгрузки LoRA и других операций.

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

RFD4ProteinaLoraLoaderMixin

класс diffusers.loaders.RFD4ProteinaLoraLoaderMixin

< >

( )

Загрузите слои LoRA в RFD4ProteinaTransformer.

Автоэнкодер используется в паре с чекпоинтом денойзера и не адаптируется, поэтому трансформер является единственным загружаемым модулем.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

LoraBaseMixin

класс diffusers.loaders.lora_base.LoraBaseMixin

< >

( )

Вспомогательный класс для работы с LoRA.

delete_adapters

< >

( adapter_names: list[str] | str )

Параметры

  • adapter_names (list[str, str]) — Имена адаптеров, которые нужно удалить.

Удалите слои LoRA адаптера из конвейера.

Пример:

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.delete_adapters("cinematic")

disable_lora

< >

( )

Отключает активные слои LoRA в конвейере.

Пример:

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.disable_lora()

enable_lora

< >

( )

Включает активные слои LoRA в конвейере.

Пример:

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.enable_lora()

enable_lora_hotswap

< >

( **kwargs )

Параметры

  • target_rank (int) — Наибольший ранг среди всех адаптеров, которые будут загружены.
  • check_compiled (str, необязательный, по умолчанию "error") — Способ обработки уже скомпилированной модели. Проверка может вернуть следующие сообщения:
    • “error” (по умолчанию): вызывать ошибку
    • “warn”: выдать предупреждение
    • “ignore”: ничего не делать

Горячая замена адаптеров без запуска повторной компиляции модели или в случае, если ранги загруженных адаптеров различаются.

fuse_lora

< >

( components: list[str] | None = Nonelora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Параметры

  • components — (list[str]): список компонентов, в которые можно внедрить LoRA, для слияния LoRAs.
  • lora_scale (float, по умолчанию 1.0) — Определяет степень влияния параметров LoRA на выходные данные.
  • safe_fusing (bool, по умолчанию False) — Определяет, следует ли проверять объединяемые веса на наличие значений NaN перед их объединением и не объединять их, если значения равны NaN.
  • adapter_names (list[str], необязательный) — Имена адаптеров, используемые для слияния. Если ничего не передано, будут слиты все активные адаптеры.

Сливает параметры LoRA в исходные параметры соответствующих блоков.

Пример:

from diffusers import DiffusionPipeline
import torch

pipeline = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights("nerijs/pixel-art-xl", weight_name="pixel-art-xl.safetensors", adapter_name="pixel")
pipeline.fuse_lora(lora_scale=0.7)

get_active_adapters

< >

( )

Получает список текущих активных адаптеров.

Пример:

from diffusers import DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0",
).to("cuda")
pipeline.load_lora_weights("CiroN2022/toy-face", weight_name="toy_face_sdxl.safetensors", adapter_name="toy")
pipeline.get_active_adapters()

get_list_adapters

< >

( )

Получает текущий список всех доступных адаптеров в конвейере.

set_adapters

< >

( adapter_names: list[str] | stradapter_weights: float | dict[str, float | dict | None] | list[float | dict[str, float | dict | None] | None] | None = None )

Параметры

  • adapter_names (list[str] или str) — Имена адаптеров, которые следует использовать.
  • adapter_weights (float, dict или list, необязательный) — Веса для адаптеров. Скаляр масштабирует все компоненты, совместимые с LoRA. Словарь сопоставляет имена компонентов (например, "unet", "transformer" или "text_encoder") с весами; вес компонента UNet также может быть вложенным словарем масштабов блоков. Единственный скаляр или словарь применяется ко всем адаптерам. Список должен содержать по одному скаляру, словарю или None для каждого адаптера, в порядке adapter_names. None по умолчанию равно 1.0, включая элементы списка и веса компонентов. Нераскрытые компоненты и блоки UNet также по умолчанию равны 1.0.

Установите адаптеры, активные в данный момент, для использования в конвейере.

Пример:

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(
    "troveski/sdxl-lora", weight_name="pytorch_lora_weights.safetensors", adapter_name="illustration"
)
pipeline.set_adapters(["cinematic", "illustration"], adapter_weights=[0.5, 0.5])
pipeline.set_adapters(
    ["cinematic", "illustration"],
    adapter_weights=[{"unet": 0.5}, {"unet": 0.8, "text_encoder": 0.6}],
)

set_lora_device

< >

( adapter_names: list[str]device: torch.device | str | int )

Параметры

  • adapter_names (list[str]) — список адаптеров, для которых нужно отправить устройство.
  • device (torch.device | str | int) — Устройство, на которое следует переместить адаптеры. Может быть устройством torch, строкой или целым числом.

Перемещает LoRA, перечисленные в adapter_names, на целевое устройство. Полезно для выгрузки LoRA на CPU, если вы хотите загрузить несколько адаптеров и освободить часть памяти GPU.

После переноса адаптеров LoRA на CPU, пока остальная часть модели остаётся на GPU, адаптеры LoRA больше нельзя использовать для инференса, так как это приведёт к несовпадению устройств. Не забудьте вернуть устройство на GPU перед использованием этих адаптеров LoRA для инференса.

>>> pipe.load_lora_weights(path_1, adapter_name="adapter-1")
>>> pipe.load_lora_weights(path_2, adapter_name="adapter-2")
>>> pipe.set_adapters("adapter-1")
>>> image_1 = pipe(**kwargs)
>>> # switch to adapter-2, offload adapter-1
>>> pipeline.set_lora_device(adapter_names=["adapter-1"], device="cpu")
>>> pipeline.set_lora_device(adapter_names=["adapter-2"], device="cuda:0")
>>> pipe.set_adapters("adapter-2")
>>> image_2 = pipe(**kwargs)
>>> # switch back to adapter-1, offload adapter-2
>>> pipeline.set_lora_device(adapter_names=["adapter-2"], device="cpu")
>>> pipeline.set_lora_device(adapter_names=["adapter-1"], device="cuda:0")
>>> pipe.set_adapters("adapter-1")
>>> ...

unfuse_lora

< >

( components: list[str] | None = None**kwargs )

Параметры

  • components (list[str]) — список компонентов, в которые можно внедрить LoRA, для которых нужно отключить внедрение LoRA.
  • unfuse_unet (bool, по умолчанию True) — Разъединять ли параметры LoRA для UNet.
  • unfuse_text_encoder (bool, по умолчанию True) — Определяет, следует ли отключить параметры LoRA текстового энкодера. Если текстовый энкодер не был модифицирован с помощью параметров LoRA, этот параметр не окажет никакого влияния.

Отменяет действие pipe.fuse_lora().

unload_lora_weights

< >

( )

Разгружает параметры LoRA.

Примеры:

>>> # Assuming `pipeline` is already loaded with the LoRA parameters.
>>> pipeline.unload_lora_weights()
>>> ...

write_lora_layers

< >

( state_dict: dict[str, torch.Tensor]save_directory: stris_main_process: boolweight_name: strsave_function: Callablesafe_serialization: boollora_adapter_metadata: dict | None = None )

Записывает state dict слоёв LoRA (опционально с метаданными) на диск.

StableDiffusionLoraLoaderMixin

класс diffusers.loaders.StableDiffusionLoraLoaderMixin

< >

( )

Загрузите слои LoRA в UNet2DConditionModel и CLIPTextModel Stable Diffusion.

load_lora_into_text_encoder

< >

( state_dictnetwork_alphastext_encoderprefix = Nonelora_scale = 1.0adapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Параметры

  • state_dict (dict) — Стандартный state dict, содержащий параметры слоёв lora. Ключ должен быть дополнен префиксом text_encoder, чтобы отличать слои lora от слоёв lora в unet.
  • network_alphas (dict[str, float]) — Значение альфы сети, используемое для стабильного обучения и предотвращения подтекания. Это значение имеет тот же смысл, что и опция --network_alpha в скрипте тренера kohya-ss. См. эту ссылку.
  • text_encoder (CLIPTextModel) — Модель текстового кодировщика, в которую будут загружены слои LoRA.
  • prefix (str) — Ожидаемый префикс для text_encoder в state_dict.
  • lora_scale (float) — Коэффициент масштабирования вывода слоя lora linear перед его сложением с выводом обычного слоя lora.
  • adapter_name (str, необязательный) — Имя адаптера, используемое для ссылки на загруженную модель адаптера. Если не указано, будет использовано default_{i}, где i — общее количество загружаемых адаптеров.
  • low_cpu_mem_usage (bool, необязательный) — Ускоряет загрузку модели, загружая только предобученные веса LoRA и не инициализируя случайные веса.
  • hotswap (bool, необязательный) — См. load_lora_weights().
  • metadata (dict) — Необязательные метаданные адаптера LoRA. Если указаны, аргументы LoraConfig из peft не будут выводиться из state dict.

Это загрузит слои LoRA, указанные в state_dict, в text_encoder

load_lora_into_unet

< >

( state_dictnetwork_alphasunetadapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Параметры

  • state_dict (dict) — Стандартный state dict, содержащий параметры слоёв lora. Ключи могут указывать на слои unet напрямую либо иметь дополнительный префикс unet, что позволяет отличать слои lora текстового энкодера.
  • network_alphas (dict[str, float]) — Значение альфы сети, используемое для стабильного обучения и предотвращения подтекания. Это значение имеет тот же смысл, что и опция --network_alpha в скрипте тренера kohya-ss. См. эту ссылку.
  • unet (UNet2DConditionModel) — Модель UNet, в которую будут загружены слои LoRA.
  • adapter_name (str, необязательный) — Имя адаптера, используемое для ссылки на загруженную модель адаптера. Если не указано, будет использовано default_{i}, где i — общее количество загружаемых адаптеров.
  • low_cpu_mem_usage (bool, необязательный) — Ускоряет загрузку модели, загружая только предобученные веса LoRA и не инициализируя случайные веса.
  • hotswap (bool, необязательный) — См. load_lora_weights().
  • metadata (dict) — Необязательные метаданные адаптера LoRA. Если указаны, аргументы LoraConfig из peft не будут выводиться из state dict.

Это загрузит слои LoRA, указанные в state_dict, в unet.

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Параметры

  • pretrained_model_name_or_path_or_dict (str или os.PathLike или dict) — См. lora_state_dict().
  • adapter_name (str, необязательный) — Имя адаптера, используемое для ссылки на загруженную модель адаптера. Если не указано, будет использовано default_{i}, где i — общее количество загружаемых адаптеров.
  • low_cpu_mem_usage (bool, необязательный) — Ускоряет загрузку модели, загружая только предобученные веса LoRA и не инициализируя случайные веса.
  • hotswap (bool, необязательный) — По умолчанию False. Определяет, следует ли заменить существующий адаптер (LoRA) на новый загруженный адаптер на месте. Это означает, что вместо загрузки дополнительного адаптера будут взяты веса существующего адаптера и заменены весами нового адаптера. Это может быть быстрее и экономнее по памяти. Однако главное преимущество hotswap заключается в том, что при компиляции модели с помощью torch.compile загрузка нового адаптера не требует повторной компиляции модели. При использовании hotswap переданный adapter_name должен быть именем уже загруженного адаптера.

    Если у нового адаптера и старого адаптера разные ранги и/или значения LoRA alpha (т. е. масштабирование), перед загрузкой адаптера необходимо вызвать дополнительный метод:

    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

    Обратите внимание, что горячая замена адаптеров текстового кодировщика пока не поддерживается. У этого метода есть дополнительные ограничения, описанные здесь: https://huggingface.co/docs/peft/main/en/package_reference/hotswap

  • kwargs (dict, необязательный) — См. lora_state_dict().

Загрузите веса LoRA, указанные в pretrained_model_name_or_path_or_dict, в self.unet и self.text_encoder.

Все kwargs передаются в self.lora_state_dict.

См. lora_state_dict() для получения подробной информации о том, как загружается state dict.

See load_lora_into_unet() for more details on how the state dict is loaded into self.unet.

См. load_lora_into_text_encoder() для подробностей о том, как state dict загружается в self.text_encoder.

lora_state_dict

< >

( 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.
  • 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.
  • return_lora_metadata (bool, необязательный, по умолчанию False) — Если включено, дополнительно возвращает метаданные адаптера LoRA, обычно содержащиеся в state dict.

Возвращает state dict для весов lora и альф сети.

> Мы поддерживаем загрузку LoRA-чекпоинтов в формате A1111 в ограниченном объёме. > > Эта функция является экспериментальной и может измениться в будущем.

save_lora_weights

< >

( save_directory: str | os.PathLikeunet_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Nonetext_encoder_lora_layers: dict[str, torch.nn.Module] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Trueunet_lora_adapter_metadata = Nonetext_encoder_lora_adapter_metadata = None )

Параметры

  • save_directory (str or os.PathLike) — Каталог для сохранения параметров LoRA. Будет создан, если не существует.
  • unet_lora_layers (dict[str, torch.nn.Module] или dict[str, torch.Tensor]) — Состояние словаря (state dict) слоёв LoRA, соответствующих unet.
  • text_encoder_lora_layers (dict[str, torch.nn.Module] или dict[str, torch.Tensor]) — State dict слоёв LoRA, соответствующих text_encoder. Необходимо явно передать state dict слоёв LoRA текстового энкодера, так как он поступает из 🤗 Transformers.
  • is_main_process (bool, необязательный, по умолчанию True) — Указывает, является ли процесс, вызывающий эту функцию, основным. Полезно при распределенном обучении, когда необходимо вызвать эту функцию во всех процессах. В этом случае установите is_main_process=True только в основном процессе, чтобы избежать гонок.
  • save_function (Callable) — Функция, используемая для сохранения словаря состояния. Полезно при распределённом обучении, когда необходимо заменить torch.save на другой метод. Может быть настроена с помощью переменной окружения DIFFUSERS_SAVE_MODE.
  • safe_serialization (bool, необязательный, по умолчанию True) — Определяет, сохранять ли модель с помощью safetensors или традиционным способом PyTorch с использованием pickle.
  • unet_lora_adapter_metadata — метаданные адаптера LoRA, связанные с unet, которые будут сериализованы вместе со state dict.
  • text_encoder_lora_adapter_metadata — метаданные адаптера LoRA, связанные с текстовым энкодером, которые будут сериализованы вместе со словарем состояний.

Сохраните параметры LoRA, соответствующие UNet и текстовому энкодеру.

StableDiffusionXLLoraLoaderMixin

класс diffusers.loaders.StableDiffusionXLLoraLoaderMixin

< >

( )

Загрузите слои LoRA в UNet2DConditionModel, CLIPTextModel и CLIPTextModelWithProjection Stable Diffusion XL.

fuse_lora

< >

( components: list[str] = ['unet', 'text_encoder', 'text_encoder_2']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_text_encoder

< >

( state_dictnetwork_alphastext_encoderprefix = Nonelora_scale = 1.0adapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Параметры

  • state_dict (dict) — Стандартный state dict, содержащий параметры слоёв lora. Ключ должен быть дополнен префиксом text_encoder, чтобы отличать слои lora от слоёв lora в unet.
  • network_alphas (dict[str, float]) — Значение альфы сети, используемое для стабильного обучения и предотвращения подтекания. Это значение имеет тот же смысл, что и опция --network_alpha в скрипте тренера kohya-ss. См. эту ссылку.
  • text_encoder (CLIPTextModel) — Модель текстового кодировщика, в которую будут загружены слои LoRA.
  • prefix (str) — Ожидаемый префикс для text_encoder в state_dict.
  • lora_scale (float) — Коэффициент масштабирования вывода слоя lora linear перед его сложением с выводом обычного слоя lora.
  • adapter_name (str, необязательный) — Имя адаптера, используемое для ссылки на загруженную модель адаптера. Если не указано, будет использовано default_{i}, где i — общее количество загружаемых адаптеров.
  • low_cpu_mem_usage (bool, необязательный) — Ускоряет загрузку модели, загружая только предобученные веса LoRA и не инициализируя случайные веса.
  • hotswap (bool, необязательный) — См. load_lora_weights().
  • metadata (dict) — Необязательные метаданные адаптера LoRA. Если указаны, аргументы LoraConfig из peft не будут выводиться из state dict.

Это загрузит слои LoRA, указанные в state_dict, в text_encoder

load_lora_into_unet

< >

( state_dictnetwork_alphasunetadapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Параметры

  • state_dict (dict) — Стандартный state dict, содержащий параметры слоёв lora. Ключи могут указывать на слои unet напрямую либо иметь дополнительный префикс unet, что позволяет отличать слои lora текстового энкодера.
  • network_alphas (dict[str, float]) — Значение альфы сети, используемое для стабильного обучения и предотвращения подтекания. Это значение имеет тот же смысл, что и опция --network_alpha в скрипте тренера kohya-ss. См. эту ссылку.
  • unet (UNet2DConditionModel) — Модель UNet, в которую будут загружены слои LoRA.
  • adapter_name (str, необязательный) — Имя адаптера, используемое для ссылки на загруженную модель адаптера. Если не указано, будет использовано default_{i}, где i — общее количество загружаемых адаптеров.
  • low_cpu_mem_usage (bool, необязательный) — Ускоряет загрузку модели, загружая только предобученные веса LoRA и не инициализируя случайные веса.
  • hotswap (bool, необязательный) — См. load_lora_weights().
  • metadata (dict) — Необязательные метаданные адаптера LoRA. Если указаны, аргументы LoraConfig из peft не будут выводиться из state dict.

Это загрузит слои LoRA, указанные в state_dict, в unet.

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( 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.
  • 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.
  • return_lora_metadata (bool, необязательный, по умолчанию False) — Если включено, дополнительно возвращает метаданные адаптера LoRA, обычно содержащиеся в state dict.

Возвращает state dict для весов lora и альф сети.

> Мы поддерживаем загрузку LoRA-чекпоинтов в формате A1111 в ограниченном объёме. > > Эта функция является экспериментальной и может измениться в будущем.

save_lora_weights

< >

( save_directory: str | os.PathLikeunet_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Nonetext_encoder_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Nonetext_encoder_2_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Trueunet_lora_adapter_metadata = Nonetext_encoder_lora_adapter_metadata = Nonetext_encoder_2_lora_adapter_metadata = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['unet', 'text_encoder', 'text_encoder_2']**kwargs )

Подробнее см. в unfuse_lora().

SD3LoraLoaderMixin

класс diffusers.loaders.SD3LoraLoaderMixin

< >

( )

Загрузите слои LoRA в SD3Transformer2DModel, CLIPTextModel и CLIPTextModelWithProjection.

Специфично для StableDiffusion3Pipeline.

fuse_lora

< >

( components: list[str] = ['transformer', 'text_encoder', 'text_encoder_2']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_text_encoder

< >

( state_dictnetwork_alphastext_encoderprefix = Nonelora_scale = 1.0adapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Параметры

  • state_dict (dict) — Стандартный state dict, содержащий параметры слоёв lora. Ключ должен быть дополнен префиксом text_encoder, чтобы отличать слои lora от слоёв lora в unet.
  • network_alphas (dict[str, float]) — Значение альфы сети, используемое для стабильного обучения и предотвращения подтекания. Это значение имеет тот же смысл, что и опция --network_alpha в скрипте тренера kohya-ss. См. эту ссылку.
  • text_encoder (CLIPTextModel) — Модель текстового кодировщика, в которую будут загружены слои LoRA.
  • prefix (str) — Ожидаемый префикс для text_encoder в state_dict.
  • lora_scale (float) — Коэффициент масштабирования вывода слоя lora linear перед его сложением с выводом обычного слоя lora.
  • adapter_name (str, необязательный) — Имя адаптера, используемое для ссылки на загруженную модель адаптера. Если не указано, будет использовано default_{i}, где i — общее количество загружаемых адаптеров.
  • low_cpu_mem_usage (bool, необязательный) — Ускоряет загрузку модели, загружая только предобученные веса LoRA и не инициализируя случайные веса.
  • hotswap (bool, необязательный) — См. load_lora_weights().
  • metadata (dict) — Необязательные метаданные адаптера LoRA. Если указаны, аргументы LoraConfig из peft не будут выводиться из state dict.

Это загрузит слои LoRA, указанные в state_dict, в text_encoder

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Nonetext_encoder_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Nonetext_encoder_2_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata = Nonetext_encoder_lora_adapter_metadata = Nonetext_encoder_2_lora_adapter_metadata = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer', 'text_encoder', 'text_encoder_2']**kwargs )

Подробнее см. в unfuse_lora().

FluxLoraLoaderMixin

класс diffusers.loaders.FluxLoraLoaderMixin

< >

( )

Загрузите слои LoRA в FluxTransformer2DModel, CLIPTextModel.

Специфично для FluxPipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в lora_state_dict().

load_lora_into_text_encoder

< >

( state_dictnetwork_alphastext_encoderprefix = Nonelora_scale = 1.0adapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Параметры

  • state_dict (dict) — Стандартный state dict, содержащий параметры слоёв lora. Ключ должен быть дополнен префиксом text_encoder, чтобы отличать слои lora от слоёв lora в unet.
  • network_alphas (dict[str, float]) — Значение альфы сети, используемое для стабильного обучения и предотвращения подтекания. Это значение имеет тот же смысл, что и опция --network_alpha в скрипте тренера kohya-ss. См. эту ссылку.
  • text_encoder (CLIPTextModel) — Модель текстового кодировщика, в которую будут загружены слои LoRA.
  • prefix (str) — Ожидаемый префикс для text_encoder в state_dict.
  • lora_scale (float) — Коэффициент масштабирования вывода слоя lora linear перед его сложением с выводом обычного слоя lora.
  • adapter_name (str, необязательный) — Имя адаптера, используемое для ссылки на загруженную модель адаптера. Если не указано, будет использовано default_{i}, где i — общее количество загружаемых адаптеров.
  • low_cpu_mem_usage (bool, необязательный) — Ускоряет загрузку модели, загружая только предобученные веса LoRA и не инициализируя случайные веса.
  • hotswap (bool, необязательный) — См. load_lora_weights().
  • metadata (dict) — Необязательные метаданные адаптера LoRA. Если указаны, аргументы LoraConfig из peft не будут выводиться из state dict.

Это загрузит слои LoRA, указанные в state_dict, в text_encoder

load_lora_into_transformer

< >

( state_dictnetwork_alphastransformeradapter_name = Nonemetadata = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = False )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]return_alphas: bool = False**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Nonetext_encoder_lora_layers: dict[str, torch.nn.Module] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata = Nonetext_encoder_lora_adapter_metadata = None )

Параметры

  • save_directory (str or os.PathLike) — Каталог для сохранения параметров LoRA. Будет создан, если не существует.
  • transformer_lora_layers (dict[str, torch.nn.Module] или dict[str, torch.Tensor]) — Состояние (state dict) слоёв LoRA, соответствующих transformer.
  • text_encoder_lora_layers (dict[str, torch.nn.Module] или dict[str, torch.Tensor]) — State dict слоёв LoRA, соответствующих text_encoder. Необходимо явно передать state dict слоёв LoRA текстового энкодера, так как он поступает из 🤗 Transformers.
  • is_main_process (bool, необязательный, по умолчанию True) — Указывает, является ли процесс, вызывающий эту функцию, основным. Полезно при распределенном обучении, когда необходимо вызвать эту функцию во всех процессах. В этом случае установите is_main_process=True только в основном процессе, чтобы избежать гонок.
  • save_function (Callable) — Функция, используемая для сохранения словаря состояния. Полезно при распределённом обучении, когда необходимо заменить torch.save на другой метод. Может быть настроена с помощью переменной окружения DIFFUSERS_SAVE_MODE.
  • safe_serialization (bool, необязательный, по умолчанию True) — Определяет, сохранять ли модель с помощью safetensors или традиционным способом PyTorch с использованием pickle.
  • transformer_lora_adapter_metadata — метаданные адаптера LoRA, связанные с трансформером, которые будут сериализованы вместе со словарем состояний.
  • text_encoder_lora_adapter_metadata — метаданные адаптера LoRA, связанные с текстовым энкодером, которые будут сериализованы вместе со словарем состояний.

Сохраните параметры LoRA, соответствующие UNet и текстовому энкодеру.

unfuse_lora

< >

( components: list[str] = ['transformer', 'text_encoder']**kwargs )

Параметры

  • components (list[str]) — список компонентов, в которые можно внедрить LoRA, для которых нужно отключить внедрение LoRA.

Отменяет действие pipe.fuse_lora().

unload_lora_weights

< >

( reset_to_overwritten_params = False )

Параметры

  • reset_to_overwritten_params (bool, по умолчанию False) — Сбрасывать ли модули, загруженные с LoRA, к их исходным параметрам. Подробнее см. в документации Flux.

Разгружает параметры LoRA.

Примеры:

>>> # Assuming `pipeline` is already loaded with the LoRA parameters.
>>> pipeline.unload_lora_weights()
>>> ...

Flux2LoraLoaderMixin

класс diffusers.loaders.Flux2LoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в Flux2Transformer2DModel. Специфично для Flux2Pipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

Flux3LoraLoaderMixin

класс diffusers.loaders.Flux3LoraLoaderMixin

< >

( )

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

BriaFibo2LoraLoaderMixin

класс diffusers.loaders.BriaFibo2LoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в BriaFibo2Transformer2DModel. Специфично для BriaFibo2Pipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

ErnieImageLoraLoaderMixin

класс diffusers.loaders.ErnieImageLoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в ErnieImageTransformer2DModel. Специфично для ErnieImagePipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

LTX2LoraLoaderMixin

класс diffusers.loaders.LTX2LoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в LTX2VideoTransformer3DModel. Специфично для LTX2Pipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = Noneprefix: str = 'transformer' )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

CogVideoXLoraLoaderMixin

класс diffusers.loaders.CogVideoXLoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в CogVideoXTransformer3DModel. Специфично для CogVideoXPipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

Mochi1LoraLoaderMixin

класс diffusers.loaders.Mochi1LoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в MochiTransformer3DModel. Специфично для MochiPipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

AuraFlowLoraLoaderMixin

класс diffusers.loaders.AuraFlowLoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в AuraFlowTransformer2DModel Специфично для AuraFlowPipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer', 'text_encoder']**kwargs )

Подробнее см. в unfuse_lora().

LTXVideoLoraLoaderMixin

класс diffusers.loaders.LTXVideoLoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в LTXVideoTransformer3DModel. Специфично для LTXPipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

SanaLoraLoaderMixin

класс diffusers.loaders.SanaLoraLoaderMixin

< >

( )

Загрузите слои LoRA в SanaTransformer2DModel. Специфично для SanaPipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

HeliosLoraLoaderMixin

класс diffusers.loaders.HeliosLoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в HeliosTransformer3DModel. Специфично для HeliosPipeline и HeliosPyramidPipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

HunyuanVideoLoraLoaderMixin

класс diffusers.loaders.HunyuanVideoLoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в HunyuanVideoTransformer3DModel. Специфично для HunyuanVideoPipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

Lumina2LoraLoaderMixin

класс diffusers.loaders.Lumina2LoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в Lumina2Transformer2DModel. Специфично для Lumina2Pipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

CogView4LoraLoaderMixin

класс diffusers.loaders.CogView4LoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в WanTransformer3DModel. Специфично для CogView4Pipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

WanLoraLoaderMixin

класс diffusers.loaders.WanLoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в WanTransformer3DModel. Специфично для WanPipeline и [WanImageToVideoPipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

SkyReelsV2LoraLoaderMixin

класс diffusers.loaders.SkyReelsV2LoraLoaderMixin

< >

( )

Загрузите слои LoRA в SkyReelsV2Transformer3DModel.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

AmusedLoraLoaderMixin

класс diffusers.loaders.AmusedLoraLoaderMixin

< >

( )

load_lora_into_transformer

< >

( state_dictnetwork_alphastransformeradapter_name = Nonemetadata = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = False )

Подробнее см. в load_lora_into_unet().

save_lora_weights

< >

( save_directory: str | os.PathLiketext_encoder_lora_layers: dict[str, torch.nn.Module] = Nonetransformer_lora_layers: dict[str, torch.nn.Module] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = True )

Параметры

  • save_directory (str or os.PathLike) — Каталог для сохранения параметров LoRA. Будет создан, если не существует.
  • unet_lora_layers (dict[str, torch.nn.Module] или dict[str, torch.Tensor]) — Состояние словаря (state dict) слоёв LoRA, соответствующих unet.
  • text_encoder_lora_layers (dict[str, torch.nn.Module] или dict[str, torch.Tensor]) — State dict слоёв LoRA, соответствующих text_encoder. Необходимо явно передать state dict слоёв LoRA текстового энкодера, так как он поступает из 🤗 Transformers.
  • is_main_process (bool, необязательный, по умолчанию True) — Указывает, является ли процесс, вызывающий эту функцию, основным. Полезно при распределенном обучении, когда необходимо вызвать эту функцию во всех процессах. В этом случае установите is_main_process=True только в основном процессе, чтобы избежать гонок.
  • save_function (Callable) — Функция, используемая для сохранения словаря состояния. Полезно при распределённом обучении, когда необходимо заменить torch.save на другой метод. Может быть настроена с помощью переменной окружения DIFFUSERS_SAVE_MODE.
  • safe_serialization (bool, необязательный, по умолчанию True) — Определяет, сохранять ли модель с помощью safetensors или традиционным способом PyTorch с использованием pickle.

Сохраните параметры LoRA, соответствующие UNet и текстовому энкодеру.

AnimaLoraLoaderMixin

класс diffusers.loaders.AnimaLoraLoaderMixin

< >

( )

Загрузите слои LoRA в CosmosTransformer3DModel и AnimaTextConditioner.

fuse_lora

< >

( components: list[str] = ['transformer', 'text_conditioner']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

unfuse_lora

< >

( components: list[str] = ['transformer', 'text_conditioner']**kwargs )

Подробнее см. в unfuse_lora().

AceStepLoraLoaderMixin

класс diffusers.loaders.AceStepLoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в AceStepTransformer1DModel. Специфично для AceStepPipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

HiDreamImageLoraLoaderMixin

класс diffusers.loaders.HiDreamImageLoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в HiDreamImageTransformer2DModel. Специфично для HiDreamImagePipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

QwenImageLoraLoaderMixin

класс diffusers.loaders.QwenImageLoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в QwenImageTransformer2DModel. Специфично для QwenImagePipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

ZImageLoraLoaderMixin

класс diffusers.loaders.ZImageLoraLoaderMixin

< >

( )

Загрузите слои LoRA в ZImageTransformer2DModel. Специфично для ZImagePipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

CosmosLoraLoaderMixin

класс diffusers.loaders.CosmosLoraLoaderMixin

< >

( )

Загрузите слои LoRA в CosmosTransformer3DModel, специфичные для Cosmos2_5_PredictBasePipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

KandinskyLoraLoaderMixin

класс diffusers.loaders.KandinskyLoraLoaderMixin

< >

( )

Загрузите слои LoRA в Kandinsky5Transformer3DModel,

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

Ideogram4LoraLoaderMixin

класс diffusers.loaders.Ideogram4LoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в Ideogram4Transformer2DModel. Специфично для Ideogram4Pipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

Krea2LoraLoaderMixin

класс diffusers.loaders.Krea2LoraLoaderMixin

< >

( )

Загрузите слои LoRA в Krea2Transformer2DModel. Специфично для Krea2Pipeline.

fuse_lora

< >

( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )

Подробнее см. в load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )

См. save_lora_weights() для получения дополнительной информации.

unfuse_lora

< >

( components: list[str] = ['transformer']**kwargs )

Подробнее см. в unfuse_lora().

MiniMaxH3LoraLoaderMixin

класс diffusers.loaders.MiniMaxH3LoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в MiniMaxH3Transformer3DModel. Специфично для MiniMaxH3ModularPipeline.

MiniMax-H3 содержит два независимых раздела DiT с одинаковыми именами модулей (LoRA для одного загружается в другой и ухудшает результат), поэтому маршрутизация выполняется явно: преобразованные state dict нацелены на transformer.; доступ к transformer_ref осуществляется с помощью файла с префиксом transformer_ref. или параметра load_into_transformer_ref=True.

LoRA-модели DiffSynth-Studio (например, DiffSynth-Studio/MiniMax-H3-LoRA-LineartAnime) обучаются на основе слияния QKV с чередованием по головам из исходной контрольной точки и деинтерлинируются при конвертации. Их коэффициенты fp32 заставляют вычисления в пути несоединённого LoRA выполняться в fp32; вызов .to(torch.bfloat16) для модели после загрузки восстанавливает бюджет памяти bf16.

LoRA, обученные на обрезанном контрольном пункте (файлы *_pruned_* в Comfy-Org/MiniMax-H3; joyfox/MiniMax-H3-Turbo — один из них), завершаются ошибкой несовпадения размеров. Файлы без альфы загружаются с alpha == rank (масштаб 1.0, конвенция, указанная, например, в larryvrh/MiniMax-H3-Turbo-Lora); запись alpha в __metadata__ (например, 8-шаговый файл из lightx2v/Minimax-h3-Turbo), если она присутствует, используется вместо этого.

fuse_lora

< >

( components: list[str] = ['transformer', 'transformer_ref']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Подробнее см. в fuse_lora().

load_lora_into_transformer

< >

( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Подробнее см. в load_lora_into_unet().

load_lora_into_transformer_ref

< >

( state_dicttransformer_refprefixadapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )

Загрузите слои LoRA в раздел transformer_ref. prefix — это имя компонента, которое несут ключи: transformer_ref для файла, в котором раздел указан по имени, и transformer для файла, перенаправленного сюда с помощью load_into_transformer_ref=True. Подробнее см. load_lora_into_unet().

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = Falseload_into_transformer_ref: bool = False**kwargs )

Параметры

  • load_into_transformer_ref (bool, по умолчанию False) — Загружает слои с префиксом transformer. в раздел transformer_ref — тот, с которым работает workflow ref2va при денойзинге, — вместо transformer. Требуется только при загрузке обоих разделов: пайплайн, содержащий лишь transformer_ref, автоматически направляет данные туда.

Загрузите слои LoRA в transformer или, при load_into_transformer_ref=True, в transformer_ref. Подробнее см. load_lora_weights().

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

Подробнее см. в lora_state_dict().

save_lora_weights

< >

( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Nonetransformer_ref_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = Nonetransformer_ref_lora_adapter_metadata: dict | None = None )

Сохраните слои LoRA одного или обоих разделов MiniMax-H3. По ключам невозможно определить, к какому разделу относится LoRA, поэтому это единственный способ опубликовать LoRA для H3 с зафиксированной этой информацией. Подробности см. в save_lora_weights().

unfuse_lora

< >

( components: list[str] = ['transformer', 'transformer_ref']**kwargs )

Подробнее см. в unfuse_lora().

PikaH3FlexLoraLoaderMixin

класс diffusers.loaders.PikaH3FlexLoraLoaderMixin

< >

( )

Загрузка слоёв LoRA в MiniMaxH3Transformer3DModel. Специфично для PikaH3FlexModularPipeline.

Выпуск Pika H3 Flex представляет собой пару адаптеров rank-128 для двух трансформерных разделов MiniMax-H3, опубликованных в виде обычных PEFT-дампов с именами модулей diffusers (fl2va/adapter.safetensors для transformer, ref2va/adapter.safetensors для transformer_ref). Файлы без альфы загружаются с alpha == rank (масштаб 1.0), что соответствует собственному контракту адаптеров, а загрузка, маршрутизация и сохранение выполняются по правилам MiniMaxH3LoraLoaderMixin: адаптер fl2va помещается в transformer, а адаптер ref2va — в transformer_ref — самостоятельно, если пайплайн содержит только этот раздел (workflow="ref2va"), или с load_into_transformer_ref=True, если содержит оба.

pipe.load_lora_weights("Pika-Labs/Pika-H3-Flex", weight_name="fl2va/adapter.safetensors")

LoraBaseMixin

класс diffusers.loaders.lora_base.LoraBaseMixin

< >

( )

Вспомогательный класс для работы с LoRA.

delete_adapters

< >

( adapter_names: list[str] | str )

Параметры

  • adapter_names (list[str, str]) — Имена адаптеров, которые нужно удалить.

Удалите слои LoRA адаптера из конвейера.

Пример:

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.delete_adapters("cinematic")

disable_lora

< >

( )

Отключает активные слои LoRA в конвейере.

Пример:

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.disable_lora()

enable_lora

< >

( )

Включает активные слои LoRA в конвейере.

Пример:

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.enable_lora()

enable_lora_hotswap

< >

( **kwargs )

Параметры

  • target_rank (int) — Наибольший ранг среди всех адаптеров, которые будут загружены.
  • check_compiled (str, необязательный, по умолчанию "error") — Способ обработки уже скомпилированной модели. Проверка может вернуть следующие сообщения:
    • “error” (по умолчанию): вызывать ошибку
    • “warn”: выдать предупреждение
    • “ignore”: ничего не делать

Горячая замена адаптеров без запуска повторной компиляции модели или в случае, если ранги загруженных адаптеров различаются.

fuse_lora

< >

( components: list[str] | None = Nonelora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )

Параметры

  • components — (list[str]): список компонентов, в которые можно внедрить LoRA, для слияния LoRAs.
  • lora_scale (float, по умолчанию 1.0) — Определяет степень влияния параметров LoRA на выходные данные.
  • safe_fusing (bool, по умолчанию False) — Определяет, следует ли проверять объединяемые веса на наличие значений NaN перед их объединением и не объединять их, если значения равны NaN.
  • adapter_names (list[str], необязательный) — Имена адаптеров, используемые для слияния. Если ничего не передано, будут слиты все активные адаптеры.

Сливает параметры LoRA в исходные параметры соответствующих блоков.

Пример:

from diffusers import DiffusionPipeline
import torch

pipeline = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights("nerijs/pixel-art-xl", weight_name="pixel-art-xl.safetensors", adapter_name="pixel")
pipeline.fuse_lora(lora_scale=0.7)

get_active_adapters

< >

( )

Получает список текущих активных адаптеров.

Пример:

from diffusers import DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0",
).to("cuda")
pipeline.load_lora_weights("CiroN2022/toy-face", weight_name="toy_face_sdxl.safetensors", adapter_name="toy")
pipeline.get_active_adapters()

get_list_adapters

< >

( )

Получает текущий список всех доступных адаптеров в конвейере.

set_adapters

< >

( adapter_names: list[str] | stradapter_weights: float | dict[str, float | dict | None] | list[float | dict[str, float | dict | None] | None] | None = None )

Параметры

  • adapter_names (list[str] или str) — Имена адаптеров, которые следует использовать.
  • adapter_weights (float, dict или list, необязательный) — Веса для адаптеров. Скаляр масштабирует все компоненты, совместимые с LoRA. Словарь сопоставляет имена компонентов (например, "unet", "transformer" или "text_encoder") с весами; вес компонента UNet также может быть вложенным словарем масштабов блоков. Единственный скаляр или словарь применяется ко всем адаптерам. Список должен содержать по одному скаляру, словарю или None для каждого адаптера, в порядке adapter_names. None по умолчанию равно 1.0, включая элементы списка и веса компонентов. Нераскрытые компоненты и блоки UNet также по умолчанию равны 1.0.

Установите адаптеры, активные в данный момент, для использования в конвейере.

Пример:

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(
    "troveski/sdxl-lora", weight_name="pytorch_lora_weights.safetensors", adapter_name="illustration"
)
pipeline.set_adapters(["cinematic", "illustration"], adapter_weights=[0.5, 0.5])
pipeline.set_adapters(
    ["cinematic", "illustration"],
    adapter_weights=[{"unet": 0.5}, {"unet": 0.8, "text_encoder": 0.6}],
)

set_lora_device

< >

( adapter_names: list[str]device: torch.device | str | int )

Параметры

  • adapter_names (list[str]) — список адаптеров, для которых нужно отправить устройство.
  • device (torch.device | str | int) — Устройство, на которое следует переместить адаптеры. Может быть устройством torch, строкой или целым числом.

Перемещает LoRA, перечисленные в adapter_names, на целевое устройство. Полезно для выгрузки LoRA на CPU, если вы хотите загрузить несколько адаптеров и освободить часть памяти GPU.

После переноса адаптеров LoRA на CPU, пока остальная часть модели остаётся на GPU, адаптеры LoRA больше нельзя использовать для инференса, так как это приведёт к несовпадению устройств. Не забудьте вернуть устройство на GPU перед использованием этих адаптеров LoRA для инференса.

>>> pipe.load_lora_weights(path_1, adapter_name="adapter-1")
>>> pipe.load_lora_weights(path_2, adapter_name="adapter-2")
>>> pipe.set_adapters("adapter-1")
>>> image_1 = pipe(**kwargs)
>>> # switch to adapter-2, offload adapter-1
>>> pipeline.set_lora_device(adapter_names=["adapter-1"], device="cpu")
>>> pipeline.set_lora_device(adapter_names=["adapter-2"], device="cuda:0")
>>> pipe.set_adapters("adapter-2")
>>> image_2 = pipe(**kwargs)
>>> # switch back to adapter-1, offload adapter-2
>>> pipeline.set_lora_device(adapter_names=["adapter-2"], device="cpu")
>>> pipeline.set_lora_device(adapter_names=["adapter-1"], device="cuda:0")
>>> pipe.set_adapters("adapter-1")
>>> ...

unfuse_lora

< >

( components: list[str] | None = None**kwargs )

Параметры

  • components (list[str]) — список компонентов, в которые можно внедрить LoRA, для которых нужно отключить внедрение LoRA.
  • unfuse_unet (bool, по умолчанию True) — Разъединять ли параметры LoRA для UNet.
  • unfuse_text_encoder (bool, по умолчанию True) — Определяет, следует ли отключить параметры LoRA текстового энкодера. Если текстовый энкодер не был модифицирован с помощью параметров LoRA, этот параметр не окажет никакого влияния.

Отменяет действие pipe.fuse_lora().

unload_lora_weights

< >

( )

Разгружает параметры LoRA.

Примеры:

>>> # Assuming `pipeline` is already loaded with the LoRA parameters.
>>> pipeline.unload_lora_weights()
>>> ...

write_lora_layers

< >

( state_dict: dict[str, torch.Tensor]save_directory: stris_main_process: boolweight_name: strsave_function: Callablesafe_serialization: boollora_adapter_metadata: dict | None = None )

Записывает state dict слоёв LoRA (опционально с метаданными) на диск.

Update on GitHub