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.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

LoRA

LoRA 是一种快速且轻量级的训练方法,它通过插入并训练数量远少于模型全部参数的参数来实现训练。这会产生更小的文件(约 100 MB),并使快速训练模型以学习新概念变得更加容易。LoRA 权重通常加载到去噪器、文本编码器或两者中。去噪器通常对应于 UNet(例如 UNet2DConditionModel)或 Transformer(例如 SD3Transformer2DModel)。有几种用于加载 LoRA 权重的类:

  • StableDiffusionLoraLoaderMixin 提供了用于加载和卸载、融合和取消融合、启用和禁用等管理 LoRA 权重的函数。该类可与任何模型配合使用。
  • StableDiffusionXLLoraLoaderMixin 是 StableDiffusionLoraLoaderMixin 类的 Stable Diffusion (SDXL) 版本,用于加载和保存 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

class diffusers.loaders.RFD4ProteinaLoraLoaderMixin

< >

( )

将 LoRA 层加载到 RFD4ProteinaTransformer 中。

自编码器与去噪器检查点配对使用,且未进行适配,因此 Transformer 是唯一可加载的模块。

fuse_lora

< >

( components: list = ['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 = 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 = ['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 的、可注入 LoRA 的组件列表。
  • 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 组件的权重也可以是一个包含块缩放的嵌套字典。单个标量或字典会应用于每个适配器。列表必须按 adapter_names 的顺序,为每个适配器包含一个标量、字典或 None。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 设备、字符串或整数。

将 adapter_names 中列出的 LoRA 移动到目标设备。如果您想加载多个适配器并释放一些 GPU 内存,则可以将 LoRA 卸载到 CPU,此操作非常有用。

将 LoRA 适配器卸载到 CPU 后,只要模型的其余部分仍在 GPU 上,这些 LoRA 适配器就无法再用于推理,因为这会导致设备不匹配。请记住,在使用这些 LoRA 适配器进行推理之前,先将设备设置回 GPU。

>>> 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) — 是否解除 UNet LoRA 参数的融合。
  • unfuse_text_encoder (bool,默认为 True) — 是否解除文本编码器的 LoRA 参数融合。如果文本编码器未通过 monkey-patch 方式注入 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 )

将 LoRA 层的 state dict(可选包含元数据)写入磁盘。

StableDiffusionLoraLoaderMixin

类 diffusers.loaders.StableDiffusionLoraLoaderMixin

< >

( )

将 LoRA 层加载到 Stable Diffusion 的 UNet2DConditionModel 和 CLIPTextModel 中。

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) — 一个包含 lora 层参数的标准 state dict。键名应额外添加 text_encoder 前缀,以区分 unet lora 层。
  • network_alphas (dict[str, float]) — 用于稳定学习并防止下溢的网络 alpha 值。该值与 kohya-ss 训练脚本中的 --network_alpha 选项含义相同。请参阅 此链接。
  • text_encoder (CLIPTextModel) — 用于加载 LoRA 层的文本编码器模型。
  • prefix (str) — state_dict 中 text_encoder 的预期前缀。
  • lora_scale (float) — 在将 lora 线性层的输出与常规 lora 层的输出相加之前,对 lora 线性层的输出进行缩放的系数。
  • adapter_name (str, 可选) — 用于引用已加载的适配器模型的适配器名称。如果未指定,将使用 default_{i},其中 i 为正在加载的适配器总数。
  • low_cpu_mem_usage (bool,可选) — 通过仅加载预训练的 LoRA 权重而不初始化随机权重,来加快模型加载速度。
  • hotswap(bool,可选)— 参见 load_lora_weights()。
  • metadata (dict) — 可选的 LoRA 适配器元数据。如果提供,peft 的 LoraConfig 参数将不会从状态字典中推导得出。

这将把state_dict中指定的 LoRA 层加载到text_encoder中

load_lora_into_unet

< >

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

