Diffusers 文件

LoRA

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

LoRA

LoRA 是一種快速輕量級的訓練方法,它插入並訓練數量顯著減少的引數,而不是所有模型引數。這會生成一個更小的檔案(約 100 MB),並使其更容易快速訓練模型以學習新概念。LoRA 權重通常載入到去噪器、文字編碼器或兩者中。去噪器通常對應於 UNet(例如 UNet2DConditionModel)或 Transformer(例如 SD3Transformer2DModel)。有幾個用於載入 LoRA 權重的類

  • StableDiffusionLoraLoaderMixin 提供了載入和解除安裝、融合和解融合、啟用和停用以及更多管理 LoRA 權重的函式。這個類可以與任何模型一起使用。
  • StableDiffusionXLLoraLoaderMixinStable Diffusion (SDXL) 版本的 StableDiffusionLoraLoaderMixin 類,用於載入和儲存 LoRA 權重。它只能與 SDXL 模型一起使用。
  • SD3LoraLoaderMixinStable Diffusion 3 提供了類似的功能。
  • FluxLoraLoaderMixinFlux 提供了類似的功能。
  • CogVideoXLoraLoaderMixinCogVideoX 提供了類似的功能。
  • Mochi1LoraLoaderMixinMochi 提供了類似的功能。
  • AuraFlowLoraLoaderMixinAuraFlow 提供了類似的功能。
  • LTXVideoLoraLoaderMixinLTX-Video 提供了類似的功能。
  • SanaLoraLoaderMixinSana 提供了類似的功能。
  • HunyuanVideoLoraLoaderMixinHunyuanVideo 提供了類似的功能。
  • Lumina2LoraLoaderMixinLumina2 提供了類似的功能。
  • WanLoraLoaderMixinWan 提供了類似的功能。
  • CogView4LoraLoaderMixinCogView4 提供了類似的功能。
  • AmusedLoraLoaderMixin 用於 AmusedPipeline
  • HiDreamImageLoraLoaderMixinHiDream Image 提供了類似的功能。
  • LoraBaseMixin 提供了一個基類,其中包含用於融合、解融合、解除安裝 LoRA 等的實用方法。

要了解有關如何載入 LoRA 權重的更多資訊,請參閱 LoRA 載入指南。

LoraBaseMixin

diffusers.loaders.lora_base.LoraBaseMixin

< >

( )

用於處理 LoRA 的實用類。

刪除介面卡

< >

( adapter_names: typing.Union[typing.List[str], str] )

引數

  • 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")

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

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

啟用 LoRA 熱插拔

< >

( **kwargs )

引數

  • target_rank (int) — 將要載入的所有介面卡中最高的秩。
  • check_compiled (str, 可選, 預設為 "error") — 如何處理已編譯的模型。檢查可以返回以下訊息:
    • “error”(預設):引發錯誤
    • “warn”:發出警告
    • “ignore”:不做任何事

熱插拔介面卡,而不會觸發模型的重新編譯,或者如果載入的介面卡的秩不同。

融合 LoRA

< >

( components: typing.List[str] = [] lora_scale: float = 1.0 safe_fusing: bool = False adapter_names: typing.Optional[typing.List[str]] = None **kwargs )

引數

  • components — (List[str]): 要將 LoRA 融合到其中的 LoRA 可注入元件列表。
  • lora_scale (float, 預設為 1.0) — 控制 LoRA 引數對輸出的影響程度。
  • safe_fusing (bool, 預設為 False) — 是否在融合前檢查融合權重中的 NaN 值,如果值為 NaN 則不融合它們。
  • adapter_names (List[str], 可選) — 用於融合的介面卡名稱。如果未傳遞,則所有活動介面卡都將融合。

將 LoRA 引數融合到相應塊的原始引數中。

這是一個實驗性 API。

示例

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)

獲取活動介面卡

< >

( )

獲取當前活動介面卡列表。

示例

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

獲取介面卡列表

< >

( )

獲取管道中所有可用介面卡的當前列表。

設定介面卡

< >

( adapter_names: typing.Union[typing.List[str], str] adapter_weights: typing.Union[float, typing.Dict, typing.List[float], typing.List[typing.Dict], NoneType] = None )

引數

  • adapter_names (List[str]str) — 要使用的介面卡名稱。
  • adapter_weights (Union[List[float], float], 可選) — 與 UNet 一起使用的介面卡權重。如果為 None,則所有介面卡的權重都設定為 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("nerijs/pixel-art-xl", weight_name="pixel-art-xl.safetensors", adapter_name="pixel")
pipeline.set_adapters(["cinematic", "pixel"], adapter_weights=[0.5, 0.5])

設定 LoRA 裝置

< >

( adapter_names: typing.List[str] device: typing.Union[torch.device, str, int] )

引數

  • adapter_names (List[str]) — 要將裝置傳送到的介面卡列表。
  • device (Union[torch.device, str, int]) — 將介面卡傳送到的裝置。可以是 torch 裝置、字串或整數。

adapter_names 中列出的 LoRA 移動到目標裝置。在您想要載入多個介面卡並釋放一些 GPU 記憶體時很有用。

解融合 LoRA

< >

( components: typing.List[str] = [] **kwargs )

引數

  • components (List[str]) — 要從中解融合 LoRA 的 LoRA 可注入元件列表。
  • unfuse_unet (bool, 預設為 True) — 是否解融合 UNet LoRA 引數。如果文字編碼器沒有透過 LoRA 引數進行猴子補丁,則不會有任何效果。
  • unfuse_text_encoder (bool, 預設為 True) — 是否解融合文字編碼器 LoRA 引數。如果文字編碼器沒有透過 LoRA 引數進行猴子補丁,則不會有任何效果。

反轉 pipe.fuse_lora() 的效果。

這是一個實驗性 API。

解除安裝 LoRA 權重

< >

( )

解除安裝 LoRA 引數。

示例

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

寫入 LoRA 層

< >

( state_dict: typing.Dict[str, torch.Tensor] save_directory: str is_main_process: bool weight_name: str save_function: typing.Callable safe_serialization: bool lora_adapter_metadata: typing.Optional[dict] = None )

將 LoRA 層的狀態字典(可選包含元資料)寫入磁碟。

StableDiffusionLoraLoaderMixin

diffusers.loaders.StableDiffusionLoraLoaderMixin

< >

( )

將 LoRA 層載入到 Stable Diffusion UNet2DConditionModelCLIPTextModel 中。

將 LoRA 載入到文字編碼器中

< >

