Diffusers documentation
LoRA
LoRA
LoRAは、モデルの全パラメータではなく、はるかに少ない数のパラメータを挿入して学習する、高速かつ軽量な学習手法です。これにより、より小さいファイル(約100 MB)が生成され、新しい概念を学習させるモデルを素早くトレーニングしやすくなります。LoRAの重みは、通常、デノイザー、テキストエンコーダー、またはその両方に読み込まれます。デノイザーは通常、UNet(UNet2DConditionModelなど)やTransformer(SD3Transformer2DModelなど)に対応しています。LoRAの重みを読み込むためのクラスはいくつかあります。
StableDiffusionLoraLoaderMixinは、LoRA 重みの読み込みと解放、融合と分離、有効化と無効化など、LoRA 重みを管理するための関数を提供します。このクラスは、任意のモデルで使用できます。StableDiffusionXLLoraLoaderMixinは、LoRA 重みの読み込みと保存を行うStableDiffusionLoraLoaderMixinクラスの Stable Diffusion (SDXL) 版です。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
LoRAレイヤーをRFD4ProteinaTransformerに読み込みます。
autoencoderはdenoiserのチェックポイントとペアで提供され、適応されていないため、transformerのみが読み込み可能なモジュールです。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
LoraBaseMixin
LoRAの処理を行うユーティリティクラスです。
delete_adapters
< source >( adapter_names: list[str] | str )
パイプラインからアダプターのLoRA層を削除します。
例:
from diffusers import AutoPipelineForText2Image
import torch
pipeline = AutoPipelineForText2Image.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights(
"jbilcke-hf/sdxl-cinematic-1", weight_name="pytorch_lora_weights.safetensors", adapter_names="cinematic"
)
pipeline.delete_adapters("cinematic")パイプラインのアクティブなLoRAレイヤーを無効にします。
例:
from diffusers import AutoPipelineForText2Image
import torch
pipeline = AutoPipelineForText2Image.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights(
"jbilcke-hf/sdxl-cinematic-1", weight_name="pytorch_lora_weights.safetensors", adapter_name="cinematic"
)
pipeline.disable_lora()パイプラインのアクティブなLoRAレイヤーを有効にします。
例:
from diffusers import AutoPipelineForText2Image
import torch
pipeline = AutoPipelineForText2Image.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights(
"jbilcke-hf/sdxl-cinematic-1", weight_name="pytorch_lora_weights.safetensors", adapter_name="cinematic"
)
pipeline.enable_lora()enable_lora_hotswap
< source >( **kwargs )
モデルの再コンパイルをトリガーせずに、または読み込まれたアダプターのランクが異なる場合でも、アダプターをホットスワップできます。
fuse_lora
< source >( components: list[str] | None = Nonelora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
パラメータ
対応するブロックの元のパラメータにLoRAパラメータを融合します。
例:
from diffusers import DiffusionPipeline
import torch
pipeline = DiffusionPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights("nerijs/pixel-art-xl", weight_name="pixel-art-xl.safetensors", adapter_name="pixel")
pipeline.fuse_lora(lora_scale=0.7)現在アクティブなアダプターのリストを取得します。
パイプライン内で現在利用可能なすべてのアダプターの一覧を取得します。
set_adapters
< source >( adapter_names: list[str] | stradapter_weights: float | dict[str, float | dict | None] | list[float | dict[str, float | dict | None] | None] | None = None )
パラメータ
- adapter_names (
list[str]またはstr) — 使用するアダプターの名前です。 - adapter_weights (
float、dictまたはlist、省略可) — アダプター用の重みです。スカラー値を指定すると、すべてのLoRA互換コンポーネントがその値でスケーリングされます。辞書を指定すると、コンポーネント名(例:"unet"、"transformer"または"text_encoder")をキーに重みをマッピングします。UNetコンポーネントの重みは、ブロックのスケーリングを格納したネストされた辞書としても指定できます。スカラーまたは辞書を1つだけ指定すると、すべてのアダプターに適用されます。リストを指定する場合は、adapter_namesの順序に従って、アダプターごとにスカラー、辞書、またはNoneを1つずつ含める必要があります。Noneは、リストの要素やコンポーネントの重みを含むすべての場合で、デフォルト値1.0になります。指定されていないコンポーネントやUNetのブロックも、デフォルト値は1.0です。
パイプラインで使用するために、現在アクティブなアダプターを設定します。
例:
from diffusers import AutoPipelineForText2Image
import torch
pipeline = AutoPipelineForText2Image.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights(
"jbilcke-hf/sdxl-cinematic-1", weight_name="pytorch_lora_weights.safetensors", adapter_name="cinematic"
)
pipeline.load_lora_weights(
"troveski/sdxl-lora", weight_name="pytorch_lora_weights.safetensors", adapter_name="illustration"
)
pipeline.set_adapters(["cinematic", "illustration"], adapter_weights=[0.5, 0.5])
pipeline.set_adapters(
["cinematic", "illustration"],
adapter_weights=[{"unet": 0.5}, {"unet": 0.8, "text_encoder": 0.6}],
)set_lora_device
< source >( adapter_names: list[str]device: torch.device | str | int )
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
< source >( components: list[str] | None = None**kwargs )
pipe.fuse_lora() の効果を逆転します。
LoRAパラメータをアンロードします。
write_lora_layers
< source >( state_dict: dict[str, torch.Tensor]save_directory: stris_main_process: boolweight_name: strsave_function: Callablesafe_serialization: boollora_adapter_metadata: dict | None = None )
LoRA層のstate dictを(メタデータ付きで)ディスクに書き込みます。
StableDiffusionLoraLoaderMixin
Stable DiffusionのUNet2DConditionModelとCLIPTextModelにLoRAレイヤーを読み込みます。
load_lora_into_text_encoder
< source >( state_dictnetwork_alphastext_encoderprefix = Nonelora_scale = 1.0adapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
パラメータ
- state_dict (
dict) — LoRAレイヤーのパラメータを含む標準的なstate dictです。unetのLoRAレイヤーと区別するために、キーにはtext_encoderというプレフィックスを付加する必要があります。 - network_alphas (
dict[str, float]) — 安定した学習とアンダーフローの防止に使用されるネットワークアルファの値です。この値は、kohya-ss トレーナースクリプトの--network_alphaオプションと同じ意味を持ちます。このリンクを参照してください。 - text_encoder (
CLIPTextModel) — LoRA層を読み込む対象のテキストエンコーダーモデル。 - prefix (
str) —state_dictにおけるtext_encoderの想定されるプレフィックス。 - lora_scale (
float) — 通常の lora レイヤーの出力に lora 線形レイヤーの出力を加算する前に、その出力をどの程度スケーリングするかを示します。 - adapter_name (
str, 省略可) — 読み込まれたアダプターモデルを参照するために使用するアダプター名。指定しない場合、読み込まれるアダプターの総数を i としてdefault_{i}が使用されます。 - low_cpu_mem_usage (
bool、省略可) — 事前学習済み LoRA 重みのみを読み込み、ランダム重みの初期化を行わないことで、モデルの読み込みを高速化します。 - hotswap (
bool、省略可) — load_lora_weights()を参照してください。 - metadata (
dict) — 任意の LoRA アダプターメタデータ。指定された場合、peftのLoraConfig引数は state dict から導出されません。
これにより、state_dictで指定されたLoRAレイヤーがtext_encoderに読み込まれます。
load_lora_into_unet
< source >( state_dictnetwork_alphasunetadapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
パラメータ
- state_dict (
dict) — LoRAレイヤーのパラメータを含む標準的なstate dictです。キーは、unetに直接インデックスとして使用することも、テキストエンコーダーのLoRAレイヤーと区別するためにunetというプレフィックスを付加することもできます。 - network_alphas (
dict[str, float]) — 安定した学習とアンダーフローの防止に使用されるネットワークアルファの値です。この値は、kohya-ss トレーナースクリプトの--network_alphaオプションと同じ意味を持ちます。このリンクを参照してください。 - unet (
UNet2DConditionModel) — LoRA層を読み込む対象のUNetモデルです。 - adapter_name (
str, 省略可) — 読み込まれたアダプターモデルを参照するために使用するアダプター名。指定しない場合、読み込まれるアダプターの総数を i としてdefault_{i}が使用されます。 - low_cpu_mem_usage (
bool、省略可) — ランダムな重みの初期化を行わず、事前学習済み LoRA 重みのみを読み込むことで、モデルの読み込みを高速化します。 - hotswap (
bool、省略可) — load_lora_weights()を参照してください。 - metadata (
dict) — 任意の LoRA アダプターメタデータ。指定された場合、peftのLoraConfig引数は state dict から導出されません。
これにより、state_dictで指定されたLoRAレイヤーがunetに読み込まれます。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
パラメータ
- pretrained_model_name_or_path_or_dict (
strまたはos.PathLikeまたはdict) — lora_state_dict()を参照してください。 - adapter_name (
str, 省略可) — 読み込まれたアダプターモデルを参照するために使用するアダプター名。指定しない場合、読み込まれるアダプターの総数を i としてdefault_{i}が使用されます。 - low_cpu_mem_usage (
bool、省略可) — 事前学習済み LoRA 重みのみを読み込み、ランダム重みの初期化を行わないことで、モデルの読み込みを高速化します。 - hotswap (
bool, 省略可能) — デフォルトはFalse. 既存の (LoRA) アダプターを、新しく読み込まれたアダプターでインプレースに置き換えるかどうか。つまり、追加のアダプターを読み込むのではなく、既存のアダプターの重みを新しいアダプターの重みで置き換えます。これにより、より高速かつメモリ効率の高い処理が可能になります。ただし、hotswap の主な利点は、モデルが torch.compile でコンパイルされている場合、新しいアダプターを読み込んでもモデルの再コンパイルが不要になる点です。hotswap を使用する際は、渡すadapter_nameは、すでに読み込まれているアダプターの名前である必要があります。新しいアダプターと古いアダプターでランクと/またはLoRA alpha(つまりスケーリング)が異なる場合、アダプターを読み込む前に追加のメソッドを呼び出す必要があります:
pipeline = ... # load diffusers pipeline max_rank = ... # the highest rank among all LoRAs that you want to load # call *before* compiling and loading the LoRA adapter pipeline.enable_lora_hotswap(target_rank=max_rank) pipeline.load_lora_weights(file_name) # optionally compile the model nowテキストエンコーダーのアダプターをホットスワップすることは、まだサポートされていません。この技術にはいくつかの追加の制限があり、以下にドキュメント化されています: https://huggingface.co/docs/peft/main/en/package_reference/hotswap
- kwargs (
dict、任意) — lora_state_dict()を参照してください。
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 に state dict がどのように読み込まれるかについては、load_lora_into_text_encoder() を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
パラメータ
- pretrained_model_name_or_path_or_dict (
strまたはos.PathLikeまたはdict) — 以下のいずれかです:- Hub にホストされている事前学習済みモデルの model id(例:
google/ddpm-celebahq-256)を表す文字列。 ./my_model_directoryのように、ModelMixin.save_pretrained() で保存されたモデルの重みを含むディレクトリへのパス。- torch state dictです。
- Hub にホストされている事前学習済みモデルの model id(例:
- 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 ベアラ認証に使用するトークンです。Trueの場合、diffusers-cli loginで生成されたトークン(~/.huggingfaceに保存されています)が使用されます。 - revision (
str、任意、デフォルトは"main") — 使用する特定のモデルのバージョンです。ブランチ名、タグ名、コミット ID、または Git によって許可される任意の識別子を使用できます。 - subfolder (
str、任意、デフォルトは"") — Hub またはローカル上のより大きなモデルリポジトリ内での、モデルファイルのサブフォルダの場所。 - weight_name (
str, 省略可能、デフォルトは None) — シリアライズされた state dict ファイルの名前。 - return_lora_metadata (
bool、省略可能、デフォルトは False) — 有効にすると、state dict に通常含まれている LoRA アダプターのメタデータも追加で返されます。
LoRAの重みとネットワークのアルファのstate dictを返します。
> A1111形式のLoRAチェックポイントの読み込みを、限定的な範囲でサポートしています。 > > この機能は実験的であり、将来変更される可能性があります。
save_lora_weights
< source >( save_directory: str | os.PathLikeunet_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Nonetext_encoder_lora_layers: dict[str, torch.nn.Module] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Trueunet_lora_adapter_metadata = Nonetext_encoder_lora_adapter_metadata = None )
パラメータ
- save_directory (
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 — state dict と一緒にシリアライズされる、unet に関連付けられた LoRA アダプターのメタデータ。
- text_encoder_lora_adapter_metadata — テキストエンコーダーに関連付けられたLoRAアダプターのメタデータ。ステートディクトとともにシリアライズされます。
UNetおよびテキストエンコーダーに対応するLoRAパラメータを保存します。
StableDiffusionXLLoraLoaderMixin
Stable Diffusion XLのUNet2DConditionModel、CLIPTextModel、およびCLIPTextModelWithProjectionにLoRA層を読み込みます。
fuse_lora
< source >( components: list[str] = ['unet', 'text_encoder', 'text_encoder_2']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_text_encoder
< source >( state_dictnetwork_alphastext_encoderprefix = Nonelora_scale = 1.0adapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
パラメータ
- state_dict (
dict) — LoRAレイヤーのパラメータを含む標準的なstate dictです。unetのLoRAレイヤーと区別するために、キーにはtext_encoderというプレフィックスを付加する必要があります。 - network_alphas (
dict[str, float]) — 安定した学習とアンダーフローの防止に使用されるネットワークアルファの値です。この値は、kohya-ss トレーナースクリプトの--network_alphaオプションと同じ意味を持ちます。このリンクを参照してください。 - text_encoder (
CLIPTextModel) — LoRA層を読み込む対象のテキストエンコーダーモデル。 - prefix (
str) —state_dictにおけるtext_encoderの想定されるプレフィックス。 - lora_scale (
float) — 通常の lora レイヤーの出力に lora 線形レイヤーの出力を加算する前に、その出力をどの程度スケーリングするかを示します。 - adapter_name (
str, 省略可) — 読み込まれたアダプターモデルを参照するために使用するアダプター名。指定しない場合、読み込まれるアダプターの総数を i としてdefault_{i}が使用されます。 - low_cpu_mem_usage (
bool、省略可) — 事前学習済み LoRA 重みのみを読み込み、ランダム重みの初期化を行わないことで、モデルの読み込みを高速化します。 - hotswap (
bool、省略可) — load_lora_weights()を参照してください。 - metadata (
dict) — 任意の LoRA アダプターメタデータ。指定された場合、peftのLoraConfig引数は state dict から導出されません。
これにより、state_dictで指定されたLoRAレイヤーがtext_encoderに読み込まれます。
load_lora_into_unet
< source >( state_dictnetwork_alphasunetadapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
パラメータ
- state_dict (
dict) — LoRAレイヤーのパラメータを含む標準的なstate dictです。キーは、unetに直接インデックスとして使用することも、テキストエンコーダーのLoRAレイヤーと区別するためにunetというプレフィックスを付加することもできます。 - network_alphas (
dict[str, float]) — 安定した学習とアンダーフローの防止に使用されるネットワークアルファの値です。この値は、kohya-ss トレーナースクリプトの--network_alphaオプションと同じ意味を持ちます。このリンクを参照してください。 - unet (
UNet2DConditionModel) — LoRA層を読み込む対象のUNetモデルです。 - adapter_name (
str, 省略可) — 読み込まれたアダプターモデルを参照するために使用するアダプター名。指定しない場合、読み込まれるアダプターの総数を i としてdefault_{i}が使用されます。 - low_cpu_mem_usage (
bool、省略可) — ランダムな重みの初期化を行わず、事前学習済み LoRA 重みのみを読み込むことで、モデルの読み込みを高速化します。 - hotswap (
bool、省略可) — load_lora_weights()を参照してください。 - metadata (
dict) — 任意の LoRA アダプターメタデータ。指定された場合、peftのLoraConfig引数は state dict から導出されません。
これにより、state_dictで指定されたLoRAレイヤーがunetに読み込まれます。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
パラメータ
- pretrained_model_name_or_path_or_dict (
strまたはos.PathLikeまたはdict) — 以下のいずれかです:- Hub にホストされている事前学習済みモデルの model id(例:
google/ddpm-celebahq-256)を表す文字列。 ./my_model_directoryのように、ModelMixin.save_pretrained() で保存されたモデルの重みを含むディレクトリへのパス。- torch state dictです。
- Hub にホストされている事前学習済みモデルの model id(例:
- 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 ベアラ認証に使用するトークンです。Trueの場合、diffusers-cli loginで生成されたトークン(~/.huggingfaceに保存されています)が使用されます。 - revision (
str、任意、デフォルトは"main") — 使用する特定のモデルのバージョンです。ブランチ名、タグ名、コミット ID、または Git によって許可される任意の識別子を使用できます。 - subfolder (
str、任意、デフォルトは"") — Hub またはローカル上のより大きなモデルリポジトリ内での、モデルファイルのサブフォルダの場所。 - weight_name (
str, 省略可能、デフォルトは None) — シリアライズされた state dict ファイルの名前。 - return_lora_metadata (
bool、省略可能、デフォルトは False) — 有効にすると、state dict に通常含まれている LoRA アダプターのメタデータも追加で返されます。
LoRAの重みとネットワークのアルファのstate dictを返します。
> A1111形式のLoRAチェックポイントの読み込みを、限定的な範囲でサポートしています。 > > この機能は実験的であり、将来変更される可能性があります。
save_lora_weights
< source >( save_directory: str | os.PathLikeunet_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Nonetext_encoder_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Nonetext_encoder_2_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Trueunet_lora_adapter_metadata = Nonetext_encoder_lora_adapter_metadata = Nonetext_encoder_2_lora_adapter_metadata = None )
詳細については、save_lora_weights()を参照してください。
unfuse_lora
< source >( components: list[str] = ['unet', 'text_encoder', 'text_encoder_2']**kwargs )
詳細については、unfuse_lora()を参照してください。
SD3LoraLoaderMixin
LoRAレイヤーをSD3Transformer2DModel、CLIPTextModel、およびCLIPTextModelWithProjectionに読み込みます。
StableDiffusion3Pipelineに固有です。
fuse_lora
< source >( components: list[str] = ['transformer', 'text_encoder', 'text_encoder_2']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_text_encoder
< source >( state_dictnetwork_alphastext_encoderprefix = Nonelora_scale = 1.0adapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
パラメータ
- state_dict (
dict) — LoRAレイヤーのパラメータを含む標準的なstate dictです。unetのLoRAレイヤーと区別するために、キーにはtext_encoderというプレフィックスを付加する必要があります。 - network_alphas (
dict[str, float]) — 安定した学習とアンダーフローの防止に使用されるネットワークアルファの値です。この値は、kohya-ss トレーナースクリプトの--network_alphaオプションと同じ意味を持ちます。このリンクを参照してください。 - text_encoder (
CLIPTextModel) — LoRA層を読み込む対象のテキストエンコーダーモデル。 - prefix (
str) —state_dictにおけるtext_encoderの想定されるプレフィックス。 - lora_scale (
float) — 通常の lora レイヤーの出力に lora 線形レイヤーの出力を加算する前に、その出力をどの程度スケーリングするかを示します。 - adapter_name (
str, 省略可) — 読み込まれたアダプターモデルを参照するために使用するアダプター名。指定しない場合、読み込まれるアダプターの総数を i としてdefault_{i}が使用されます。 - low_cpu_mem_usage (
bool、省略可) — 事前学習済み LoRA 重みのみを読み込み、ランダム重みの初期化を行わないことで、モデルの読み込みを高速化します。 - hotswap (
bool、省略可) — load_lora_weights()を参照してください。 - metadata (
dict) — 任意の LoRA アダプターメタデータ。指定された場合、peftのLoraConfig引数は state dict から導出されません。
これにより、state_dictで指定されたLoRAレイヤーがtext_encoderに読み込まれます。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Nonetext_encoder_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Nonetext_encoder_2_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata = Nonetext_encoder_lora_adapter_metadata = Nonetext_encoder_2_lora_adapter_metadata = None )
詳細については、save_lora_weights()を参照してください。
unfuse_lora
< source >( components: list[str] = ['transformer', 'text_encoder', 'text_encoder_2']**kwargs )
詳細については、unfuse_lora()を参照してください。
FluxLoraLoaderMixin
LoRAレイヤーをFluxTransformer2DModel、CLIPTextModelに読み込みます。
FluxPipelineに固有のものです。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、lora_state_dict()を参照してください。
load_lora_into_text_encoder
< source >( state_dictnetwork_alphastext_encoderprefix = Nonelora_scale = 1.0adapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
パラメータ
- state_dict (
dict) — LoRAレイヤーのパラメータを含む標準的なstate dictです。unetのLoRAレイヤーと区別するために、キーにはtext_encoderというプレフィックスを付加する必要があります。 - network_alphas (
dict[str, float]) — 安定した学習とアンダーフローの防止に使用されるネットワークアルファの値です。この値は、kohya-ss トレーナースクリプトの--network_alphaオプションと同じ意味を持ちます。このリンクを参照してください。 - text_encoder (
CLIPTextModel) — LoRA層を読み込む対象のテキストエンコーダーモデル。 - prefix (
str) —state_dictにおけるtext_encoderの想定されるプレフィックス。 - lora_scale (
float) — 通常の lora レイヤーの出力に lora 線形レイヤーの出力を加算する前に、その出力をどの程度スケーリングするかを示します。 - adapter_name (
str, 省略可) — 読み込まれたアダプターモデルを参照するために使用するアダプター名。指定しない場合、読み込まれるアダプターの総数を i としてdefault_{i}が使用されます。 - low_cpu_mem_usage (
bool、省略可) — 事前学習済み LoRA 重みのみを読み込み、ランダム重みの初期化を行わないことで、モデルの読み込みを高速化します。 - hotswap (
bool、省略可) — load_lora_weights()を参照してください。 - metadata (
dict) — 任意の LoRA アダプターメタデータ。指定された場合、peftのLoraConfig引数は state dict から導出されません。
これにより、state_dictで指定されたLoRAレイヤーがtext_encoderに読み込まれます。
load_lora_into_transformer
< source >( state_dictnetwork_alphastransformeradapter_name = Nonemetadata = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = False )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]return_alphas: bool = False**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Nonetext_encoder_lora_layers: dict[str, torch.nn.Module] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata = Nonetext_encoder_lora_adapter_metadata = None )
パラメータ
- save_directory (
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 — state dict と一緒にシリアライズされる、transformer に関連付けられた LoRA アダプターのメタデータ。
- text_encoder_lora_adapter_metadata — テキストエンコーダーに関連付けられたLoRAアダプターのメタデータ。ステートディクトとともにシリアライズされます。
UNetおよびテキストエンコーダーに対応するLoRAパラメータを保存します。
unfuse_lora
< source >( components: list[str] = ['transformer', 'text_encoder']**kwargs )
pipe.fuse_lora() の効果を逆転します。
unload_lora_weights
< source >( reset_to_overwritten_params = False )
パラメータ
- reset_to_overwritten_params (
bool、デフォルトはFalse) — LoRAで読み込まれたモジュールを元のパラメータにリセットするかどうか。Fluxのドキュメントを参照してください。
LoRAパラメータをアンロードします。
Flux2LoraLoaderMixin
Flux2Transformer2DModelにLoRAレイヤーを読み込みます。Flux2Pipeline固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
Flux3LoraLoaderMixin
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
BriaFibo2LoraLoaderMixin
BriaFibo2Transformer2DModelにLoRAレイヤーを読み込みます。BriaFibo2Pipeline固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
ErnieImageLoraLoaderMixin
ErnieImagePipelineに固有の処理として、LoRAレイヤーをErnieImageTransformer2DModelに読み込みます。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
LTX2LoraLoaderMixin
LTX2VideoTransformer3DModelにLoRAレイヤーを読み込みます。LTX2Pipeline固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = Noneprefix: str = 'transformer' )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
CogVideoXLoraLoaderMixin
CogVideoXTransformer3DModelにLoRAレイヤーを読み込みます。CogVideoXPipeline固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
Mochi1LoraLoaderMixin
MochiTransformer3DModelにLoRAレイヤーを読み込みます。MochiPipeline固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
AuraFlowLoraLoaderMixin
AuraFlowTransformer2DModel に LoRA レイヤーを読み込みます。AuraFlowPipeline 固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
LTXVideoLoraLoaderMixin
LoRAレイヤーをLTXVideoTransformer3DModelに読み込みます。LTXPipeline固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
SanaLoraLoaderMixin
SanaTransformer2DModelにLoRAレイヤーを読み込みます。SanaPipeline固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
HeliosLoraLoaderMixin
HeliosTransformer3DModelにLoRAレイヤーを読み込みます。HeliosPipelineおよびHeliosPyramidPipeline固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
HunyuanVideoLoraLoaderMixin
HunyuanVideoTransformer3DModelにLoRAレイヤーを読み込みます。HunyuanVideoPipeline固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
Lumina2LoraLoaderMixin
Lumina2Transformer2DModelにLoRAレイヤーを読み込みます。Lumina2Pipeline固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
CogView4LoraLoaderMixin
LoRAレイヤーをWanTransformer3DModelに読み込みます。CogView4Pipeline固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
WanLoraLoaderMixin
LoRAレイヤーをWanTransformer3DModelに読み込みます。WanPipelineと[WanImageToVideoPipelineに固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
SkyReelsV2LoraLoaderMixin
LoRAレイヤーをSkyReelsV2Transformer3DModelに読み込みます。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
AmusedLoraLoaderMixin
load_lora_into_transformer
< source >( state_dictnetwork_alphastransformeradapter_name = Nonemetadata = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = False )
詳細については、load_lora_into_unet()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketext_encoder_lora_layers: dict[str, torch.nn.Module] = Nonetransformer_lora_layers: dict[str, torch.nn.Module] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = True )
パラメータ
- save_directory (
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
LoRAレイヤーをCosmosTransformer3DModelとAnimaTextConditionerに読み込みます。
fuse_lora
< source >( components: list[str] = ['transformer', 'text_conditioner']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
詳細については、unfuse_lora()を参照してください。
AceStepLoraLoaderMixin
AceStepTransformer1DModelにLoRA層を読み込みます。AceStepPipeline固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
HiDreamImageLoraLoaderMixin
HiDreamImageTransformer2DModelにLoRAレイヤーを読み込みます。HiDreamImagePipeline固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
QwenImageLoraLoaderMixin
QwenImageTransformer2DModelにLoRAレイヤーを読み込みます。QwenImagePipeline固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
ZImageLoraLoaderMixin
LoRAレイヤーをZImageTransformer2DModelに読み込みます。ZImagePipeline固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
CosmosLoraLoaderMixin
CosmosTransformer3DModelにLoRA層を読み込みます。Cosmos2_5_PredictBasePipeline固有の処理です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
KandinskyLoraLoaderMixin
Kandinsky5Transformer3DModelにLoRA層を読み込み、
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
Ideogram4LoraLoaderMixin
Ideogram4Transformer2DModel に LoRA レイヤーを読み込みます。Ideogram4Pipeline 固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
Krea2LoraLoaderMixin
Krea2Transformer2DModelにLoRAレイヤーを読み込みます。Krea2Pipeline固有の機能です。
fuse_lora
< source >( components: list[str] = ['transformer']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = False**kwargs )
詳細については、load_lora_weights()を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = None )
詳細については、save_lora_weights()を参照してください。
詳細については、unfuse_lora()を参照してください。
MiniMaxH3LoraLoaderMixin
MiniMaxH3Transformer3DModelにLoRAレイヤーを読み込みます。MiniMaxH3ModularPipeline固有の機能です。
MiniMax-H3には、モジュール名が同一の2つの独立した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 のメモリ予算を回復できます。
プルーニング済みチェックポイント(Comfy-Org/MiniMax-H3 内の *_pruned_* ファイル。その一つが joyfox/MiniMax-H3-Turbo)に対して学習された LoRA は、サイズ不一致で失敗します。
Alpha 情報を持たないファイルは alpha == rank(スケール 1.0。例えば larryvrh/MiniMax-H3-Turbo-Lora が明記している慣例)で読み込まれます。一方、__metadata__ に alpha エントリ(例えば lightx2v/Minimax-h3-Turbo の 8 ステップファイル)が存在する場合は、その値が優先的に使用されます。
fuse_lora
< source >( components: list[str] = ['transformer', 'transformer_ref']lora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
詳細については、fuse_lora()を参照してください。
load_lora_into_transformer
< source >( state_dicttransformeradapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
詳細については、load_lora_into_unet()を参照してください。
load_lora_into_transformer_ref
< source >( state_dicttransformer_refprefixadapter_name = None_pipeline = Nonelow_cpu_mem_usage = Falsehotswap: bool = Falsemetadata = None )
transformer_ref パーティションに LoRA レイヤーを読み込みます。prefix はキーが持つコンポーネント名で、パーティション名を指定するファイルでは transformer_ref、load_into_transformer_ref=True によってここにルーティングされるファイルでは transformer になります。詳細は load_lora_into_unet() を参照してください。
load_lora_weights
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]adapter_name: str | None = Nonehotswap: bool = Falseload_into_transformer_ref: bool = False**kwargs )
transformer に LoRA 層を読み込みます。load_into_transformer_ref=True を指定すると、transformer_ref に読み込まれます。詳細は load_lora_weights() を参照してください。
lora_state_dict
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )
詳細については、lora_state_dict()を参照してください。
save_lora_weights
< source >( save_directory: str | os.PathLiketransformer_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Nonetransformer_ref_lora_layers: dict[str, typing.Union[torch.nn.Module, torch.Tensor]] = Noneis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = Truetransformer_lora_adapter_metadata: dict | None = Nonetransformer_ref_lora_adapter_metadata: dict | None = None )
MiniMax-H3 の1つのパーティション、または両方のパーティションの LoRA 層を保存します。LoRA がどのパーティションに属するかは、そのキーからは復元できないため、これを記録した H3 LoRA を公開するには、これが唯一の方法です。詳細は save_lora_weights() を参照してください。
詳細については、unfuse_lora()を参照してください。
PikaH3FlexLoraLoaderMixin
MiniMaxH3Transformer3DModelにLoRAレイヤーを読み込みます。PikaH3FlexModularPipeline固有の機能です。
Pika H3 Flex のリリースは、2 つの MiniMax-H3 トランスフォーマーパーティションに対する rank-128 のアダプターペアであり、diffusers のモジュール名をそのまま使ったプレーンな PEFT ダンプとして公開されています(transformer には fl2va/adapter.safetensors、transformer_ref には ref2va/adapter.safetensors)。alpha を含まないファイルは alpha == rank(スケール 1.0)で読み込まれ、これはアダプター自身の契約です。読み込み、ルーティング、保存は MiniMaxH3LoraLoaderMixin のものと同様で、fl2va アダプターは transformer に入り、ref2va アダプターは transformer_ref に入ります。パイプラインがそのパーティションのみを保持している場合(workflow="ref2va")は単独で、両方を保持している場合は load_into_transformer_ref=True を指定して読み込まれます。
LoraBaseMixin
LoRAの処理を行うユーティリティクラスです。
delete_adapters
< source >( adapter_names: list[str] | str )
パイプラインからアダプターのLoRA層を削除します。
例:
from diffusers import AutoPipelineForText2Image
import torch
pipeline = AutoPipelineForText2Image.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights(
"jbilcke-hf/sdxl-cinematic-1", weight_name="pytorch_lora_weights.safetensors", adapter_names="cinematic"
)
pipeline.delete_adapters("cinematic")パイプラインのアクティブなLoRAレイヤーを無効にします。
例:
from diffusers import AutoPipelineForText2Image
import torch
pipeline = AutoPipelineForText2Image.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights(
"jbilcke-hf/sdxl-cinematic-1", weight_name="pytorch_lora_weights.safetensors", adapter_name="cinematic"
)
pipeline.disable_lora()パイプラインのアクティブなLoRAレイヤーを有効にします。
例:
from diffusers import AutoPipelineForText2Image
import torch
pipeline = AutoPipelineForText2Image.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights(
"jbilcke-hf/sdxl-cinematic-1", weight_name="pytorch_lora_weights.safetensors", adapter_name="cinematic"
)
pipeline.enable_lora()enable_lora_hotswap
< source >( **kwargs )
モデルの再コンパイルをトリガーせずに、または読み込まれたアダプターのランクが異なる場合でも、アダプターをホットスワップできます。
fuse_lora
< source >( components: list[str] | None = Nonelora_scale: float = 1.0safe_fusing: bool = Falseadapter_names: list[str] | None = None**kwargs )
パラメータ
対応するブロックの元のパラメータにLoRAパラメータを融合します。
例:
from diffusers import DiffusionPipeline
import torch
pipeline = DiffusionPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights("nerijs/pixel-art-xl", weight_name="pixel-art-xl.safetensors", adapter_name="pixel")
pipeline.fuse_lora(lora_scale=0.7)現在アクティブなアダプターのリストを取得します。
パイプライン内で現在利用可能なすべてのアダプターの一覧を取得します。
set_adapters
< source >( adapter_names: list[str] | stradapter_weights: float | dict[str, float | dict | None] | list[float | dict[str, float | dict | None] | None] | None = None )
パラメータ
- adapter_names (
list[str]またはstr) — 使用するアダプターの名前です。 - adapter_weights (
float、dictまたはlist、省略可) — アダプター用の重みです。スカラー値を指定すると、すべてのLoRA互換コンポーネントがその値でスケーリングされます。辞書を指定すると、コンポーネント名(例:"unet"、"transformer"または"text_encoder")をキーに重みをマッピングします。UNetコンポーネントの重みは、ブロックのスケーリングを格納したネストされた辞書としても指定できます。スカラーまたは辞書を1つだけ指定すると、すべてのアダプターに適用されます。リストを指定する場合は、adapter_namesの順序に従って、アダプターごとにスカラー、辞書、またはNoneを1つずつ含める必要があります。Noneは、リストの要素やコンポーネントの重みを含むすべての場合で、デフォルト値1.0になります。指定されていないコンポーネントやUNetのブロックも、デフォルト値は1.0です。
パイプラインで使用するために、現在アクティブなアダプターを設定します。
例:
from diffusers import AutoPipelineForText2Image
import torch
pipeline = AutoPipelineForText2Image.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights(
"jbilcke-hf/sdxl-cinematic-1", weight_name="pytorch_lora_weights.safetensors", adapter_name="cinematic"
)
pipeline.load_lora_weights(
"troveski/sdxl-lora", weight_name="pytorch_lora_weights.safetensors", adapter_name="illustration"
)
pipeline.set_adapters(["cinematic", "illustration"], adapter_weights=[0.5, 0.5])
pipeline.set_adapters(
["cinematic", "illustration"],
adapter_weights=[{"unet": 0.5}, {"unet": 0.8, "text_encoder": 0.6}],
)set_lora_device
< source >( adapter_names: list[str]device: torch.device | str | int )
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
< source >( components: list[str] | None = None**kwargs )
pipe.fuse_lora() の効果を逆転します。
LoRAパラメータをアンロードします。
write_lora_layers
< source >( state_dict: dict[str, torch.Tensor]save_directory: stris_main_process: boolweight_name: strsave_function: Callablesafe_serialization: boollora_adapter_metadata: dict | None = None )
LoRA層のstate dictを(メタデータ付きで)ディスクに書き込みます。