Diffusers 文档

PEFT

Hugging Face's logo
加入 Hugging Face 社区

并获得增强型文档体验

开始使用

PEFT

扩散器支持使用 LoRA 等适配器加载 PEFT 库,使用 PeftAdapterMixin 类。这使得扩散器中的建模类,如 UNet2DConditionModelSD3Transformer2DModel 可以使用适配器进行操作。

有关如何在扩散器中使用 PEFT 进行推理的概述,请参阅 使用 PEFT 进行推理 教程。

PeftAdapterMixin

class diffusers.loaders.PeftAdapterMixin

< >

( )

一个包含所有用于加载和使用 PEFT 库中支持的适配器权重的函数的类。有关适配器以及将其注入基本模型的更多详细信息,请查看 PEFT 文档

安装最新版本的 PEFT,并使用此 mixin 来

  • 在模型中附加新的适配器。
  • 附加多个适配器并迭代地激活/停用它们。
  • 从模型中激活/停用所有适配器。
  • 获取活动适配器列表。

active_adapters

< >

( )

获取模型当前活动的适配器列表。

如果您不熟悉适配器和 PEFT 方法,我们建议您阅读 PEFT 文档 中的更多信息。

add_adapter

< >

( adapter_config adapter_name: str = 'default' )

参数

  • adapter_config ([~peft.PeftConfig]) — 要添加的适配器的配置;支持的适配器是非前缀调整和适配提示方法。
  • adapter_name (str, 可选, 默认值 "default") — 要添加的适配器的名称。 如果未传递名称,则会为适配器分配默认名称。

将新的适配器添加到当前模型以进行训练。 如果未传递适配器名称,则会为适配器分配一个默认名称,以遵循 PEFT 库的约定。

如果您不熟悉适配器和 PEFT 方法,我们邀请您阅读 PEFT 的更多信息 文档.

delete_adapters

< >

( adapter_names: Union )

参数

  • adapter_names (Union[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_adapters

< >

( )

禁用附加到模型的所有适配器,并仅使用基本模型进行推理。

如果您不熟悉适配器和 PEFT 方法,我们建议您阅读 PEFT 文档 中的更多信息。

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_adapters

< >

( )

启用附加到模型的适配器。 模型使用 self.active_adapters() 来检索要启用的适配器列表。

如果您不熟悉适配器和 PEFT 方法,我们建议您阅读 PEFT 文档 中的更多信息。

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

set_adapter

< >

( adapter_name: Union )

参数

  • adapter_name (Union[str, List[str]])) — 要设置的适配器列表或单个适配器情况下的适配器名称。

通过强制模型仅使用该适配器并禁用其他适配器来设置特定适配器。

如果您不熟悉适配器和 PEFT 方法,我们建议您阅读 PEFT 文档 中的更多信息。

set_adapters

  • adapter_names (List[str]str) — 要使用的适配器名称。
  • adapter_weights (Union[List[float], float], 可选) — 用于 UNet 的适配器权重。 如果为 None,则所有适配器的权重都设置为 1.0

设置当前活动的适配器以供 UNet 使用。

示例

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("nerijs/pixel-art-xl", weight_name="pixel-art-xl.safetensors", adapter_name="pixel")
pipeline.set_adapters(["cinematic", "pixel"], adapter_weights=[0.5, 0.5])
< > 在 GitHub 上更新