参数

  • state_dict (dict) — 一个包含 lora 层参数的标准 state dict。其键可以直接索引到 unet,或者带有额外的 unet 前缀,可用于区分文本编码器 lora 层。
  • network_alphas (dict[str, float]) — 用于稳定学习并防止下溢的网络 alpha 值。该值与 kohya-ss 训练脚本中的 --network_alpha 选项含义相同。请参阅 此链接。
  • unet (UNet2DConditionModel) — 用于加载 LoRA 层的 UNet 模型。
  • adapter_name (str, 可选) — 用于引用已加载的适配器模型的适配器名称。如果未指定,将使用 default_{i},其中 i 为正在加载的适配器总数。
  • low_cpu_mem_usage (bool,可选) — 仅加载预训练的 LoRA 权重而不初始化随机权重,从而加快模型加载速度。
  • hotswap(bool,可选)— 参见 load_lora_weights()。
  • metadata (dict) — 可选的 LoRA 适配器元数据。如果提供,peft 的 LoraConfig 参数将不会从状态字典中推导得出。

这将把 state_dict 中指定的 LoRA 层加载到 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)适配器。这意味着,系统不会加载额外的适配器,而是获取现有适配器的权重,并用新适配器的权重将其替换。这种方式可能更快且更节省内存。然而,热替换的主要优势在于,当模型使用 torch.compile 编译时,加载新适配器无需重新编译模型。使用热替换时,传入的 adapter_name 应为已加载适配器的名称。

    如果新适配器和旧适配器的秩和/或 LoRA alpha(即缩放)不同,则在加载适配器之前需要调用一个额外的方法:

将 pretrained_model_name_or_path_or_dict 中指定的 LoRA 权重加载到 self.unet 和 self.text_encoder 中。

所有 kwargs 都会转发到 self.lora_state_dict。

有关状态字典加载方式的更多详细信息,请参阅 lora_state_dict()。

有关状态字典如何加载到 self.unet 的更多详细信息,请参阅 load_lora_into_unet()。