( state_dict network_alphas text_encoder prefix = None lora_scale = 1.0 adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 一個包含 LoRA 層引數的標準狀態字典。鍵應以額外的 text_encoder 為字首,以區分 UNet LoRA 層。
  • network_alphas (Dict[str, float]) — 用於穩定學習和防止下溢的網路 alpha 值。此值與 kohya-ss 訓練器指令碼中的 --network_alpha 選項具有相同的含義。請參閱此連結
  • text_encoder (CLIPTextModel) — 要載入 LoRA 層的文字編碼器模型。
  • prefix (str) — state_dicttext_encoder 的預期字首。
  • lora_scale (float) — 在與常規 lora 層的輸出相加之前,lora 線性層輸出的縮放比例。
  • adapter_name (str, 可選) — 用於引用載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱 load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。如果提供,peftLoraConfig 引數將不會從狀態字典中派生。

這將把 state_dict 中指定的 LoRA 層載入到 text_encoder 中。

load_lora_into_unet

< 來源 >

( state_dict network_alphas unet adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 包含 lora 層引數的標準狀態字典。鍵可以直接索引到 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 介面卡元資料。如果提供,peftLoraConfig 引數將不會從狀態字典中派生。

這將把 state_dict 中指定的 LoRA 層載入到 unet 中。

load_lora_weights

< 來源 >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] adapter_name: typing.Optional[str] = None hotswap: bool = False **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 請參閱 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.unetself.text_encoder 中。

所有 kwargs 都轉發到 self.lora_state_dict

有關如何載入 state dict 的更多詳細資訊,請參閱 lora_state_dict()

有關如何將 state dict 載入到 self.unet 中的更多詳細資訊,請參閱 load_lora_into_unet()

有關如何將 state dict 載入到 self.text_encoder 中的更多詳細資訊,請參閱 load_lora_into_text_encoder()

lora_state_dict

< 來源 >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 可以是:

    • 一個字串,託管在 Hub 上的預訓練模型的 *模型 ID*(例如 google/ddpm-celebahq-256)。
    • 一個 *目錄* 的路徑(例如 ./my_model_directory),包含使用 ModelMixin.save_pretrained() 儲存的模型權重。
    • 一個 torch 狀態字典
  • cache_dir (Union[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 (strbool, 可選) — 用作遠端檔案的 HTTP 承載授權的令牌。如果為 True,則使用從 diffusers-cli login 生成的令牌(儲存在 ~/.huggingface 中)。
  • revision (str, 可選, 預設為 "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • subfolder (str, 可選, 預設為 "") — 模型檔案在 Hub 或本地大型模型倉庫中的子資料夾位置。
  • weight_name (str, 可選, 預設為 None) — 序列化狀態字典的檔名。
  • return_lora_metadata (bool, 可選, 預設為 False) — 啟用時,額外返回 LoRA 介面卡元資料,通常在狀態字典中找到。

返回 lora 權重和網路 alpha 的狀態字典。

我們支援有限地載入 A1111 格式的 LoRA 檢查點。

此函式是實驗性的,未來可能會更改。

save_lora_weights

< 來源 >

( save_directory: typing.Union[str, os.PathLike] unet_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None text_encoder_lora_layers: typing.Dict[str, torch.nn.modules.module.Module] = None is_main_process: bool = True weight_name: str = None save_function: typing.Callable = None safe_serialization: bool = True unet_lora_adapter_metadata = None text_encoder_lora_adapter_metadata = None )

引數

  • save_directory (stros.PathLike) — 儲存 LoRA 引數的目錄。如果不存在將建立。
  • unet_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 對應於 unet 的 LoRA 層狀態字典。
  • text_encoder_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 對應於 text_encoder 的 LoRA 層狀態字典。必須明確傳遞文字編碼器 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 — 與 unet 相關的 LoRA 介面卡元資料,將與狀態字典一起序列化。
  • text_encoder_lora_adapter_metadata — 與文字編碼器相關的 LoRA 介面卡元資料,將與狀態字典一起序列化。

儲存對應於 UNet 和文字編碼器的 LoRA 引數。

StableDiffusionXLLoraLoaderMixin

class diffusers.loaders.StableDiffusionXLLoraLoaderMixin

< 來源 >

( )

將 LoRA 層載入到 Stable Diffusion XL UNet2DConditionModelCLIPTextModelCLIPTextModelWithProjection 中。

將 LoRA 載入到文字編碼器中

< 來源 >

( state_dict network_alphas text_encoder prefix = None lora_scale = 1.0 adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 包含 lora 層引數的標準狀態字典。鍵應以附加的 text_encoder 為字首,以區分 unet lora 層。
  • network_alphas (Dict[str, float]) — 用於穩定學習和防止下溢的網路 alpha 值。此值與 kohya-ss 訓練器指令碼中的 --network_alpha 選項具有相同的含義。請參閱此連結
  • text_encoder (CLIPTextModel) — 要載入 LoRA 層的文字編碼器模型。
  • prefix (str) — state_dicttext_encoder 的預期字首。
  • lora_scale (float) — 在與常規 lora 層輸出相加之前,lora 線性層輸出的縮放比例。
  • adapter_name (str, 可選) — 用於引用載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱 load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。如果提供,peftLoraConfig 引數將不會從狀態字典中派生。

這將把 state_dict 中指定的 LoRA 層載入到 text_encoder 中。

load_lora_into_unet

< 來源 >

( state_dict network_alphas unet adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 包含 lora 層引數的標準狀態字典。鍵可以直接索引到 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 介面卡元資料。如果提供,peftLoraConfig 引數將不會從狀態字典中推導。

這將把 state_dict 中指定的 LoRA 層載入到 unet 中。

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] adapter_name: typing.Optional[str] = None hotswap: bool = False **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 參見lora_state_dict()
  • adapter_name (str, 可選) — 用於引用已載入的介面卡模型的介面卡名稱。如果未指定,將使用 `default_{i}`,其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 僅載入預訓練的 LoRA 權重,而不初始化隨機權重,從而加快模型載入速度。
  • hotswap (bool, 可選) — 參見load_lora_weights()
  • kwargs (dict, 可選) — 參見lora_state_dict()

pretrained_model_name_or_path_or_dict 中指定的 LoRA 權重載入到 self.unetself.text_encoder 中。

所有 kwargs 都轉發到 self.lora_state_dict

有關如何載入 state dict 的更多詳細資訊,請參閱 lora_state_dict()

有關如何將 state dict 載入到 self.unet 中的更多詳細資訊,請參閱 load_lora_into_unet()

有關如何將 state dict 載入到 self.text_encoder 中的更多詳細資訊,請參閱 load_lora_into_text_encoder()

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 可以是以下任意一種:

    • Hub 上託管的預訓練模型的模型 ID 字串(例如 `google/ddpm-celebahq-256`)。
    • 包含使用 ModelMixin.save_pretrained() 儲存的模型權重的目錄路徑(例如 `./my_model_directory`)。
    • 一個 torch 狀態字典
  • cache_dir (Union[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 (strbool, 可選) — 用於遠端檔案的 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 介面卡元資料,通常在狀態字典中找到。

返回 lora 權重和網路 alpha 的狀態字典。

我們支援有限地載入 A1111 格式的 LoRA 檢查點。

此函式是實驗性的,未來可能會更改。

save_lora_weights

< >

( save_directory: typing.Union[str, os.PathLike] unet_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None text_encoder_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None text_encoder_2_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None is_main_process: bool = True weight_name: str = None save_function: typing.Callable = None safe_serialization: bool = True unet_lora_adapter_metadata = None text_encoder_lora_adapter_metadata = None text_encoder_2_lora_adapter_metadata = None )

引數

  • save_directory (stros.PathLike) — 儲存 LoRA 引數的目錄。如果不存在,將建立。
  • unet_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 對應於 unet 的 LoRA 層狀態字典。
  • text_encoder_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 對應於 text_encoder 的 LoRA 層狀態字典。必須顯式傳遞文字編碼器 LoRA 狀態字典,因為它來自 🤗 Transformers。
  • text_encoder_2_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 對應於 text_encoder_2 的 LoRA 層狀態字典。必須顯式傳遞文字編碼器 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 — 與 unet 關聯的 LoRA 介面卡元資料,將與狀態字典一起序列化。
  • text_encoder_lora_adapter_metadata — 與文字編碼器關聯的 LoRA 介面卡元資料,將與狀態字典一起序列化。
  • text_encoder_2_lora_adapter_metadata — 與第二個文字編碼器關聯的 LoRA 介面卡元資料,將與狀態字典一起序列化。

儲存對應於 UNet 和文字編碼器的 LoRA 引數。

SD3LoraLoaderMixin

class diffusers.loaders.SD3LoraLoaderMixin

< >

( )

將 LoRA 層載入到 SD3Transformer2DModelCLIPTextModelCLIPTextModelWithProjection 中。

特定於 StableDiffusion3Pipeline

將 LoRA 載入到文字編碼器中

< >

( state_dict network_alphas text_encoder prefix = None lora_scale = 1.0 adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 包含 lora 層引數的標準狀態字典。鍵應以額外的 text_encoder 為字首,以區分 unet lora 層。
  • network_alphas (Dict[str, float]) — 用於穩定學習和防止下溢的網路 alpha 值。此值與 kohya-ss 訓練器指令碼中的 --network_alpha 選項具有相同的含義。請參閱 此連結
  • text_encoder (CLIPTextModel) — 要載入 LoRA 層的文字編碼器模型。
  • prefix (str) — state_dicttext_encoder 的預期字首。
  • lora_scale (float) — lora 線性層輸出在與常規 lora 層輸出相加之前要縮放的量。
  • adapter_name (str, 可選) — 用於引用已載入的介面卡模型的介面卡名稱。如果未指定,將使用 `default_{i}`,其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 僅載入預訓練的 LoRA 權重,而不初始化隨機權重,從而加快模型載入速度。
  • hotswap (bool, 可選) — 參見load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。如果提供,peftLoraConfig 引數將不會從狀態字典中推導。

這將把 state_dict 中指定的 LoRA 層載入到 text_encoder 中。

load_lora_into_transformer

< >

( state_dict transformer adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 包含 lora 層引數的標準狀態字典。鍵可以直接索引到 unet 中,也可以以額外的 unet 為字首,以區分文字編碼器 lora 層。
  • transformer (SD3Transformer2DModel) — 要載入 LoRA 層的 Transformer 模型。
  • adapter_name (str, 可選) — 用於引用已載入的介面卡模型的介面卡名稱。如果未指定,將使用 `default_{i}`,其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 僅載入預訓練的 LoRA 權重,而不初始化隨機權重,從而加快模型載入速度。
  • hotswap (bool, 可選) — 參見load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。如果提供,peftLoraConfig 引數將不會從狀態字典中推導。

這將把 state_dict 中指定的 LoRA 層載入到 transformer 中。

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] adapter_name = None hotswap: bool = False **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 參見lora_state_dict()
  • adapter_name (str, 可選) — 用於引用已載入的介面卡模型的介面卡名稱。如果未指定,將使用 `default_{i}`,其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 僅載入預訓練的 LoRA 權重,而不初始化隨機權重,從而加快模型載入速度。
  • hotswap (bool, 可選) — 參見load_lora_weights()
  • kwargs (dict, 可選) — 參見lora_state_dict()

pretrained_model_name_or_path_or_dict 中指定的 LoRA 權重載入到 self.unetself.text_encoder 中。

所有 kwargs 都轉發到 self.lora_state_dict

有關如何載入 state dict 的更多詳細資訊,請參閱 lora_state_dict()

有關狀態字典如何載入到 self.transformer 中的更多詳細資訊,請參閱 ~loaders.StableDiffusionLoraLoaderMixin.load_lora_into_transformer

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 可以是以下任意一種:

    • Hub 上託管的預訓練模型的模型 ID 字串(例如 `google/ddpm-celebahq-256`)。
    • 包含使用 ModelMixin.save_pretrained() 儲存的模型權重的目錄路徑(例如 `./my_model_directory`)。
    • 一個 torch 狀態字典
  • cache_dir (Union[str, os.PathLike], 可選) — 如果不使用標準快取,則為下載的預訓練模型配置的快取目錄路徑。
  • force_download (bool, optional, 預設為 False) — 是否強制(重新)下載模型權重和配置檔案,如果快取版本存在則覆蓋。
  • proxies (Dict[str, str], 可選) — 要按協議或端點使用的代理伺服器字典,例如 {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。代理用於每個請求。
  • local_files_only (bool, 可選, 預設為 False) — 是否只加載本地模型權重和配置檔案。如果設定為 True,模型將不會從 Hub 下載。
  • token (strbool, 可選) — 用於遠端檔案的 HTTP Bearer 授權的令牌。如果為 True,則使用 diffusers-cli login 生成的令牌(儲存在 ~/.huggingface 中)。
  • revision (str, 可選, 預設為 "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • subfolder (str, 可選, 預設為 "") — Hub 上或本地大型模型倉庫中模型檔案的子資料夾位置。
  • return_lora_metadata (bool, 可選, 預設為 False) — 啟用時,額外返回 LoRA 介面卡元資料,通常在狀態字典中找到。

返回 lora 權重和網路 alpha 的狀態字典。

我們支援有限地載入 A1111 格式的 LoRA 檢查點。

此函式是實驗性的,未來可能會更改。

save_lora_weights

< >

( save_directory: typing.Union[str, os.PathLike] transformer_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None text_encoder_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None text_encoder_2_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None is_main_process: bool = True weight_name: str = None save_function: typing.Callable = None safe_serialization: bool = True transformer_lora_adapter_metadata = None text_encoder_lora_adapter_metadata = None text_encoder_2_lora_adapter_metadata = None )

引數

  • save_directory (stros.PathLike) — 儲存 LoRA 引數的目錄。如果不存在,則會建立。
  • transformer_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 對應於 transformer 的 LoRA 層狀態字典。
  • text_encoder_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 對應於 text_encoder 的 LoRA 層狀態字典。必須顯式傳遞文字編碼器 LoRA 狀態字典,因為它來自 🤗 Transformers。
  • text_encoder_2_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 對應於 text_encoder_2 的 LoRA 層狀態字典。必須顯式傳遞文字編碼器 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 — 與 transformer 相關的 LoRA 介面卡元資料,將與狀態字典一起序列化。
  • text_encoder_lora_adapter_metadata — 與文字編碼器相關的 LoRA 介面卡元資料,將與狀態字典一起序列化。
  • text_encoder_2_lora_adapter_metadata — 與第二個文字編碼器相關的 LoRA 介面卡元資料,將與狀態字典一起序列化。

儲存對應於 UNet 和文字編碼器的 LoRA 引數。

解融合 LoRA

< >

( components: typing.List[str] = ['transformer', 'text_encoder', 'text_encoder_2'] **kwargs )

引數

  • components (List[str]) — 要從中解除 LoRA 的 LoRA 可注入元件列表。
  • unfuse_transformer (bool, 預設為 True) — 是否解除 UNet LoRA 引數的融合。
  • unfuse_text_encoder (bool, 預設為 True) — 是否解除文字編碼器 LoRA 引數的融合。如果文字編碼器未透過 LoRA 引數進行猴子補丁,則不會產生任何影響。

反轉 pipe.fuse_lora() 的效果。

這是一個實驗性 API。

FluxLoraLoaderMixin

class diffusers.loaders.FluxLoraLoaderMixin

< >

( )

將 LoRA 層載入到 FluxTransformer2DModel, CLIPTextModel

特定於 StableDiffusion3Pipeline

將 LoRA 載入到文字編碼器中

< >

( state_dict network_alphas text_encoder prefix = None lora_scale = 1.0 adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 包含 LoRA 層引數的標準狀態字典。鍵應以額外的 text_encoder 作為字首,以區分 UNet LoRA 層。
  • network_alphas (Dict[str, float]) — 用於穩定學習和防止下溢的網路 alpha 值。此值與 kohya-ss 訓練器指令碼中的 --network_alpha 選項具有相同的含義。請參閱此連結
  • text_encoder (CLIPTextModel) — 要載入 LoRA 層的文字編碼器模型。
  • prefix (str) — state_dicttext_encoder 的預期字首。
  • lora_scale (float) — LoRA 線性層輸出在與常規 LoRA 層輸出相加之前的縮放比例。
  • adapter_name (str, 可選) — 用於引用已載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。如果提供,peftLoraConfig 引數將不會從狀態字典中派生。

這將把 state_dict 中指定的 LoRA 層載入到 text_encoder 中。

load_lora_into_transformer

< >

( state_dict network_alphas transformer adapter_name = None metadata = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False )

引數

  • state_dict (dict) — 包含 LoRA 層引數的標準狀態字典。鍵可以直接索引到 unet 中,也可以帶有額外的 unet 字首,用於區分文字編碼器 LoRA 層。
  • network_alphas (Dict[str, float]) — 用於穩定學習和防止下溢的網路 alpha 值。此值與 kohya-ss 訓練器指令碼中的 --network_alpha 選項具有相同的含義。請參閱此連結
  • transformer (FluxTransformer2DModel) — 要載入 LoRA 層的 Transformer 模型。
  • adapter_name (str, 可選) — 用於引用已載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。如果提供,peftLoraConfig 引數將不會從狀態字典中派生。

這將把 state_dict 中指定的 LoRA 層載入到 transformer 中。

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] adapter_name: typing.Optional[str] = None hotswap: bool = False **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 請參閱lora_state_dict()
  • adapter_name (str, 可選) — 用於引用已載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱load_lora_weights()
  • kwargs (dict, 可選) — 請參閱lora_state_dict()

pretrained_model_name_or_path_or_dict 中指定的 LoRA 權重載入到 self.transformerself.text_encoder 中。

所有 kwargs 都轉發到 self.lora_state_dict

有關如何載入 state dict 的更多詳細資訊,請參閱 lora_state_dict()

有關狀態字典如何載入到 self.transformer 中的更多詳細資訊,請參閱 ~loaders.StableDiffusionLoraLoaderMixin.load_lora_into_transformer

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] return_alphas: bool = False **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 可以是以下型別:

    • 一個字串,即託管在 Hub 上的預訓練模型的 *模型 ID*(例如 google/ddpm-celebahq-256)。
    • 一個 *目錄* 路徑(例如 ./my_model_directory),包含使用 ModelMixin.save_pretrained() 儲存的模型權重。
    • 一個 torch 狀態字典
  • cache_dir (Union[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 (strbool, 可選) — 用於遠端檔案的 HTTP 授權令牌。如果為 True,則使用 diffusers-cli login 生成的令牌(儲存在 ~/.huggingface 中)。
  • revision (str, 可選, 預設為 "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • subfolder (str, 可選, 預設為 "") — 模型檔案在 Hub 或本地較大模型倉庫中的子資料夾位置。
  • return_lora_metadata (bool, 可選, 預設為 False) — 啟用時,額外返回 LoRA 介面卡元資料,通常在狀態字典中找到。

返回 lora 權重和網路 alpha 的狀態字典。

我們支援有限地載入 A1111 格式的 LoRA 檢查點。

此函式是實驗性的,未來可能會更改。

save_lora_weights

< >

( save_directory: typing.Union[str, os.PathLike] transformer_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None text_encoder_lora_layers: typing.Dict[str, torch.nn.modules.module.Module] = None is_main_process: bool = True weight_name: str = None save_function: typing.Callable = None safe_serialization: bool = True transformer_lora_adapter_metadata = None text_encoder_lora_adapter_metadata = None )

引數

  • save_directory (stros.PathLike) — 儲存 LoRA 引數的目錄。如果目錄不存在,將被建立。
  • transformer_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 對應於 transformer 的 LoRA 層狀態字典。
  • text_encoder_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 對應於 text_encoder 的 LoRA 層狀態字典。由於其來自 🤗 Transformers,必須明確傳遞文字編碼器 LoRA 狀態字典。
  • 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 — 與 transformer 關聯的 LoRA 介面卡元資料,將與狀態字典一起序列化。
  • text_encoder_lora_adapter_metadata — 與文字編碼器關聯的 LoRA 介面卡元資料,將與狀態字典一起序列化。

儲存對應於 UNet 和文字編碼器的 LoRA 引數。

解融合 LoRA

< >

( components: typing.List[str] = ['transformer', 'text_encoder'] **kwargs )

引數

  • components (List[str]) — 要從中解除 LoRA 融合的 LoRA 可注入元件列表。

反轉 pipe.fuse_lora() 的效果。

這是一個實驗性 API。

解除安裝 LoRA 權重

< >

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

CogVideoXLoraLoaderMixin

class diffusers.loaders.CogVideoXLoraLoaderMixin

< >

( )

將 LoRA 層載入到 CogVideoXTransformer3DModel 中。特定於 CogVideoXPipeline

load_lora_into_transformer

< >

( state_dict transformer adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 包含 LoRA 層引數的標準狀態字典。鍵可以直接索引到 unet 中,也可以字首為額外的 unet,用於區分文字編碼器 LoRA 層。
  • transformer (CogVideoXTransformer3DModel) — 要載入 LoRA 層的 Transformer 模型。
  • adapter_name (str, 可選) — 用於引用已載入介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱 load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。提供此引數時,peftLoraConfig 引數將不會從狀態字典中派生。

這將把 state_dict 中指定的 LoRA 層載入到 transformer 中。

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] adapter_name: typing.Optional[str] = None hotswap: bool = False **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 請參閱 lora_state_dict()
  • adapter_name (str, 可選) — 用於引用已載入介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱 load_lora_weights()
  • kwargs (dict, 可選) — 請參閱 lora_state_dict()

pretrained_model_name_or_path_or_dict 中指定的 LoRA 權重載入到 self.transformerself.text_encoder 中。所有 kwargs 都轉發到 self.lora_state_dict。有關如何載入狀態字典的更多詳細資訊,請參閱 lora_state_dict()。有關如何將狀態字典載入到 self.transformer 中的更多詳細資訊,請參閱 ~loaders.StableDiffusionLoraLoaderMixin.load_lora_into_transformer

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 可以是以下型別:

    • 一個字串,即託管在 Hub 上的預訓練模型的 *模型 ID*(例如 google/ddpm-celebahq-256)。
    • 一個 *目錄* 路徑(例如 ./my_model_directory),包含使用 ModelMixin.save_pretrained() 儲存的模型權重。
    • 一個 torch 狀態字典
  • cache_dir (Union[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 (strbool, 可選) — 用於遠端檔案的 HTTP 授權令牌。如果為 True,則使用 diffusers-cli login 生成的令牌(儲存在 ~/.huggingface 中)。
  • revision (str, 可選, 預設為 "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • subfolder (str, 可選, 預設為 "") — 模型檔案在 Hub 或本地較大模型倉庫中的子資料夾位置。
  • return_lora_metadata (bool, 可選, 預設為 False) — 啟用時,額外返回 LoRA 介面卡元資料,通常在狀態字典中找到。

返回 lora 權重和網路 alpha 的狀態字典。

我們支援有限地載入 A1111 格式的 LoRA 檢查點。

此函式是實驗性的,未來可能會更改。

save_lora_weights

< >

( save_directory: typing.Union[str, os.PathLike] transformer_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None is_main_process: bool = True weight_name: str = None save_function: typing.Callable = None safe_serialization: bool = True transformer_lora_adapter_metadata: typing.Optional[dict] = None )

引數

  • save_directory (stros.PathLike) — 儲存 LoRA 引數的目錄。如果目錄不存在,將被建立。
  • transformer_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 與 transformer 對應的 LoRA 層狀態字典。
  • 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 介面卡元資料。

儲存與轉換器對應的 LoRA 引數。

解融合 LoRA

< >

( components: typing.List[str] = ['transformer'] **kwargs )

引數

  • components (List[str]) — 從中解凍 LoRA 的 LoRA 可注入元件列表。
  • unfuse_transformer (bool, 預設為 True) — 是否解凍 UNet LoRA 引數。

反轉 pipe.fuse_lora() 的效果。

這是一個實驗性 API。

Mochi1LoraLoaderMixin

class diffusers.loaders.Mochi1LoraLoaderMixin

< >

( )

將 LoRA 層載入到 MochiTransformer3DModel 中。專用於 MochiPipeline

load_lora_into_transformer

< >

( state_dict transformer adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 包含 LoRA 層引數的標準狀態字典。鍵可以直接索引到 unet 中,也可以附加 unet 字首,用於區分文字編碼器 LoRA 層。
  • transformer (MochiTransformer3DModel) — 要載入 LoRA 層的 Transformer 模型。
  • adapter_name (str, 可選) — 用於引用已載入介面卡模型的介面卡名稱。如果未指定,它將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入。
  • hotswap (bool, 可選) — 參見 load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。如果提供,peftLoraConfig 引數將不會從狀態字典中派生。

這將把 state_dict 中指定的 LoRA 層載入到 transformer 中。

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] adapter_name: typing.Optional[str] = None hotswap: bool = False **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 參見 lora_state_dict()
  • adapter_name (str, 可選) — 用於引用已載入介面卡模型的介面卡名稱。如果未指定,它將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入。
  • hotswap (bool, 可選) — 參見 load_lora_weights()
  • kwargs (dict, 可選) — 參見 lora_state_dict()

pretrained_model_name_or_path_or_dict 中指定的 LoRA 權重載入到 self.transformerself.text_encoder 中。所有 kwargs 都轉發到 self.lora_state_dict。有關如何載入狀態字典的更多詳細資訊,請參閱 lora_state_dict()。有關如何將狀態字典載入到 self.transformer 中的更多詳細資訊,請參閱 ~loaders.StableDiffusionLoraLoaderMixin.load_lora_into_transformer

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 可以是:

  • cache_dir (Union[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 (strbool, 可選) — 用於遠端檔案的 HTTP bearer 授權令牌。如果為 True,則使用從 diffusers-cli login 生成的令牌(儲存在 ~/.huggingface 中)。
  • revision (str, 可選, 預設為 "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • subfolder (str, 可選, 預設為 "") — 模型檔案在 Hub 或本地較大模型倉庫中的子資料夾位置。
  • return_lora_metadata (bool, 可選, 預設為 False) — 啟用時,額外返回 LoRA 介面卡元資料,通常在狀態字典中找到。

返回 lora 權重和網路 alpha 的狀態字典。

我們支援有限地載入 A1111 格式的 LoRA 檢查點。

此函式是實驗性的,未來可能會更改。

save_lora_weights

< >

( save_directory: typing.Union[str, os.PathLike] transformer_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None is_main_process: bool = True weight_name: str = None save_function: typing.Callable = None safe_serialization: bool = True transformer_lora_adapter_metadata: typing.Optional[dict] = None )

引數

  • save_directory (stros.PathLike) — 儲存 LoRA 引數的目錄。如果不存在,則會建立。
  • transformer_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 與 transformer 對應的 LoRA 層狀態字典。
  • 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 介面卡元資料。

儲存與轉換器對應的 LoRA 引數。

解融合 LoRA

< >

( components: typing.List[str] = ['transformer'] **kwargs )

引數

  • components (List[str]) — 要從中解融合 LoRA 的 LoRA 可注入元件列表。
  • unfuse_transformer (bool, 預設為 True) — 是否解融合 UNet LoRA 引數。

反轉 pipe.fuse_lora() 的效果。

這是一個實驗性 API。

AuraFlowLoraLoaderMixin

class diffusers.loaders.AuraFlowLoraLoaderMixin

< >

( )

將 LoRA 層載入到 AuraFlowTransformer2DModel 中。專用於 AuraFlowPipeline

load_lora_into_transformer

< >

( state_dict transformer adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 包含 LoRA 層引數的標準狀態字典。鍵可以直接索引到 unet 中,也可以附加 unet 字首,用於區分文字編碼器 LoRA 層。
  • transformer (AuraFlowTransformer2DModel) — 要載入 LoRA 層的 Transformer 模型。
  • adapter_name (str, 可選) — 用於引用已載入介面卡模型的介面卡名稱。如果未指定,它將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入。
  • hotswap (bool, 可選) — 參見 load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。如果提供,peftLoraConfig 引數將不會從狀態字典中派生。

這將把 state_dict 中指定的 LoRA 層載入到 transformer 中。

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] adapter_name: typing.Optional[str] = None hotswap: bool = False **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 參見 lora_state_dict()
  • adapter_name (str, 可選) — 用於引用已載入介面卡模型的介面卡名稱。如果未指定,它將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入。
  • hotswap (bool, 可選) — 參見 load_lora_weights()
  • kwargs (dict, 可選) — 參見 lora_state_dict()

pretrained_model_name_or_path_or_dict 中指定的 LoRA 權重載入到 self.transformerself.text_encoder 中。所有 kwargs 都轉發到 self.lora_state_dict。有關如何載入狀態字典的更多詳細資訊,請參閱 lora_state_dict()。有關如何將狀態字典載入到 self.transformer 中的更多詳細資訊,請參閱 ~loaders.StableDiffusionLoraLoaderMixin.load_lora_into_transformer

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 可以是以下其中一種:

    • 一個字串,即託管在 Hub 上的預訓練模型的模型 ID(例如 google/ddpm-celebahq-256)。
    • 一個目錄的路徑(例如 ./my_model_directory),其中包含使用 ModelMixin.save_pretrained() 儲存的模型權重。
    • 一個 torch 狀態字典
  • cache_dir (Union[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 (strbool, 可選) — 用於遠端檔案的 HTTP bearer 授權令牌。如果為 True,則使用 diffusers-cli login 生成的令牌(儲存在 ~/.huggingface 中)。
  • revision (str, 可選, 預設為 "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • subfolder (str, 可選, 預設為 "") — 模型檔案在 Hub 或本地大型模型儲存庫中的子資料夾位置。
  • return_lora_metadata (bool, 可選, 預設為 False) — 啟用後,同時返回通常在狀態字典中找到的 LoRA 介面卡元資料。

返回 lora 權重和網路 alpha 的狀態字典。

我們支援有限地載入 A1111 格式的 LoRA 檢查點。

此函式是實驗性的,未來可能會更改。

save_lora_weights

< >

( save_directory: typing.Union[str, os.PathLike] transformer_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None is_main_process: bool = True weight_name: str = None save_function: typing.Callable = None safe_serialization: bool = True transformer_lora_adapter_metadata: typing.Optional[dict] = None )

引數

  • save_directory (stros.PathLike) — 儲存 LoRA 引數的目錄。如果不存在,則會建立。
  • transformer_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 與 transformer 對應的 LoRA 層的狀態字典。
  • 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 — 與 Transformer 關聯的 LoRA 介面卡元資料,將與狀態字典一起序列化。

儲存與轉換器對應的 LoRA 引數。

解融合 LoRA

< >

( components: typing.List[str] = ['transformer', 'text_encoder'] **kwargs )

引數

  • components (List[str]) — 要從中移除 LoRA 的可注入 LoRA 元件列表。
  • unfuse_transformer (bool, 預設為 True) — 是否取消 UNet LoRA 引數的融合。

反轉 pipe.fuse_lora() 的效果。

這是一個實驗性 API。

LTXVideoLoraLoaderMixin

class diffusers.loaders.LTXVideoLoraLoaderMixin

< >

( )

將 LoRA 層載入到 LTXVideoTransformer3DModel 中。專用於 LTXPipeline

load_lora_into_transformer

< >

( state_dict transformer adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 包含 LoRA 層引數的標準狀態字典。鍵可以直接索引到 unet 中,也可以字首為附加的 unet,用於區分文字編碼器 LoRA 層。
  • transformer (LTXVideoTransformer3DModel) — 要載入 LoRA 層的 Transformer 模型。
  • adapter_name (str, 可選) — 用於引用已載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱 load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。提供時,peftLoraConfig 引數將不會從狀態字典中推導。

這將把 state_dict 中指定的 LoRA 層載入到 transformer 中。

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] adapter_name: typing.Optional[str] = None hotswap: bool = False **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 請參閱 lora_state_dict()
  • adapter_name (str, 可選) — 用於引用已載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱 load_lora_weights()
  • kwargs (dict, 可選) — 請參閱 lora_state_dict()

pretrained_model_name_or_path_or_dict 中指定的 LoRA 權重載入到 self.transformerself.text_encoder 中。所有 kwargs 都轉發到 self.lora_state_dict。有關如何載入狀態字典的更多詳細資訊,請參閱 lora_state_dict()。有關如何將狀態字典載入到 self.transformer 中的更多詳細資訊,請參閱 ~loaders.StableDiffusionLoraLoaderMixin.load_lora_into_transformer

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 可以是以下其中一種:

    • 一個字串,即託管在 Hub 上的預訓練模型的模型 ID(例如 google/ddpm-celebahq-256)。
    • 一個目錄的路徑(例如 ./my_model_directory),其中包含使用 ModelMixin.save_pretrained() 儲存的模型權重。
    • 一個 torch 狀態字典
  • cache_dir (Union[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 (strbool, 可選) — 用於遠端檔案的 HTTP bearer 授權令牌。如果為 True,則使用 diffusers-cli login 生成的令牌(儲存在 ~/.huggingface 中)。
  • revision (str, 可選, 預設為 "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • subfolder (str, 可選, 預設為 "") — 模型檔案在 Hub 或本地大型模型儲存庫中的子資料夾位置。
  • return_lora_metadata (bool, 可選, 預設為 False) — 啟用後,同時返回通常在狀態字典中找到的 LoRA 介面卡元資料。

返回 lora 權重和網路 alpha 的狀態字典。

我們支援有限地載入 A1111 格式的 LoRA 檢查點。

此函式是實驗性的,未來可能會更改。

save_lora_weights

< >

( save_directory: typing.Union[str, os.PathLike] transformer_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None is_main_process: bool = True weight_name: str = None save_function: typing.Callable = None safe_serialization: bool = True transformer_lora_adapter_metadata: typing.Optional[dict] = None )

引數

  • save_directory (stros.PathLike) — 儲存 LoRA 引數的目錄。如果不存在,則會建立。
  • transformer_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 與 transformer 對應的 LoRA 層的狀態字典。
  • 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 — 與 Transformer 關聯的 LoRA 介面卡元資料,將與狀態字典一起序列化。

儲存與轉換器對應的 LoRA 引數。

解融合 LoRA

< >

( components: typing.List[str] = ['transformer'] **kwargs )

引數

  • components (List[str]) — 要從中移除 LoRA 的可注入 LoRA 元件列表。
  • unfuse_transformer (bool, 預設為 True) — 是否取消 UNet LoRA 引數的融合。

反轉 pipe.fuse_lora() 的效果。

這是一個實驗性 API。

SanaLoraLoaderMixin

class diffusers.loaders.SanaLoraLoaderMixin

< >

( )

將LoRA層載入到SanaTransformer2DModel中。特定於SanaPipeline

load_lora_into_transformer

< >

( state_dict transformer adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 一個包含 LoRA 層引數的標準狀態字典。鍵可以直接索引到 unet 中,也可以帶有額外的字首 unet,用於區分文字編碼器 LoRA 層。
  • transformer (SanaTransformer2DModel) — 要載入 LoRA 層的 Transformer 模型。
  • adapter_name (str, 可選) — 用於引用已載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱 load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。如果提供,peftLoraConfig 引數將不會從狀態字典中推導。

這將把 state_dict 中指定的 LoRA 層載入到 transformer 中。

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] adapter_name: typing.Optional[str] = None hotswap: bool = False **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 請參閱 lora_state_dict()
  • adapter_name (str, 可選) — 用於引用已載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱 load_lora_weights()
  • kwargs (dict, 可選) — 請參閱 lora_state_dict()

pretrained_model_name_or_path_or_dict 中指定的 LoRA 權重載入到 self.transformerself.text_encoder 中。所有 kwargs 都轉發到 self.lora_state_dict。有關如何載入狀態字典的更多詳細資訊,請參閱 lora_state_dict()。有關如何將狀態字典載入到 self.transformer 中的更多詳細資訊,請參閱 ~loaders.StableDiffusionLoraLoaderMixin.load_lora_into_transformer

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 可以是:

    • Hub 上託管的預訓練模型的模型 ID 字串(例如 google/ddpm-celebahq-256)。
    • 包含使用 ModelMixin.save_pretrained() 儲存的模型權重的目錄路徑(例如 ./my_model_directory)。
    • 一個 torch 狀態字典
  • cache_dir (Union[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 (strbool, 可選) — 用作遠端檔案 HTTP 承載授權的令牌。如果為 True,則使用從 diffusers-cli login 生成的令牌(儲存在 ~/.huggingface 中)。
  • revision (str, 可選, 預設為 "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • subfolder (str, 可選, 預設為 "") — 模型檔案中在 Hub 或本地較大模型倉庫中的子資料夾位置。
  • return_lora_metadata (bool, 可選, 預設為 False) — 啟用時,額外返回 LoRA 介面卡元資料,通常在狀態字典中找到。

返回 lora 權重和網路 alpha 的狀態字典。

我們支援有限地載入 A1111 格式的 LoRA 檢查點。

此函式是實驗性的,未來可能會更改。

save_lora_weights

< >

( save_directory: typing.Union[str, os.PathLike] transformer_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None is_main_process: bool = True weight_name: str = None save_function: typing.Callable = None safe_serialization: bool = True transformer_lora_adapter_metadata: typing.Optional[dict] = None )

引數

  • save_directory (stros.PathLike) — LoRA 引數儲存目錄。如果不存在,將建立。
  • transformer_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 對應於 transformer 的 LoRA 層狀態字典。
  • 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 — 與 transformer 關聯的 LoRA 介面卡元資料,將與狀態字典一起序列化。

儲存與轉換器對應的 LoRA 引數。

解融合 LoRA

< >

( components: typing.List[str] = ['transformer'] **kwargs )

引數

  • components (List[str]) — 要從中解融合 LoRA 的可注入 LoRA 元件列表。
  • unfuse_transformer (bool, 預設為 True) — 是否解融合 UNet LoRA 引數。

反轉 pipe.fuse_lora() 的效果。

這是一個實驗性 API。

HunyuanVideoLoraLoaderMixin

class diffusers.loaders.HunyuanVideoLoraLoaderMixin

< >

( )

將 LoRA 層載入到 HunyuanVideoTransformer3DModel 中。特定於 HunyuanVideoPipeline

load_lora_into_transformer

< >

( state_dict transformer adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 一個包含 LoRA 層引數的標準狀態字典。鍵可以直接索引到 unet 中,也可以帶有額外的字首 unet,用於區分文字編碼器 LoRA 層。
  • transformer (HunyuanVideoTransformer3DModel) — 要載入 LoRA 層的 Transformer 模型。
  • adapter_name (str, 可選) — 用於引用已載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱 load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。如果提供,peftLoraConfig 引數將不會從狀態字典中推導。

這將把 state_dict 中指定的 LoRA 層載入到 transformer 中。

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] adapter_name: typing.Optional[str] = None hotswap: bool = False **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 請參閱 lora_state_dict()
  • adapter_name (str, 可選) — 用於引用已載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱 load_lora_weights()
  • kwargs (dict, 可選) — 請參閱 lora_state_dict()

pretrained_model_name_or_path_or_dict 中指定的 LoRA 權重載入到 self.transformerself.text_encoder 中。所有 kwargs 都轉發到 self.lora_state_dict。有關如何載入狀態字典的更多詳細資訊,請參閱 lora_state_dict()。有關如何將狀態字典載入到 self.transformer 中的更多詳細資訊,請參閱 ~loaders.StableDiffusionLoraLoaderMixin.load_lora_into_transformer

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 可以是:

    • Hub 上託管的預訓練模型的模型 ID 字串(例如 google/ddpm-celebahq-256)。
    • 包含使用 ModelMixin.save_pretrained() 儲存的模型權重的目錄路徑(例如 ./my_model_directory)。
    • 一個 torch 狀態字典
  • cache_dir (Union[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 (strbool, 可選) — 用於遠端檔案的 HTTP bearer 授權的 token。如果為 True,則使用由 diffusers-cli login 生成的 token(儲存在 ~/.huggingface 中)。
  • revision (str, 可選, 預設為 "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • subfolder (str, 可選, 預設為 "") — 模型檔案在 Hub 上或本地的更大模型儲存庫中的子資料夾位置。
  • return_lora_metadata (bool, 可選, 預設為 False) — 啟用時,額外返回 LoRA 介面卡元資料,通常在狀態字典中找到。

返回 lora 權重和網路 alpha 的狀態字典。

我們支援載入原始格式的 HunyuanVideo LoRA 檢查點。

此函式是實驗性的,未來可能會更改。

save_lora_weights

< >

( save_directory: typing.Union[str, os.PathLike] transformer_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None is_main_process: bool = True weight_name: str = None save_function: typing.Callable = None safe_serialization: bool = True transformer_lora_adapter_metadata: typing.Optional[dict] = None )

引數

  • save_directory (stros.PathLike) — 儲存 LoRA 引數的目錄。如果不存在,將建立該目錄。
  • transformer_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 對應於 transformer 的 LoRA 層狀態字典。
  • 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 介面卡元資料。

儲存與轉換器對應的 LoRA 引數。

解融合 LoRA

< >

( components: typing.List[str] = ['transformer'] **kwargs )

引數

  • components (List[str]) — 要從其取消融合 LoRA 的可注入 LoRA 元件列表。
  • unfuse_transformer (bool, 預設為 True) — 是否取消融合 UNet LoRA 引數。

反轉 pipe.fuse_lora() 的效果。

這是一個實驗性 API。

Lumina2LoraLoaderMixin

class diffusers.loaders.Lumina2LoraLoaderMixin

< >

( )

將 LoRA 層載入到 Lumina2Transformer2DModel 中。特定於 Lumina2Text2ImgPipeline

load_lora_into_transformer

< >

( state_dict transformer adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 包含 lora 層引數的標準狀態字典。鍵可以直接索引到 unet 中,也可以帶有附加的 unet 字首,用於區分文字編碼器 lora 層。
  • transformer (Lumina2Transformer2DModel) — 要載入 LoRA 層的 Transformer 模型。
  • adapter_name (str, 可選) — 用於引用載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱 load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。提供時,peftLoraConfig 引數將不會從狀態字典中推導。

這將把 state_dict 中指定的 LoRA 層載入到 transformer 中。

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] adapter_name: typing.Optional[str] = None hotswap: bool = False **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 請參閱 lora_state_dict()
  • adapter_name (str, 可選) — 用於引用載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱 load_lora_weights()
  • kwargs (dict, 可選) — 請參閱 lora_state_dict()

pretrained_model_name_or_path_or_dict 中指定的 LoRA 權重載入到 self.transformerself.text_encoder 中。所有 kwargs 都轉發到 self.lora_state_dict。有關如何載入狀態字典的更多詳細資訊,請參閱 lora_state_dict()。有關如何將狀態字典載入到 self.transformer 中的更多詳細資訊,請參閱 ~loaders.StableDiffusionLoraLoaderMixin.load_lora_into_transformer

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 可以是:

    • Hub 上託管的預訓練模型的模型 ID 字串(例如 google/ddpm-celebahq-256)。
    • 包含使用 ModelMixin.save_pretrained() 儲存的模型權重的目錄路徑(例如 ./my_model_directory)。
    • 一個 torch 狀態字典
  • cache_dir (Union[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 (strbool, 可選) — 用於遠端檔案的 HTTP bearer 授權的 token。如果為 True,則使用由 diffusers-cli login 生成的 token(儲存在 ~/.huggingface 中)。
  • revision (str, 可選, 預設為 "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • subfolder (str, 可選, 預設為 "") — 模型檔案在 Hub 上或本地的更大模型儲存庫中的子資料夾位置。
  • return_lora_metadata (bool, 可選, 預設為 False) — 啟用時,額外返回 LoRA 介面卡元資料,通常在狀態字典中找到。

返回 lora 權重和網路 alpha 的狀態字典。

我們支援有限地載入 A1111 格式的 LoRA 檢查點。

此函式是實驗性的,未來可能會更改。

save_lora_weights

< >

( save_directory: typing.Union[str, os.PathLike] transformer_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None is_main_process: bool = True weight_name: str = None save_function: typing.Callable = None safe_serialization: bool = True transformer_lora_adapter_metadata: typing.Optional[dict] = None )

引數

  • save_directory (stros.PathLike) — 儲存 LoRA 引數的目錄。如果不存在,將建立該目錄。
  • transformer_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 對應於 transformer 的 LoRA 層狀態字典。
  • 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 介面卡元資料。

儲存與轉換器對應的 LoRA 引數。

解融合 LoRA

< >

( components: typing.List[str] = ['transformer'] **kwargs )

引數

  • components (List[str]) — 要從其取消融合 LoRA 的可注入 LoRA 元件列表。
  • unfuse_transformer (bool, 預設為 True) — 是否取消融合 UNet LoRA 引數。

反轉 pipe.fuse_lora() 的效果。

這是一個實驗性 API。

CogView4LoraLoaderMixin

class diffusers.loaders.CogView4LoraLoaderMixin

< >

( )

將 LoRA 層載入到 WanTransformer3DModel 中。特定於 CogView4Pipeline

load_lora_into_transformer

< >

( state_dict transformer adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 包含 lora 層引數的標準狀態字典。鍵可以直接索引到 unet 中,也可以帶有附加的 unet 字首,用於區分文字編碼器 lora 層。
  • transformer (CogView4Transformer2DModel) — 要載入 LoRA 層的 Transformer 模型。
  • adapter_name (str, 可選) — 用於引用載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱 load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。提供時,peftLoraConfig 引數將不會從狀態字典中推導。

這將把 state_dict 中指定的 LoRA 層載入到 transformer 中。

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] adapter_name: typing.Optional[str] = None hotswap: bool = False **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 請參閱 lora_state_dict()
  • adapter_name (str, 可選) — 用於引用載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, optional) — 詳見 load_lora_weights()
  • kwargs (dict, optional) — 詳見 lora_state_dict()

pretrained_model_name_or_path_or_dict 中指定的 LoRA 權重載入到 self.transformerself.text_encoder 中。所有 kwargs 都轉發到 self.lora_state_dict。有關如何載入狀態字典的更多詳細資訊,請參閱 lora_state_dict()。有關如何將狀態字典載入到 self.transformer 中的更多詳細資訊,請參閱 ~loaders.StableDiffusionLoraLoaderMixin.load_lora_into_transformer

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 可以是以下之一:

  • cache_dir (Union[str, os.PathLike], optional) — 如果不使用標準快取,則為下載的預訓練模型配置的快取目錄路徑。
  • force_download (bool, optional, defaults to False) — 是否強制重新下載模型權重和配置檔案,如果已快取則覆蓋。
  • proxies (Dict[str, str], optional) — 按協議或端點使用的代理伺服器字典,例如 {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。每次請求都會使用代理。
  • local_files_only (bool, optional, defaults to False) — 是否只加載本地模型權重和配置檔案。如果設定為 True,則不會從 Hub 下載模型。
  • token (strbool, optional) — 用作遠端檔案 HTTP bearer 授權的 token。如果為 True,則使用 diffusers-cli login 生成的 token(儲存在 ~/.huggingface 中)。
  • revision (str, optional, defaults to "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • subfolder (str, optional, defaults to "") — Hub 或本地較大模型倉庫中模型檔案的子資料夾位置。
  • return_lora_metadata (bool, optional, defaults to False) — 啟用時,額外返回 LoRA 介面卡元資料,通常在狀態字典中找到。

返回 lora 權重和網路 alpha 的狀態字典。

我們支援有限地載入 A1111 格式的 LoRA 檢查點。

此函式是實驗性的,未來可能會更改。

save_lora_weights

< >

( save_directory: typing.Union[str, os.PathLike] transformer_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None is_main_process: bool = True weight_name: str = None save_function: typing.Callable = None safe_serialization: bool = True transformer_lora_adapter_metadata: typing.Optional[dict] = None )

引數

  • save_directory (stros.PathLike) — LoRA 引數儲存的目錄。如果不存在,將建立該目錄。
  • transformer_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 對應於 transformer 的 LoRA 層的狀態字典。
  • is_main_process (bool, optional, defaults to True) — 呼叫此過程是否為主過程。在分散式訓練中,如果您需要在所有過程中呼叫此函式,則此選項很有用。在這種情況下,僅在主程序上設定 is_main_process=True 以避免競態條件。
  • save_function (Callable) — 用於儲存狀態字典的函式。在分散式訓練中,當您需要用其他方法替換 torch.save 時很有用。可以透過環境變數 DIFFUSERS_SAVE_MODE 進行配置。
  • safe_serialization (bool, optional, defaults to True) — 是否使用 safetensors 或傳統的 PyTorch pickle 方式儲存模型。
  • transformer_lora_adapter_metadata — 與狀態字典一同序列化的與 transformer 相關的 LoRA 介面卡元資料。

儲存與轉換器對應的 LoRA 引數。

解融合 LoRA

< >

( components: typing.List[str] = ['transformer'] **kwargs )

引數

  • components (List[str]) — 要從中解除 LoRA 繫結的可注入 LoRA 元件列表。
  • unfuse_transformer (bool, defaults to True) — 是否解除 UNet LoRA 引數的繫結。

反轉 pipe.fuse_lora() 的效果。

這是一個實驗性 API。

WanLoraLoaderMixin

class diffusers.loaders.WanLoraLoaderMixin

< >

( )

將 LoRA 層載入到 WanTransformer3DModel 中。特定於 WanPipeline[WanImageToVideoPipeline]。

load_lora_into_transformer

< >

( state_dict transformer adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 包含 LoRA 層引數的標準狀態字典。鍵可以直接索引到 unet 中,也可以字首加上 unet 以區分文字編碼器 LoRA 層。
  • transformer (WanTransformer3DModel) — 要載入 LoRA 層的 Transformer 模型。
  • adapter_name (str, optional) — 用於引用已載入介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, optional) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入。
  • hotswap (bool, optional) — 詳見 load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。如果提供,peftLoraConfig 引數將不會從狀態字典中派生。

這將把 state_dict 中指定的 LoRA 層載入到 transformer 中。

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] adapter_name: typing.Optional[str] = None hotswap: bool = False **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 詳見 lora_state_dict()
  • adapter_name (str, optional) — 用於引用已載入介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, optional) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入。
  • hotswap (bool, optional) — 詳見 load_lora_weights()
  • kwargs (dict, optional) — 詳見 lora_state_dict()

pretrained_model_name_or_path_or_dict 中指定的 LoRA 權重載入到 self.transformerself.text_encoder 中。所有 kwargs 都轉發到 self.lora_state_dict。有關如何載入狀態字典的更多詳細資訊,請參閱 lora_state_dict()。有關如何將狀態字典載入到 self.transformer 中的更多詳細資訊,請參閱 ~loaders.StableDiffusionLoraLoaderMixin.load_lora_into_transformer

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 可以是以下之一:

  • cache_dir (Union[str, os.PathLike], optional) — 如果不使用標準快取,則為下載的預訓練模型配置的快取目錄路徑。
  • force_download (bool, optional, defaults to False) — 是否強制(重新)下載模型權重和配置檔案,如果已存在則覆蓋快取版本。
  • proxies (Dict[str, str], optional) — 要按協議或端點使用的代理伺服器字典,例如 {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。每次請求都會使用代理。
  • local_files_only (bool, optional, defaults to False) — 是否只加載本地模型權重和配置檔案。如果設定為 True,則不會從 Hub 下載模型。
  • token (strbool, optional) — 用作遠端檔案 HTTP bearer 授權的 token。如果為 True,則使用 diffusers-cli login 生成的 token(儲存在 ~/.huggingface 中)。
  • revision (str, optional, defaults to "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • subfolder (str, optional, defaults to "") — Hub 或本地較大模型倉庫中模型檔案的子資料夾位置。
  • return_lora_metadata (bool, optional, defaults to False) — 啟用時,額外返回 LoRA 介面卡元資料,通常在狀態字典中找到。

返回 lora 權重和網路 alpha 的狀態字典。

我們支援有限地載入 A1111 格式的 LoRA 檢查點。

此函式是實驗性的,未來可能會更改。

save_lora_weights

< >

( save_directory: typing.Union[str, os.PathLike] transformer_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None is_main_process: bool = True weight_name: str = None save_function: typing.Callable = None safe_serialization: bool = True transformer_lora_adapter_metadata: typing.Optional[dict] = None )

引數

  • save_directory (stros.PathLike) — LoRA 引數儲存的目錄。如果不存在,將建立該目錄。
  • transformer_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 對應於 transformer 的 LoRA 層的狀態字典。
  • is_main_process (bool, optional, defaults to True) — 呼叫此過程是否為主過程。在分散式訓練中,如果您需要在所有過程中呼叫此函式,則此選項很有用。在這種情況下,僅在主程序上設定 is_main_process=True 以避免競態條件。
  • save_function (Callable) — 用於儲存狀態字典的函式。在分散式訓練中,當您需要用其他方法替換 torch.save 時很有用。可以透過環境變數 DIFFUSERS_SAVE_MODE 進行配置。
  • safe_serialization (bool, optional, defaults to True) — 是否使用 safetensors 或傳統的 PyTorch pickle 方式儲存模型。
  • transformer_lora_adapter_metadata — 與狀態字典一同序列化的與 transformer 相關的 LoRA 介面卡元資料。

儲存與轉換器對應的 LoRA 引數。

解融合 LoRA

< >

( components: typing.List[str] = ['transformer'] **kwargs )

引數

  • components (List[str]) — 要從中解除 LoRA 繫結的可注入 LoRA 元件列表。
  • unfuse_transformer (bool, defaults to True) — 是否解除 UNet LoRA 引數的繫結。

反轉 pipe.fuse_lora() 的效果。

這是一個實驗性 API。

AmusedLoraLoaderMixin

class diffusers.loaders.AmusedLoraLoaderMixin

< >

( )

load_lora_into_transformer

< >

( state_dict network_alphas transformer adapter_name = None metadata = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False )

引數

  • state_dict (dict) — 一個標準的狀態字典,包含 LoRA 層引數。鍵可以直接索引到 unet 中,也可以帶有額外的字首 unet,用於區分文字編碼器 LoRA 層。
  • network_alphas (Dict[str, float]) — 用於穩定學習和防止下溢的網路 alpha 值。此值與 kohya-ss 訓練器指令碼中的 --network_alpha 選項具有相同的含義。請參考此連結
  • transformer (UVit2DModel) — 要載入 LoRA 層的 Transformer 模型。
  • adapter_name (str, 可選) — 用於引用已載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱 load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。如果提供,peftLoraConfig 引數將不會從狀態字典中派生。

這將把 state_dict 中指定的 LoRA 層載入到 transformer 中。

save_lora_weights

< >

( save_directory: typing.Union[str, os.PathLike] text_encoder_lora_layers: typing.Dict[str, torch.nn.modules.module.Module] = None transformer_lora_layers: typing.Dict[str, torch.nn.modules.module.Module] = None is_main_process: bool = True weight_name: str = None save_function: typing.Callable = None safe_serialization: bool = True )

引數

  • save_directory (stros.PathLike) — 儲存 LoRA 引數的目錄。如果不存在,將建立該目錄。
  • unet_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 與 unet 對應的 LoRA 層的狀態字典。
  • text_encoder_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 與 text_encoder 對應的 LoRA 層的狀態字典。必須顯式傳遞文字編碼器 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 引數。

HiDreamImageLoraLoaderMixin

class diffusers.loaders.HiDreamImageLoraLoaderMixin

< >

( )

將 LoRA 層載入到 HiDreamImageTransformer2DModel 中。專用於 HiDreamImagePipeline

load_lora_into_transformer

< >

( state_dict transformer adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 一個標準的狀態字典,包含 LoRA 層引數。鍵可以直接索引到 unet 中,也可以帶有額外的字首 unet,用於區分文字編碼器 LoRA 層。
  • transformer (HiDreamImageTransformer2DModel) — 用於載入 LoRA 層的 Transformer 模型。
  • adapter_name (str, 可選) — 用於引用已載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱 load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。如果提供,peftLoraConfig 引數將不會從狀態字典中派生。

這將把 state_dict 中指定的 LoRA 層載入到 transformer 中。

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] adapter_name: typing.Optional[str] = None hotswap: bool = False **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 請參閱 lora_state_dict()
  • adapter_name (str, 可選) — 用於引用已載入的介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, 可選) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入速度。
  • hotswap (bool, 可選) — 請參閱 load_lora_weights()
  • kwargs (dict, 可選) — 請參閱 lora_state_dict()

pretrained_model_name_or_path_or_dict 中指定的 LoRA 權重載入到 self.transformerself.text_encoder 中。所有 kwargs 都轉發到 self.lora_state_dict。有關如何載入狀態字典的更多詳細資訊,請參閱 lora_state_dict()。有關如何將狀態字典載入到 self.transformer 中的更多詳細資訊,請參閱 ~loaders.StableDiffusionLoraLoaderMixin.load_lora_into_transformer

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 可以是以下之一:

    • 一個字串,即託管在 Hub 上的預訓練模型的模型 ID(例如 google/ddpm-celebahq-256)。
    • 一個目錄的路徑(例如 ./my_model_directory),其中包含使用 ModelMixin.save_pretrained() 儲存的模型權重。
    • 一個 torch 狀態字典
  • cache_dir (Union[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 (strbool, 可選) — 用作遠端檔案的 HTTP 授權令牌。如果為 True,則使用從 diffusers-cli login 生成的令牌(儲存在 ~/.huggingface 中)。
  • revision (str, 可選, 預設為 "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • subfolder (str, 可選, 預設為 "") — 模型檔案在 Hub 或本地較大模型倉庫中的子資料夾位置。
  • return_lora_metadata (bool, 可選, 預設為 False) — 啟用時,額外返回 LoRA 介面卡元資料,通常在狀態字典中找到。

返回 lora 權重和網路 alpha 的狀態字典。

我們支援有限地載入 A1111 格式的 LoRA 檢查點。

此函式是實驗性的,未來可能會更改。

save_lora_weights

< >

( save_directory: typing.Union[str, os.PathLike] transformer_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None is_main_process: bool = True weight_name: str = None save_function: typing.Callable = None safe_serialization: bool = True transformer_lora_adapter_metadata: typing.Optional[dict] = None )

引數

  • save_directory (stros.PathLike) — 儲存 LoRA 引數的目錄。如果不存在,將建立該目錄。
  • transformer_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 與 transformer 對應的 LoRA 層的狀態字典。
  • 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 — 與狀態字典一起序列化的與 transformer 相關的 LoRA 介面卡元資料。

儲存與轉換器對應的 LoRA 引數。

解融合 LoRA

< >

( components: typing.List[str] = ['transformer'] **kwargs )

引數

  • components (List[str]) — 要從中解除 LoRA 的 LoRA 可注入元件列表。
  • unfuse_transformer (bool, 預設為 True) — 是否解除 UNet LoRA 引數的融合。

反轉 pipe.fuse_lora() 的效果。

這是一個實驗性 API。

WanLoraLoaderMixin

class diffusers.loaders.WanLoraLoaderMixin

< >

( )

將 LoRA 層載入到 WanTransformer3DModel 中。特定於 WanPipeline[WanImageToVideoPipeline]。

load_lora_into_transformer

< >

( state_dict transformer adapter_name = None _pipeline = None low_cpu_mem_usage = False hotswap: bool = False metadata = None )

引數

  • state_dict (dict) — 包含 LoRA 層引數的標準狀態字典。鍵可以直接索引到 unet 中,也可以字首加上 unet 以區分文字編碼器 LoRA 層。
  • transformer (WanTransformer3DModel) — 要載入 LoRA 層的 Transformer 模型。
  • adapter_name (str, optional) — 用於引用已載入介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, optional) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入。
  • hotswap (bool, optional) — 詳見 load_lora_weights()
  • metadata (dict) — 可選的 LoRA 介面卡元資料。如果提供,peftLoraConfig 引數將不會從狀態字典中派生。

這將把 state_dict 中指定的 LoRA 層載入到 transformer 中。

load_lora_weights

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] adapter_name: typing.Optional[str] = None hotswap: bool = False **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 詳見 lora_state_dict()
  • adapter_name (str, optional) — 用於引用已載入介面卡模型的介面卡名稱。如果未指定,將使用 default_{i},其中 i 是正在載入的介面卡總數。
  • low_cpu_mem_usage (bool, optional) — 透過僅載入預訓練的 LoRA 權重而不初始化隨機權重來加快模型載入。
  • hotswap (bool, optional) — 詳見 load_lora_weights()
  • kwargs (dict, optional) — 詳見 lora_state_dict()

pretrained_model_name_or_path_or_dict 中指定的 LoRA 權重載入到 self.transformerself.text_encoder 中。所有 kwargs 都轉發到 self.lora_state_dict。有關如何載入狀態字典的更多詳細資訊,請參閱 lora_state_dict()。有關如何將狀態字典載入到 self.transformer 中的更多詳細資訊,請參閱 ~loaders.StableDiffusionLoraLoaderMixin.load_lora_into_transformer

lora_state_dict

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 可以是以下之一:

  • cache_dir (Union[str, os.PathLike], optional) — 如果不使用標準快取,則為下載的預訓練模型配置的快取目錄路徑。
  • force_download (bool, optional, defaults to False) — 是否強制(重新)下載模型權重和配置檔案,如果已存在則覆蓋快取版本。
  • proxies (Dict[str, str], optional) — 要按協議或端點使用的代理伺服器字典,例如 {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。每次請求都會使用代理。
  • local_files_only (bool, optional, defaults to False) — 是否只加載本地模型權重和配置檔案。如果設定為 True,則不會從 Hub 下載模型。
  • token (strbool, optional) — 用作遠端檔案 HTTP bearer 授權的 token。如果為 True,則使用 diffusers-cli login 生成的 token(儲存在 ~/.huggingface 中)。
  • revision (str, optional, defaults to "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • subfolder (str, optional, defaults to "") — Hub 或本地較大模型倉庫中模型檔案的子資料夾位置。
  • return_lora_metadata (bool, optional, defaults to False) — 啟用時,額外返回 LoRA 介面卡元資料,通常在狀態字典中找到。

返回 lora 權重和網路 alpha 的狀態字典。

我們支援有限地載入 A1111 格式的 LoRA 檢查點。

此函式是實驗性的,未來可能會更改。

save_lora_weights

< >

( save_directory: typing.Union[str, os.PathLike] transformer_lora_layers: typing.Dict[str, typing.Union[torch.nn.modules.module.Module, torch.Tensor]] = None is_main_process: bool = True weight_name: str = None save_function: typing.Callable = None safe_serialization: bool = True transformer_lora_adapter_metadata: typing.Optional[dict] = None )

引數

  • save_directory (stros.PathLike) — LoRA 引數儲存的目錄。如果不存在,將建立該目錄。
  • transformer_lora_layers (Dict[str, torch.nn.Module]Dict[str, torch.Tensor]) — 對應於 transformer 的 LoRA 層的狀態字典。
  • is_main_process (bool, optional, defaults to True) — 呼叫此過程是否為主過程。在分散式訓練中,如果您需要在所有過程中呼叫此函式,則此選項很有用。在這種情況下,僅在主程序上設定 is_main_process=True 以避免競態條件。
  • save_function (Callable) — 用於儲存狀態字典的函式。在分散式訓練中,當您需要用其他方法替換 torch.save 時很有用。可以透過環境變數 DIFFUSERS_SAVE_MODE 進行配置。
  • safe_serialization (bool, optional, defaults to True) — 是否使用 safetensors 或傳統的 PyTorch pickle 方式儲存模型。
  • transformer_lora_adapter_metadata — 與狀態字典一同序列化的與 transformer 相關的 LoRA 介面卡元資料。

儲存與轉換器對應的 LoRA 引數。

解融合 LoRA

< >

( components: typing.List[str] = ['transformer'] **kwargs )

引數

  • components (List[str]) — 要從中解除 LoRA 繫結的可注入 LoRA 元件列表。
  • unfuse_transformer (bool, defaults to True) — 是否解除 UNet LoRA 引數的繫結。

反轉 pipe.fuse_lora() 的效果。

這是一個實驗性 API。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.