Diffusers documentation
LoRA
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 ImageQwenImageLoraLoaderMixinпредоставляет аналогичные функции для 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
Загрузите слои LoRA в RFD4ProteinaTransformer.
Автоэнкодер используется в паре с чекпоинтом денойзера и не адаптируется, поэтому трансформер является единственным загружаемым модулем.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
LoraBaseMixin
Вспомогательный класс для работы с LoRA.
delete_adapters
< source >( 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")Отключает активные слои 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()Включает активные слои 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
< source >( **kwargs )
Параметры
- target_rank (
int) — Наибольший ранг среди всех адаптеров, которые будут загружены. - check_compiled (
str, необязательный, по умолчанию"error") — Способ обработки уже скомпилированной модели. Проверка может вернуть следующие сообщения:- “error” (по умолчанию): вызывать ошибку
- “warn”: выдать предупреждение
- “ignore”: ничего не делать
Горячая замена адаптеров без запуска повторной компиляции модели или в случае, если ранги загруженных адаптеров различаются.
fuse_lora
< source >( 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)Получает список текущих активных адаптеров.
Получает текущий список всех доступных адаптеров в конвейере.
set_adapters
< source >( 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
< source >( adapter_names: list[str]device: torch.device | str | int )
Перемещает 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
< source >( 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().
Разгружает параметры LoRA.
write_lora_layers
< source >( 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
Загрузите слои LoRA в UNet2DConditionModel и CLIPTextModel Stable Diffusion.
load_lora_into_text_encoder
< source >( 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
< source >( 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
< source >( 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
< source >( 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
< source >( 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 (
stroros.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
Загрузите слои LoRA в UNet2DConditionModel, CLIPTextModel и CLIPTextModelWithProjection Stable Diffusion XL.
fuse_lora
< source >( 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
< source >( 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
< source >( 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
< source >( 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
< source >( 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
< source >( 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
< source >( components: list[str] = ['unet', 'text_encoder', 'text_encoder_2']**kwargs )
Подробнее см. в unfuse_lora().
SD3LoraLoaderMixin
Загрузите слои LoRA в SD3Transformer2DModel, CLIPTextModel и CLIPTextModelWithProjection.
Специфично для StableDiffusion3Pipeline.
fuse_lora
< source >( 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
< source >( 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
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name = Nonehotswap: bool = False**kwargs )
Подробнее см. в load_lora_weights().
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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
< source >( components: list[str] = ['transformer', 'text_encoder', 'text_encoder_2']**kwargs )
Подробнее см. в unfuse_lora().
FluxLoraLoaderMixin
Загрузите слои LoRA в FluxTransformer2DModel, CLIPTextModel.
Специфично для FluxPipeline.
fuse_lora
< source >( 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
< source >( 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
< source >( state_dictnetwork_alphastransformeradapter_name = Nonemetadata = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = False )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]return_alphas: bool = False**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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 (
stroros.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
< source >( components: list[str] = ['transformer', 'text_encoder']**kwargs )
Отменяет действие pipe.fuse_lora().
unload_lora_weights
< source >( reset_to_overwritten_params = False )
Параметры
- reset_to_overwritten_params (
bool, по умолчаниюFalse) — Сбрасывать ли модули, загруженные с LoRA, к их исходным параметрам. Подробнее см. в документации Flux.
Разгружает параметры LoRA.
Flux2LoraLoaderMixin
Загрузка слоёв LoRA в Flux2Transformer2DModel. Специфично для Flux2Pipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
Flux3LoraLoaderMixin
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( 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().
BriaFibo2LoraLoaderMixin
Загрузка слоёв LoRA в BriaFibo2Transformer2DModel. Специфично для BriaFibo2Pipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
ErnieImageLoraLoaderMixin
Загрузка слоёв LoRA в ErnieImageTransformer2DModel. Специфично для ErnieImagePipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
LTX2LoraLoaderMixin
Загрузка слоёв LoRA в LTX2VideoTransformer3DModel. Специфично для LTX2Pipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = Noneprefix: str = 'transformer' )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
CogVideoXLoraLoaderMixin
Загрузка слоёв LoRA в CogVideoXTransformer3DModel. Специфично для CogVideoXPipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
Mochi1LoraLoaderMixin
Загрузка слоёв LoRA в MochiTransformer3DModel. Специфично для MochiPipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
AuraFlowLoraLoaderMixin
Загрузка слоёв LoRA в AuraFlowTransformer2DModel Специфично для AuraFlowPipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
LTXVideoLoraLoaderMixin
Загрузка слоёв LoRA в LTXVideoTransformer3DModel. Специфично для LTXPipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
SanaLoraLoaderMixin
Загрузите слои LoRA в SanaTransformer2DModel. Специфично для SanaPipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
HeliosLoraLoaderMixin
Загрузка слоёв LoRA в HeliosTransformer3DModel. Специфично для HeliosPipeline и HeliosPyramidPipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
HunyuanVideoLoraLoaderMixin
Загрузка слоёв LoRA в HunyuanVideoTransformer3DModel. Специфично для HunyuanVideoPipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
Lumina2LoraLoaderMixin
Загрузка слоёв LoRA в Lumina2Transformer2DModel. Специфично для Lumina2Pipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
CogView4LoraLoaderMixin
Загрузка слоёв LoRA в WanTransformer3DModel. Специфично для CogView4Pipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
WanLoraLoaderMixin
Загрузка слоёв LoRA в WanTransformer3DModel. Специфично для WanPipeline и [WanImageToVideoPipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
SkyReelsV2LoraLoaderMixin
Загрузите слои LoRA в SkyReelsV2Transformer3DModel.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
AmusedLoraLoaderMixin
load_lora_into_transformer
< source >( state_dictnetwork_alphastransformeradapter_name = Nonemetadata = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = False )
Подробнее см. в load_lora_into_unet().
save_lora_weights
< source >( 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 (
stroros.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
Загрузите слои LoRA в CosmosTransformer3DModel и AnimaTextConditioner.
fuse_lora
< source >( 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
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
Подробнее см. в unfuse_lora().
AceStepLoraLoaderMixin
Загрузка слоёв LoRA в AceStepTransformer1DModel. Специфично для AceStepPipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
HiDreamImageLoraLoaderMixin
Загрузка слоёв LoRA в HiDreamImageTransformer2DModel. Специфично для HiDreamImagePipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
QwenImageLoraLoaderMixin
Загрузка слоёв LoRA в QwenImageTransformer2DModel. Специфично для QwenImagePipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
ZImageLoraLoaderMixin
Загрузите слои LoRA в ZImageTransformer2DModel. Специфично для ZImagePipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
CosmosLoraLoaderMixin
Загрузите слои LoRA в CosmosTransformer3DModel, специфичные для Cosmos2_5_PredictBasePipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
KandinskyLoraLoaderMixin
Загрузите слои LoRA в Kandinsky5Transformer3DModel,
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
Ideogram4LoraLoaderMixin
Загрузка слоёв LoRA в Ideogram4Transformer2DModel. Специфично для Ideogram4Pipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
Krea2LoraLoaderMixin
Загрузите слои LoRA в Krea2Transformer2DModel. Специфично для Krea2Pipeline.
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
Подробнее см. в fuse_lora().
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_weights
< source >( 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
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
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
< source >( 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
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
Подробнее см. в load_lora_into_unet().
load_lora_into_transformer_ref
< source >( 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
< source >( 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— тот, с которым работает workflowref2vaпри денойзинге, — вместоtransformer. Требуется только при загрузке обоих разделов: пайплайн, содержащий лишьtransformer_ref, автоматически направляет данные туда.
Загрузите слои LoRA в transformer или, при load_into_transformer_ref=True, в transformer_ref. Подробнее см. load_lora_weights().
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
Подробнее см. в lora_state_dict().
save_lora_weights
< source >( 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().
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, если содержит оба.
LoraBaseMixin
Вспомогательный класс для работы с LoRA.
delete_adapters
< source >( 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")Отключает активные слои 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()Включает активные слои 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
< source >( **kwargs )
Параметры
- target_rank (
int) — Наибольший ранг среди всех адаптеров, которые будут загружены. - check_compiled (
str, необязательный, по умолчанию"error") — Способ обработки уже скомпилированной модели. Проверка может вернуть следующие сообщения:- “error” (по умолчанию): вызывать ошибку
- “warn”: выдать предупреждение
- “ignore”: ничего не делать
Горячая замена адаптеров без запуска повторной компиляции модели или в случае, если ранги загруженных адаптеров различаются.
fuse_lora
< source >( 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)Получает список текущих активных адаптеров.
Получает текущий список всех доступных адаптеров в конвейере.
set_adapters
< source >( 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
< source >( adapter_names: list[str]device: torch.device | str | int )
Перемещает 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
< source >( 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().
Разгружает параметры LoRA.
write_lora_layers
< source >( 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 (опционально с метаданными) на диск.