有关状态字典如何加载到 self.text_encoder 的更多详细信息,请参阅 load_lora_into_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) — 可以是以下之一: - 一个字符串,即托管在 Hub 上的预训练模型的模型 ID(例如 google/ddpm-celebahq-256)。 - 一个目录路径(例如 ./my_model_directory),其中包含使用 ModelMixin.save_pretrained() 保存的模型权重。 - 一个 torch 状态字典。
    • 一个字符串,即托管在 Hub 上的预训练模型的 model id(例如 google/ddpm-celebahq-256)。
    • 指向一个目录的路径(例如 ./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") — 要使用的特定模型版本。它可以是分支名称、标签名称、提交 id,或 Git 允许的任何标识符。
  • subfolder (str,可选,默认为 "") — 模型文件在 Hub 或本地更大的模型仓库中的子文件夹位置。
  • weight_name (str,可选,默认为 None) — 序列化状态字典文件的名称。
  • return_lora_metadata (bool,可选,默认为 False) — 启用后,将额外返回 LoRA 适配器元数据,通常位于 state dict 中。

返回 LoRA 权重和网络 alpha 的状态字典。

> 我们有限地支持加载 A1111 格式的 LoRA 检查点。 > > 此功能为实验性功能,未来可能会发生变化。

save_lora_weights

< >

( save_directory: str | os.PathLikeunet_lora_layers: dict = Nonetext_encoder_lora_layers: dict = 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 或 os.PathLike) — 用于保存 LoRA 参数的目录。如果该目录不存在,将会自动创建。
  • unet_lora_layers (dict[str, torch.nn.Module] 或 dict[str, torch.Tensor]) — 与 unet 对应的 LoRA 层的 state dict。
  • text_encoder_lora_layers (dict[str, torch.nn.Module] 或 dict[str, torch.Tensor]) — 与 text_encoder 对应的 LoRA 层的 state dict。由于它来自 🤗 Transformers,因此必须显式传入文本编码器的 LoRA state dict。
  • is_main_process (bool,可选,默认为 True) — 调用此函数的进程是否为主进程。在分布式训练期间,当需要在所有进程上调用此函数时非常有用。在这种情况下,仅在主进程上设置 is_main_process=True,以避免竞态条件。
  • save_function (Callable) — 用于保存状态字典的函数。在分布式训练期间,当您需要用其他方法替换 torch.save 时非常有用。可以通过环境变量 DIFFUSERS_SAVE_MODE 进行配置。
  • safe_serialization(bool,可选,默认为 True)—— 是否使用 safetensors 保存模型,还是使用传统的基于 pickle 的 PyTorch 方式。
  • unet_lora_adapter_metadata — 与 unet 关联的 LoRA 适配器元数据,将随状态字典一起序列化。
  • text_encoder_lora_adapter_metadata — 与文本编码器关联的 LoRA 适配器元数据,将随状态字典一起序列化。

保存与 UNet 和文本编码器对应的 LoRA 参数。

StableDiffusionXLLoraLoaderMixin

类 diffusers.loaders.StableDiffusionXLLoraLoaderMixin

< >

( )

将 LoRA 层加载到 Stable Diffusion XL 的 UNet2DConditionModel、CLIPTextModel 和 CLIPTextModelWithProjection 中。

fuse_lora

< >

( components: list = ['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) — 一个包含 lora 层参数的标准 state dict。键名应额外添加 text_encoder 前缀,以区分 unet lora 层。
  • network_alphas (dict[str, float]) — 用于稳定学习并防止下溢的网络 alpha 值。该值与 kohya-ss 训练脚本中的 --network_alpha 选项含义相同。请参阅 此链接。
  • text_encoder (CLIPTextModel) — 用于加载 LoRA 层的文本编码器模型。
  • prefix (str) — state_dict 中 text_encoder 的预期前缀。
  • lora_scale (float) — 在将 lora 线性层的输出与常规 lora 层的输出相加之前,对 lora 线性层的输出进行缩放的系数。
  • adapter_name (str, 可选) — 用于引用已加载的适配器模型的适配器名称。如果未指定,将使用 default_{i},其中 i 为正在加载的适配器总数。
  • low_cpu_mem_usage (bool,可选) — 通过仅加载预训练的 LoRA 权重而不初始化随机权重,来加快模型加载速度。
  • hotswap(bool,可选)— 参见 load_lora_weights()。
  • metadata (dict) — 可选的 LoRA 适配器元数据。如果提供,peft 的 LoraConfig 参数将不会从状态字典中推导得出。

这将把state_dict中指定的 LoRA 层加载到text_encoder中

load_lora_into_unet

< >

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

参数

  • state_dict (dict) — 一个包含 lora 层参数的标准 state dict。其键可以直接索引到 unet,或者带有额外的 unet 前缀,可用于区分文本编码器 lora 层。
  • network_alphas (dict[str, float]) — 用于稳定学习并防止下溢的网络 alpha 值。该值与 kohya-ss 训练脚本中的 --network_alpha 选项含义相同。请参阅 此链接。
  • unet (UNet2DConditionModel) — 用于加载 LoRA 层的 UNet 模型。
  • adapter_name (str, 可选) — 用于引用已加载的适配器模型的适配器名称。如果未指定,将使用 default_{i},其中 i 为正在加载的适配器总数。
  • low_cpu_mem_usage (bool,可选) — 仅加载预训练的 LoRA 权重而不初始化随机权重,从而加快模型加载速度。
  • hotswap(bool,可选)— 参见 load_lora_weights()。
  • metadata (dict) — 可选的 LoRA 适配器元数据。如果提供,peft 的 LoraConfig 参数将不会从状态字典中推导得出。

这将把 state_dict 中指定的 LoRA 层加载到 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) — 可以是以下之一: - 一个字符串,即托管在 Hub 上的预训练模型的模型 ID(例如 google/ddpm-celebahq-256)。 - 一个目录路径(例如 ./my_model_directory),其中包含使用 ModelMixin.save_pretrained() 保存的模型权重。 - 一个 torch 状态字典。
    • 一个字符串,即托管在 Hub 上的预训练模型的 model id(例如 google/ddpm-celebahq-256)。
    • 指向一个目录的路径(例如 ./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") — 要使用的特定模型版本。它可以是分支名称、标签名称、提交 id,或 Git 允许的任何标识符。
  • subfolder (str,可选,默认为 "") — 模型文件在 Hub 或本地更大的模型仓库中的子文件夹位置。
  • weight_name (str,可选,默认为 None) — 序列化状态字典文件的名称。
  • return_lora_metadata (bool,可选,默认为 False) — 启用后,将额外返回 LoRA 适配器元数据,通常位于 state dict 中。

返回 LoRA 权重和网络 alpha 的状态字典。

> 我们有限地支持加载 A1111 格式的 LoRA 检查点。 > > 此功能为实验性功能,未来可能会发生变化。

save_lora_weights

< >

( save_directory: str | os.PathLikeunet_lora_layers: dict = Nonetext_encoder_lora_layers: dict = Nonetext_encoder_2_lora_layers: dict = 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 = ['unet', 'text_encoder', 'text_encoder_2']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

SD3LoraLoaderMixin

类 diffusers.loaders.SD3LoraLoaderMixin

< >

( )

将 LoRA 层加载到 SD3Transformer2DModel、CLIPTextModel 和 CLIPTextModelWithProjection 中。

特定于 StableDiffusion3Pipeline。

fuse_lora

< >

( components: list = ['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) — 一个包含 lora 层参数的标准 state dict。键名应额外添加 text_encoder 前缀,以区分 unet lora 层。
  • network_alphas (dict[str, float]) — 用于稳定学习并防止下溢的网络 alpha 值。该值与 kohya-ss 训练脚本中的 --network_alpha 选项含义相同。请参阅 此链接。
  • text_encoder (CLIPTextModel) — 用于加载 LoRA 层的文本编码器模型。
  • prefix (str) — state_dict 中 text_encoder 的预期前缀。
  • lora_scale (float) — 在将 lora 线性层的输出与常规 lora 层的输出相加之前,对 lora 线性层的输出进行缩放的系数。
  • adapter_name (str, 可选) — 用于引用已加载的适配器模型的适配器名称。如果未指定,将使用 default_{i},其中 i 为正在加载的适配器总数。
  • low_cpu_mem_usage (bool,可选) — 通过仅加载预训练的 LoRA 权重而不初始化随机权重,来加快模型加载速度。
  • hotswap(bool,可选)— 参见 load_lora_weights()。
  • metadata (dict) — 可选的 LoRA 适配器元数据。如果提供,peft 的 LoraConfig 参数将不会从状态字典中推导得出。

这将把state_dict中指定的 LoRA 层加载到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 = Nonetext_encoder_lora_layers: dict = Nonetext_encoder_2_lora_layers: dict = 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 = ['transformer', 'text_encoder', 'text_encoder_2']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

FluxLoraLoaderMixin

class diffusers.loaders.FluxLoraLoaderMixin

< >

( )

将 LoRA 层加载到 FluxTransformer2DModel、CLIPTextModel 中。

特定于 FluxPipeline。

fuse_lora

< >

( components: list = ['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) — 一个包含 lora 层参数的标准 state dict。键名应额外添加 text_encoder 前缀,以区分 unet lora 层。
  • network_alphas (dict[str, float]) — 用于稳定学习并防止下溢的网络 alpha 值。该值与 kohya-ss 训练脚本中的 --network_alpha 选项含义相同。请参阅 此链接。
  • text_encoder (CLIPTextModel) — 用于加载 LoRA 层的文本编码器模型。
  • prefix (str) — state_dict 中 text_encoder 的预期前缀。
  • lora_scale (float) — 在将 lora 线性层的输出与常规 lora 层的输出相加之前,对 lora 线性层的输出进行缩放的系数。
  • adapter_name (str, 可选) — 用于引用已加载的适配器模型的适配器名称。如果未指定,将使用 default_{i},其中 i 为正在加载的适配器总数。
  • low_cpu_mem_usage (bool,可选) — 通过仅加载预训练的 LoRA 权重而不初始化随机权重,来加快模型加载速度。
  • hotswap(bool,可选)— 参见 load_lora_weights()。
  • metadata (dict) — 可选的 LoRA 适配器元数据。如果提供,peft 的 LoraConfig 参数将不会从状态字典中推导得出。

这将把state_dict中指定的 LoRA 层加载到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 = Nonetext_encoder_lora_layers: dict = 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 或 os.PathLike) — 用于保存 LoRA 参数的目录。如果该目录不存在,将会自动创建。
  • transformer_lora_layers (dict[str, torch.nn.Module] 或 dict[str, torch.Tensor]) — 与 transformer 对应的 LoRA 层的 state dict。
  • text_encoder_lora_layers (dict[str, torch.nn.Module] 或 dict[str, torch.Tensor]) — 与 text_encoder 对应的 LoRA 层的 state dict。由于它来自 🤗 Transformers,因此必须显式传入文本编码器的 LoRA state dict。
  • is_main_process (bool,可选,默认为 True) — 调用此函数的进程是否为主进程。在分布式训练期间,当需要在所有进程上调用此函数时非常有用。在这种情况下,仅在主进程上设置 is_main_process=True,以避免竞态条件。
  • save_function (Callable) — 用于保存状态字典的函数。在分布式训练期间,当您需要用其他方法替换 torch.save 时非常有用。可以通过环境变量 DIFFUSERS_SAVE_MODE 进行配置。
  • safe_serialization(bool,可选,默认为 True)—— 是否使用 safetensors 保存模型,还是使用传统的基于 pickle 的 PyTorch 方式。
  • transformer_lora_adapter_metadata — 与 transformer 关联的 LoRA 适配器元数据,将随 state dict 一起序列化。
  • text_encoder_lora_adapter_metadata — 与文本编码器关联的 LoRA 适配器元数据,将随状态字典一起序列化。

保存与 UNet 和文本编码器对应的 LoRA 参数。

unfuse_lora

< >

( components: list = ['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 = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

Flux3LoraLoaderMixin

类 diffusers.loaders.Flux3LoraLoaderMixin

< >

( )

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

BriaFibo2LoraLoaderMixin

class diffusers.loaders.BriaFibo2LoraLoaderMixin

< >

( )

将 LoRA 层加载到 BriaFibo2Transformer2DModel 中。专用于 BriaFibo2Pipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

ErnieImageLoraLoaderMixin

类 diffusers.loaders.ErnieImageLoraLoaderMixin

< >

( )

将 LoRA 层加载到 ErnieImageTransformer2DModel 中。专用于 ErnieImagePipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

LTX2LoraLoaderMixin

类 diffusers.loaders.LTX2LoraLoaderMixin

< >

( )

将 LoRA 层加载到 LTX2VideoTransformer3DModel 中。专用于 LTX2Pipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

CogVideoXLoraLoaderMixin

类 diffusers.loaders.CogVideoXLoraLoaderMixin

< >

( )

将 LoRA 层加载到 CogVideoXTransformer3DModel 中。专用于 CogVideoXPipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

Mochi1LoraLoaderMixin

类 diffusers.loaders.Mochi1LoraLoaderMixin

< >

( )

将 LoRA 层加载到 MochiTransformer3DModel 中。专用于 MochiPipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

AuraFlowLoraLoaderMixin

类 diffusers.loaders.AuraFlowLoraLoaderMixin

< >

( )

将 LoRA 层加载到 AuraFlowTransformer2DModel 中。专用于 AuraFlowPipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer', 'text_encoder']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

LTXVideoLoraLoaderMixin

类 diffusers.loaders.LTXVideoLoraLoaderMixin

< >

( )

将 LoRA 层加载到 LTXVideoTransformer3DModel 中。专用于 LTXPipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

SanaLoraLoaderMixin

class diffusers.loaders.SanaLoraLoaderMixin

< >

( )

将 LoRA 层加载到 SanaTransformer2DModel 中。专用于 SanaPipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

HeliosLoraLoaderMixin

类 diffusers.loaders.HeliosLoraLoaderMixin

< >

( )

将 LoRA 层加载到 HeliosTransformer3DModel 中。专用于 HeliosPipeline 和 HeliosPyramidPipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

HunyuanVideoLoraLoaderMixin

类 diffusers.loaders.HunyuanVideoLoraLoaderMixin

< >

( )

将 LoRA 层加载到 HunyuanVideoTransformer3DModel 中。专用于 HunyuanVideoPipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

Lumina2LoraLoaderMixin

类 diffusers.loaders.Lumina2LoraLoaderMixin

< >

( )

将 LoRA 层加载到 Lumina2Transformer2DModel 中。专用于 Lumina2Pipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

CogView4LoraLoaderMixin

类 diffusers.loaders.CogView4LoraLoaderMixin

< >

( )

将 LoRA 层加载到 WanTransformer3DModel 中。专用于 CogView4Pipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

WanLoraLoaderMixin

类 diffusers.loaders.WanLoraLoaderMixin

< >

( )

将 LoRA 层加载到 WanTransformer3DModel 中。专用于 WanPipeline 和 [WanImageToVideoPipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

SkyReelsV2LoraLoaderMixin

class diffusers.loaders.SkyReelsV2LoraLoaderMixin

< >

( )

将 LoRA 层加载到 SkyReelsV2Transformer3DModel 中。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

AmusedLoraLoaderMixin

class 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 = Nonetransformer_lora_layers: dict = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = True )

参数

  • save_directory (str 或 os.PathLike) — 用于保存 LoRA 参数的目录。如果该目录不存在,将会自动创建。
  • unet_lora_layers (dict[str, torch.nn.Module] 或 dict[str, torch.Tensor]) — 与 unet 对应的 LoRA 层的 state dict。
  • text_encoder_lora_layers (dict[str, torch.nn.Module] 或 dict[str, torch.Tensor]) — 与 text_encoder 对应的 LoRA 层的 state dict。由于它来自 🤗 Transformers,因此必须显式传入文本编码器的 LoRA state dict。
  • is_main_process (bool,可选,默认为 True) — 调用此函数的进程是否为主进程。在分布式训练期间,当需要在所有进程上调用此函数时非常有用。在这种情况下,仅在主进程上设置 is_main_process=True,以避免竞态条件。
  • save_function (Callable) — 用于保存状态字典的函数。在分布式训练期间,当您需要用其他方法替换 torch.save 时非常有用。可以通过环境变量 DIFFUSERS_SAVE_MODE 进行配置。
  • safe_serialization(bool,可选,默认为 True)—— 是否使用 safetensors 保存模型,还是使用传统的基于 pickle 的 PyTorch 方式。

保存与 UNet 和文本编码器对应的 LoRA 参数。

AnimaLoraLoaderMixin

类 diffusers.loaders.AnimaLoraLoaderMixin

< >

( )

将 LoRA 层加载到 CosmosTransformer3DModel 和 AnimaTextConditioner 中。

fuse_lora

< >

( components: list = ['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 = ['transformer', 'text_conditioner']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

AceStepLoraLoaderMixin

类 diffusers.loaders.AceStepLoraLoaderMixin

< >

( )

将 LoRA 层加载到 AceStepTransformer1DModel 中。专用于 AceStepPipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

HiDreamImageLoraLoaderMixin

类 diffusers.loaders.HiDreamImageLoraLoaderMixin

< >

( )

将 LoRA 层加载到 HiDreamImageTransformer2DModel 中。专用于 HiDreamImagePipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

QwenImageLoraLoaderMixin

类 diffusers.loaders.QwenImageLoraLoaderMixin

< >

( )

将 LoRA 层加载到 QwenImageTransformer2DModel 中。专用于 QwenImagePipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

ZImageLoraLoaderMixin

类 diffusers.loaders.ZImageLoraLoaderMixin

< >

( )

将 LoRA 层加载到 ZImageTransformer2DModel 中。专用于 ZImagePipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

CosmosLoraLoaderMixin

类 diffusers.loaders.CosmosLoraLoaderMixin

< >

( )

将 LoRA 层加载到 CosmosTransformer3DModel 中,专用于 Cosmos2_5_PredictBasePipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

KandinskyLoraLoaderMixin

class diffusers.loaders.KandinskyLoraLoaderMixin

< >

( )

将 LoRA 层加载到 Kandinsky5Transformer3DModel 中,

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

Ideogram4LoraLoaderMixin

类 diffusers.loaders.Ideogram4LoraLoaderMixin

< >

( )

将 LoRA 层加载到 Ideogram4Transformer2DModel 中。专用于 Ideogram4Pipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['transformer']**kwargs )

有关更多详细信息,请参阅 unfuse_lora()。

Krea2LoraLoaderMixin

类 diffusers.loaders.Krea2LoraLoaderMixin

< >

( )

将 LoRA 层加载到 Krea2Transformer2DModel 中。专用于 Krea2Pipeline。

fuse_lora

< >

( components: list = ['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 = 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 = ['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。

DiffSynth-Studio LoRA(例如 DiffSynth-Studio/MiniMax-H3-LoRA-LineartAnime)是针对原始检查点中按头交错的融合 QKV 进行训练的,并在转换时进行解交错。它们的 fp32 因子使得未融合的 LoRA 路径以 fp32 进行计算;在加载模型后对模型执行 .to(torch.bfloat16) 可恢复 bf16 内存预算。

LoRAs trained against a pruned checkpoint (the *_pruned_* files in Comfy-Org/MiniMax-H3; joyfox/MiniMax-H3-Turbo is one) fail with a size mismatch. Alpha-less files load at alpha == rank (scale 1.0, the convention stated by e.g. larryvrh/MiniMax-H3-Turbo-Lora); a __metadata__ alpha entry (e.g. lightx2v/Minimax-h3-Turbo’s 8-step file), when present, is honored instead.

fuse_lora

< >

( components: list = ['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;对于通过 load_into_transformer_ref=True 路由到此处的文件,该值为 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 = Falseload_into_transformer_ref: bool = False**kwargs )

参数

  • load_into_transformer_ref (bool,默认为 False) — 将带有 transformer. 前缀的层加载到 transformer_ref 分区中——即 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 = Nonetransformer_ref_lora_layers: dict = 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 )

保存一个或两个 MiniMax-H3 分区的 LoRA 层。LoRA 所属的分区无法从其键中恢复,因此这是发布记录该信息的 H3 LoRA 的唯一方式。更多信息请参阅 save_lora_weights()。

unfuse_lora

< >

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

有关更多详细信息,请参阅 unfuse_lora()。

PikaH3FlexLoraLoaderMixin

类 diffusers.loaders.PikaH3FlexLoraLoaderMixin

< >

( )

将 LoRA 层加载到 MiniMaxH3Transformer3DModel 中。专用于 PikaH3FlexModularPipeline。

Pika H3 Flex 版本是针对两个 MiniMax-H3 transformer 分区的一对秩为 128 的适配器,以 diffusers 模块名称的纯 PEFT 转储形式发布(fl2va/adapter.safetensors 对应 transformer,ref2va/adapter.safetensors 对应 transformer_ref)。这些不含 alpha 的文件在 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 的、可注入 LoRA 的组件列表。
  • 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 组件的权重也可以是一个包含块缩放的嵌套字典。单个标量或字典会应用于每个适配器。列表必须按 adapter_names 的顺序,为每个适配器包含一个标量、字典或 None。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 设备、字符串或整数。

将 adapter_names 中列出的 LoRA 移动到目标设备。如果您想加载多个适配器并释放一些 GPU 内存,则可以将 LoRA 卸载到 CPU,此操作非常有用。

将 LoRA 适配器卸载到 CPU 后,只要模型的其余部分仍在 GPU 上,这些 LoRA 适配器就无法再用于推理,因为这会导致设备不匹配。请记住,在使用这些 LoRA 适配器进行推理之前,先将设备设置回 GPU。

>>> 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) — 是否解除 UNet LoRA 参数的融合。
  • unfuse_text_encoder (bool,默认为 True) — 是否解除文本编码器的 LoRA 参数融合。如果文本编码器未通过 monkey-patch 方式注入 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 )

将 LoRA 层的 state dict(可选包含元数据)写入磁盘。

Update on GitHub