Buckets:
| # LoRA | |
| LoRA is a fast and lightweight training method that inserts and trains a significantly smaller number of parameters instead of all the model parameters. This produces a smaller file (~100 MBs) and makes it easier to quickly train a model to learn a new concept. LoRA weights are typically loaded into the denoiser, text encoder or both. The denoiser usually corresponds to a UNet ([UNet2DConditionModel](/docs/diffusers/pr_13881/en/api/models/unet2d-cond#diffusers.UNet2DConditionModel), for example) or a Transformer ([SD3Transformer2DModel](/docs/diffusers/pr_13881/en/api/models/sd3_transformer2d#diffusers.SD3Transformer2DModel), for example). There are several classes for loading LoRA weights: | |
| - `StableDiffusionLoraLoaderMixin` provides functions for loading and unloading, fusing and unfusing, enabling and disabling, and more functions for managing LoRA weights. This class can be used with any model. | |
| - `StableDiffusionXLLoraLoaderMixin` is a [Stable Diffusion (SDXL)](../../api/pipelines/stable_diffusion/stable_diffusion_xl) version of the `StableDiffusionLoraLoaderMixin` class for loading and saving LoRA weights. It can only be used with the SDXL model. | |
| - `SD3LoraLoaderMixin` provides similar functions for [Stable Diffusion 3](https://huggingface.co/blog/sd3). | |
| - `FluxLoraLoaderMixin` provides similar functions for [Flux](https://huggingface.co/docs/diffusers/main/en/api/pipelines/flux). | |
| - `CogVideoXLoraLoaderMixin` provides similar functions for [CogVideoX](https://huggingface.co/docs/diffusers/main/en/api/pipelines/cogvideox). | |
| - `Mochi1LoraLoaderMixin` provides similar functions for [Mochi](https://huggingface.co/docs/diffusers/main/en/api/pipelines/mochi). | |
| - `AuraFlowLoraLoaderMixin` provides similar functions for [AuraFlow](https://huggingface.co/fal/AuraFlow). | |
| - `LTXVideoLoraLoaderMixin` provides similar functions for [LTX-Video](https://huggingface.co/docs/diffusers/main/en/api/pipelines/ltx_video). | |
| - `SanaLoraLoaderMixin` provides similar functions for [Sana](https://huggingface.co/docs/diffusers/main/en/api/pipelines/sana). | |
| - `HeliosLoraLoaderMixin` provides similar functions for [HunyuanVideo](https://huggingface.co/docs/diffusers/main/en/api/pipelines/helios). | |
| - `HunyuanVideoLoraLoaderMixin` provides similar functions for [HunyuanVideo](https://huggingface.co/docs/diffusers/main/en/api/pipelines/hunyuan_video). | |
| - `Lumina2LoraLoaderMixin` provides similar functions for [Lumina2](https://huggingface.co/docs/diffusers/main/en/api/pipelines/lumina2). | |
| - `WanLoraLoaderMixin` provides similar functions for [Wan](https://huggingface.co/docs/diffusers/main/en/api/pipelines/wan). | |
| - `SkyReelsV2LoraLoaderMixin` provides similar functions for [SkyReels-V2](https://huggingface.co/docs/diffusers/main/en/api/pipelines/skyreels_v2). | |
| - `CogView4LoraLoaderMixin` provides similar functions for [CogView4](https://huggingface.co/docs/diffusers/main/en/api/pipelines/cogview4). | |
| - `AmusedLoraLoaderMixin` is for the `AmusedPipeline`. | |
| - `AnimaLoraLoaderMixin` provides similar functions for [Anima](https://huggingface.co/docs/diffusers/main/en/api/pipelines/anima). | |
| - `HiDreamImageLoraLoaderMixin` provides similar functions for [HiDream Image](https://huggingface.co/docs/diffusers/main/en/api/pipelines/hidream) | |
| - `QwenImageLoraLoaderMixin` provides similar functions for [Qwen Image](https://huggingface.co/docs/diffusers/main/en/api/pipelines/qwen). | |
| - `ZImageLoraLoaderMixin` provides similar functions for [Z-Image](https://huggingface.co/docs/diffusers/main/en/api/pipelines/zimage). | |
| - `Flux2LoraLoaderMixin` provides similar functions for [Flux2](https://huggingface.co/docs/diffusers/main/en/api/pipelines/flux2). | |
| - `ErnieImageLoraLoaderMixin` provides similar functions for [Ernie-Image](https://huggingface.co/docs/diffusers/main/en/api/pipelines/ernie_image). | |
| - `LTX2LoraLoaderMixin` provides similar functions for [Flux2](https://huggingface.co/docs/diffusers/main/en/api/pipelines/ltx2). | |
| - `LoraBaseMixin` provides a base class with several utility methods to fuse, unfuse, unload, LoRAs and more. | |
| > [!TIP] | |
| > To learn more about how to load LoRA weights, see the [LoRA](../../tutorials/using_peft_for_inference) loading guide. | |
| ## LoraBaseMixin[[diffusers.loaders.lora_base.LoraBaseMixin]] | |
| Utility class for handling LoRAs. | |
| - **adapter_names** (`list[str, str]`) -- | |
| The names of the adapters to delete. | |
| Delete an adapter's LoRA layers from the pipeline. | |
| Example: | |
| ```py | |
| 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") | |
| ``` | |
| Disables the active LoRA layers of the pipeline. | |
| Example: | |
| ```py | |
| 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() | |
| ``` | |
| Enables the active LoRA layers of the pipeline. | |
| Example: | |
| ```py | |
| 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() | |
| ``` | |
| - **target_rank** (`int`) -- | |
| The highest rank among all the adapters that will be loaded. | |
| - **check_compiled** (`str`, *optional*, defaults to `"error"`) -- | |
| How to handle a model that is already compiled. The check can return the following messages: | |
| - "error" (default): raise an error | |
| - "warn": issue a warning | |
| - "ignore": do nothing | |
| Hotswap adapters without triggering recompilation of a model or if the ranks of the loaded adapters are | |
| different. | |
| - **components** -- (`list[str]`): list of LoRA-injectable components to fuse the LoRAs into. | |
| - **lora_scale** (`float`, defaults to 1.0) -- | |
| Controls how much to influence the outputs with the LoRA parameters. | |
| - **safe_fusing** (`bool`, defaults to `False`) -- | |
| Whether to check fused weights for NaN values before fusing and if values are NaN not fusing them. | |
| - **adapter_names** (`list[str]`, *optional*) -- | |
| Adapter names to be used for fusing. If nothing is passed, all active adapters will be fused. | |
| Fuses the LoRA parameters into the original parameters of the corresponding blocks. | |
| > [!WARNING] > This is an experimental API. | |
| Example: | |
| ```py | |
| 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) | |
| ``` | |
| Gets the list of the current active adapters. | |
| Example: | |
| ```python | |
| 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() | |
| ``` | |
| Gets the current list of all available adapters in the pipeline. | |
| - **adapter_names** (`list[str]` or `str`) -- | |
| The names of the adapters to use. | |
| - **adapter_weights** (`list[float, float]`, *optional*) -- | |
| The adapter(s) weights to use with the UNet. If `None`, the weights are set to `1.0` for all the | |
| adapters. | |
| Set the currently active adapters for use in the pipeline. | |
| Example: | |
| ```py | |
| 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]) | |
| ``` | |
| - **adapter_names** (`list[str]`) -- | |
| list of adapters to send device to. | |
| - **device** (`torch.device | str | int`) -- | |
| Device to send the adapters to. Can be either a torch device, a str or an integer. | |
| Moves the LoRAs listed in `adapter_names` to a target device. Useful for offloading the LoRA to the CPU in case | |
| you want to load multiple adapters and free some GPU memory. | |
| After offloading the LoRA adapters to CPU, as long as the rest of the model is still on GPU, the LoRA adapters | |
| can no longer be used for inference, as that would cause a device mismatch. Remember to set the device back to | |
| GPU before using those LoRA adapters for inference. | |
| ```python | |
| >>> 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") | |
| >>> ... | |
| ``` | |
| - **components** (`list[str]`) -- list of LoRA-injectable components to unfuse LoRA from. | |
| - **unfuse_unet** (`bool`, defaults to `True`) -- Whether to unfuse the UNet LoRA parameters. | |
| - **unfuse_text_encoder** (`bool`, defaults to `True`) -- | |
| Whether to unfuse the text encoder LoRA parameters. If the text encoder wasn't monkey-patched with the | |
| LoRA parameters then it won't have any effect. | |
| Reverses the effect of | |
| [`pipe.fuse_lora()`](https://huggingface.co/docs/diffusers/main/en/api/loaders#diffusers.loaders.LoraBaseMixin.fuse_lora). | |
| > [!WARNING] > This is an experimental API. | |
| Unloads the LoRA parameters. | |
| Examples: | |
| ```python | |
| >>> # Assuming `pipeline` is already loaded with the LoRA parameters. | |
| >>> pipeline.unload_lora_weights() | |
| >>> ... | |
| ``` | |
| Writes the state dict of the LoRA layers (optionally with metadata) to disk. | |
| ## StableDiffusionLoraLoaderMixin[[diffusers.loaders.StableDiffusionLoraLoaderMixin]] | |
| Load LoRA layers into Stable Diffusion [UNet2DConditionModel](/docs/diffusers/pr_13881/en/api/models/unet2d-cond#diffusers.UNet2DConditionModel) and | |
| [`CLIPTextModel`](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModel). | |
| - **state_dict** (`dict`) -- | |
| A standard state dict containing the lora layer parameters. The key should be prefixed with an | |
| additional `text_encoder` to distinguish between unet lora layers. | |
| - **network_alphas** (`dict[str, float]`) -- | |
| The value of the network alpha used for stable learning and preventing underflow. This value has the | |
| same meaning as the `--network_alpha` option in the kohya-ss trainer script. Refer to [this | |
| link](https://github.com/darkstorm2150/sd-scripts/blob/main/docs/train_network_README-en.md#execute-learning). | |
| - **text_encoder** (`CLIPTextModel`) -- | |
| The text encoder model to load the LoRA layers into. | |
| - **prefix** (`str`) -- | |
| Expected prefix of the `text_encoder` in the `state_dict`. | |
| - **lora_scale** (`float`) -- | |
| How much to scale the output of the lora linear layer before it is added with the output of the regular | |
| lora layer. | |
| - **adapter_name** (`str`, *optional*) -- | |
| Adapter name to be used for referencing the loaded adapter model. If not specified, it will use | |
| `default_{i}` where i is the total number of adapters being loaded. | |
| - **low_cpu_mem_usage** (`bool`, *optional*) -- | |
| Speed up model loading by only loading the pretrained LoRA weights and not initializing the random | |
| weights. | |
| - **hotswap** (`bool`, *optional*) -- | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights). | |
| - **metadata** (`dict`) -- | |
| Optional LoRA adapter metadata. When supplied, the `LoraConfig` arguments of `peft` won't be derived | |
| from the state dict. | |
| This will load the LoRA layers specified in `state_dict` into `text_encoder` | |
| - **state_dict** (`dict`) -- | |
| A standard state dict containing the lora layer parameters. The keys can either be indexed directly | |
| into the unet or prefixed with an additional `unet` which can be used to distinguish between text | |
| encoder lora layers. | |
| - **network_alphas** (`dict[str, float]`) -- | |
| The value of the network alpha used for stable learning and preventing underflow. This value has the | |
| same meaning as the `--network_alpha` option in the kohya-ss trainer script. Refer to [this | |
| link](https://github.com/darkstorm2150/sd-scripts/blob/main/docs/train_network_README-en.md#execute-learning). | |
| - **unet** (`UNet2DConditionModel`) -- | |
| The UNet model to load the LoRA layers into. | |
| - **adapter_name** (`str`, *optional*) -- | |
| Adapter name to be used for referencing the loaded adapter model. If not specified, it will use | |
| `default_{i}` where i is the total number of adapters being loaded. | |
| - **low_cpu_mem_usage** (`bool`, *optional*) -- | |
| Speed up model loading only loading the pretrained LoRA weights and not initializing the random | |
| weights. | |
| - **hotswap** (`bool`, *optional*) -- | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights). | |
| - **metadata** (`dict`) -- | |
| Optional LoRA adapter metadata. When supplied, the `LoraConfig` arguments of `peft` won't be derived | |
| from the state dict. | |
| This will load the LoRA layers specified in `state_dict` into `unet`. | |
| - **pretrained_model_name_or_path_or_dict** (`str` or `os.PathLike` or `dict`) -- | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict). | |
| - **adapter_name** (`str`, *optional*) -- | |
| Adapter name to be used for referencing the loaded adapter model. If not specified, it will use | |
| `default_{i}` where i is the total number of adapters being loaded. | |
| - **low_cpu_mem_usage** (`bool`, *optional*) -- | |
| Speed up model loading by only loading the pretrained LoRA weights and not initializing the random | |
| weights. | |
| - **hotswap** (`bool`, *optional*) -- | |
| Defaults to `False`. Whether to substitute an existing (LoRA) adapter with the newly loaded adapter | |
| in-place. This means that, instead of loading an additional adapter, this will take the existing | |
| adapter weights and replace them with the weights of the new adapter. This can be faster and more | |
| memory efficient. However, the main advantage of hotswapping is that when the model is compiled with | |
| torch.compile, loading the new adapter does not require recompilation of the model. When using | |
| hotswapping, the passed `adapter_name` should be the name of an already loaded adapter. | |
| If the new adapter and the old adapter have different ranks and/or LoRA alphas (i.e. scaling), you need | |
| to call an additional method before loading the adapter: | |
| ```py | |
| 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 | |
| ``` | |
| Note that hotswapping adapters of the text encoder is not yet supported. There are some further | |
| limitations to this technique, which are documented here: | |
| https://huggingface.co/docs/peft/main/en/package_reference/hotswap | |
| - **kwargs** (`dict`, *optional*) -- | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict). | |
| Load LoRA weights specified in `pretrained_model_name_or_path_or_dict` into `self.unet` and | |
| `self.text_encoder`. | |
| All kwargs are forwarded to `self.lora_state_dict`. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details on how the state dict is | |
| loaded. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details on how the state dict is | |
| loaded into `self.unet`. | |
| See [load_lora_into_text_encoder()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_text_encoder) for more details on how the state | |
| dict is loaded into `self.text_encoder`. | |
| - **pretrained_model_name_or_path_or_dict** (`str` or `os.PathLike` or `dict`) -- | |
| Can be either: | |
| - A string, the *model id* (for example `google/ddpm-celebahq-256`) of a pretrained model hosted on | |
| the Hub. | |
| - A path to a *directory* (for example `./my_model_directory`) containing the model weights saved | |
| with [ModelMixin.save_pretrained()](/docs/diffusers/pr_13881/en/api/models/overview#diffusers.ModelMixin.save_pretrained). | |
| - A [torch state | |
| dict](https://pytorch.org/tutorials/beginner/saving_loading_models.html#what-is-a-state-dict). | |
| - **cache_dir** (`str | os.PathLike`, *optional*) -- | |
| Path to a directory where a downloaded pretrained model configuration is cached if the standard cache | |
| is not used. | |
| - **force_download** (`bool`, *optional*, defaults to `False`) -- | |
| Whether or not to force the (re-)download of the model weights and configuration files, overriding the | |
| cached versions if they exist. | |
| - **proxies** (`dict[str, str]`, *optional*) -- | |
| A dictionary of proxy servers to use by protocol or endpoint, for example, `{'http': 'foo.bar:3128', | |
| 'http://hostname': 'foo.bar:4012'}`. The proxies are used on each request. | |
| - **local_files_only** (`bool`, *optional*, defaults to `False`) -- | |
| Whether to only load local model weights and configuration files or not. If set to `True`, the model | |
| won't be downloaded from the Hub. | |
| - **token** (`str` or *bool*, *optional*) -- | |
| The token to use as HTTP bearer authorization for remote files. If `True`, the token generated from | |
| `diffusers-cli login` (stored in `~/.huggingface`) is used. | |
| - **revision** (`str`, *optional*, defaults to `"main"`) -- | |
| The specific model version to use. It can be a branch name, a tag name, a commit id, or any identifier | |
| allowed by Git. | |
| - **subfolder** (`str`, *optional*, defaults to `""`) -- | |
| The subfolder location of a model file within a larger model repository on the Hub or locally. | |
| - **weight_name** (`str`, *optional*, defaults to None) -- | |
| Name of the serialized state dict file. | |
| - **return_lora_metadata** (`bool`, *optional*, defaults to False) -- | |
| When enabled, additionally return the LoRA adapter metadata, typically found in the state dict. | |
| Return state dict for lora weights and the network alphas. | |
| > [!WARNING] > We support loading A1111 formatted LoRA checkpoints in a limited capacity. > > This function is | |
| experimental and might change in the future. | |
| - **save_directory** (`str` or `os.PathLike`) -- | |
| Directory to save LoRA parameters to. Will be created if it doesn't exist. | |
| - **unet_lora_layers** (`dict[str, torch.nn.Module]` or `dict[str, torch.Tensor]`) -- | |
| State dict of the LoRA layers corresponding to the `unet`. | |
| - **text_encoder_lora_layers** (`dict[str, torch.nn.Module]` or `dict[str, torch.Tensor]`) -- | |
| State dict of the LoRA layers corresponding to the `text_encoder`. Must explicitly pass the text | |
| encoder LoRA state dict because it comes from 🤗 Transformers. | |
| - **is_main_process** (`bool`, *optional*, defaults to `True`) -- | |
| Whether the process calling this is the main process or not. Useful during distributed training and you | |
| need to call this function on all processes. In this case, set `is_main_process=True` only on the main | |
| process to avoid race conditions. | |
| - **save_function** (`Callable`) -- | |
| The function to use to save the state dictionary. Useful during distributed training when you need to | |
| replace `torch.save` with another method. Can be configured with the environment variable | |
| `DIFFUSERS_SAVE_MODE`. | |
| - **safe_serialization** (`bool`, *optional*, defaults to `True`) -- | |
| Whether to save the model using `safetensors` or the traditional PyTorch way with `pickle`. | |
| - **unet_lora_adapter_metadata** -- | |
| LoRA adapter metadata associated with the unet to be serialized with the state dict. | |
| - **text_encoder_lora_adapter_metadata** -- | |
| LoRA adapter metadata associated with the text encoder to be serialized with the state dict. | |
| Save the LoRA parameters corresponding to the UNet and text encoder. | |
| ## StableDiffusionXLLoraLoaderMixin[[diffusers.loaders.StableDiffusionXLLoraLoaderMixin]] | |
| Load LoRA layers into Stable Diffusion XL [UNet2DConditionModel](/docs/diffusers/pr_13881/en/api/models/unet2d-cond#diffusers.UNet2DConditionModel), | |
| [`CLIPTextModel`](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModel), and | |
| [`CLIPTextModelWithProjection`](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModelWithProjection). | |
| See `fuse_lora()` for more details. | |
| - **state_dict** (`dict`) -- | |
| A standard state dict containing the lora layer parameters. The key should be prefixed with an | |
| additional `text_encoder` to distinguish between unet lora layers. | |
| - **network_alphas** (`dict[str, float]`) -- | |
| The value of the network alpha used for stable learning and preventing underflow. This value has the | |
| same meaning as the `--network_alpha` option in the kohya-ss trainer script. Refer to [this | |
| link](https://github.com/darkstorm2150/sd-scripts/blob/main/docs/train_network_README-en.md#execute-learning). | |
| - **text_encoder** (`CLIPTextModel`) -- | |
| The text encoder model to load the LoRA layers into. | |
| - **prefix** (`str`) -- | |
| Expected prefix of the `text_encoder` in the `state_dict`. | |
| - **lora_scale** (`float`) -- | |
| How much to scale the output of the lora linear layer before it is added with the output of the regular | |
| lora layer. | |
| - **adapter_name** (`str`, *optional*) -- | |
| Adapter name to be used for referencing the loaded adapter model. If not specified, it will use | |
| `default_{i}` where i is the total number of adapters being loaded. | |
| - **low_cpu_mem_usage** (`bool`, *optional*) -- | |
| Speed up model loading by only loading the pretrained LoRA weights and not initializing the random | |
| weights. | |
| - **hotswap** (`bool`, *optional*) -- | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights). | |
| - **metadata** (`dict`) -- | |
| Optional LoRA adapter metadata. When supplied, the `LoraConfig` arguments of `peft` won't be derived | |
| from the state dict. | |
| This will load the LoRA layers specified in `state_dict` into `text_encoder` | |
| - **state_dict** (`dict`) -- | |
| A standard state dict containing the lora layer parameters. The keys can either be indexed directly | |
| into the unet or prefixed with an additional `unet` which can be used to distinguish between text | |
| encoder lora layers. | |
| - **network_alphas** (`dict[str, float]`) -- | |
| The value of the network alpha used for stable learning and preventing underflow. This value has the | |
| same meaning as the `--network_alpha` option in the kohya-ss trainer script. Refer to [this | |
| link](https://github.com/darkstorm2150/sd-scripts/blob/main/docs/train_network_README-en.md#execute-learning). | |
| - **unet** (`UNet2DConditionModel`) -- | |
| The UNet model to load the LoRA layers into. | |
| - **adapter_name** (`str`, *optional*) -- | |
| Adapter name to be used for referencing the loaded adapter model. If not specified, it will use | |
| `default_{i}` where i is the total number of adapters being loaded. | |
| - **low_cpu_mem_usage** (`bool`, *optional*) -- | |
| Speed up model loading only loading the pretrained LoRA weights and not initializing the random | |
| weights. | |
| - **hotswap** (`bool`, *optional*) -- | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights). | |
| - **metadata** (`dict`) -- | |
| Optional LoRA adapter metadata. When supplied, the `LoraConfig` arguments of `peft` won't be derived | |
| from the state dict. | |
| This will load the LoRA layers specified in `state_dict` into `unet`. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| - **pretrained_model_name_or_path_or_dict** (`str` or `os.PathLike` or `dict`) -- | |
| Can be either: | |
| - A string, the *model id* (for example `google/ddpm-celebahq-256`) of a pretrained model hosted on | |
| the Hub. | |
| - A path to a *directory* (for example `./my_model_directory`) containing the model weights saved | |
| with [ModelMixin.save_pretrained()](/docs/diffusers/pr_13881/en/api/models/overview#diffusers.ModelMixin.save_pretrained). | |
| - A [torch state | |
| dict](https://pytorch.org/tutorials/beginner/saving_loading_models.html#what-is-a-state-dict). | |
| - **cache_dir** (`str | os.PathLike`, *optional*) -- | |
| Path to a directory where a downloaded pretrained model configuration is cached if the standard cache | |
| is not used. | |
| - **force_download** (`bool`, *optional*, defaults to `False`) -- | |
| Whether or not to force the (re-)download of the model weights and configuration files, overriding the | |
| cached versions if they exist. | |
| - **proxies** (`dict[str, str]`, *optional*) -- | |
| A dictionary of proxy servers to use by protocol or endpoint, for example, `{'http': 'foo.bar:3128', | |
| 'http://hostname': 'foo.bar:4012'}`. The proxies are used on each request. | |
| - **local_files_only** (`bool`, *optional*, defaults to `False`) -- | |
| Whether to only load local model weights and configuration files or not. If set to `True`, the model | |
| won't be downloaded from the Hub. | |
| - **token** (`str` or *bool*, *optional*) -- | |
| The token to use as HTTP bearer authorization for remote files. If `True`, the token generated from | |
| `diffusers-cli login` (stored in `~/.huggingface`) is used. | |
| - **revision** (`str`, *optional*, defaults to `"main"`) -- | |
| The specific model version to use. It can be a branch name, a tag name, a commit id, or any identifier | |
| allowed by Git. | |
| - **subfolder** (`str`, *optional*, defaults to `""`) -- | |
| The subfolder location of a model file within a larger model repository on the Hub or locally. | |
| - **weight_name** (`str`, *optional*, defaults to None) -- | |
| Name of the serialized state dict file. | |
| - **return_lora_metadata** (`bool`, *optional*, defaults to False) -- | |
| When enabled, additionally return the LoRA adapter metadata, typically found in the state dict. | |
| Return state dict for lora weights and the network alphas. | |
| > [!WARNING] > We support loading A1111 formatted LoRA checkpoints in a limited capacity. > > This function is | |
| experimental and might change in the future. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## SD3LoraLoaderMixin[[diffusers.loaders.SD3LoraLoaderMixin]] | |
| Load LoRA layers into [SD3Transformer2DModel](/docs/diffusers/pr_13881/en/api/models/sd3_transformer2d#diffusers.SD3Transformer2DModel), | |
| [`CLIPTextModel`](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModel), and | |
| [`CLIPTextModelWithProjection`](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModelWithProjection). | |
| Specific to [StableDiffusion3Pipeline](/docs/diffusers/pr_13881/en/api/pipelines/stable_diffusion/stable_diffusion_3#diffusers.StableDiffusion3Pipeline). | |
| See `fuse_lora()` for more details. | |
| - **state_dict** (`dict`) -- | |
| A standard state dict containing the lora layer parameters. The key should be prefixed with an | |
| additional `text_encoder` to distinguish between unet lora layers. | |
| - **network_alphas** (`dict[str, float]`) -- | |
| The value of the network alpha used for stable learning and preventing underflow. This value has the | |
| same meaning as the `--network_alpha` option in the kohya-ss trainer script. Refer to [this | |
| link](https://github.com/darkstorm2150/sd-scripts/blob/main/docs/train_network_README-en.md#execute-learning). | |
| - **text_encoder** (`CLIPTextModel`) -- | |
| The text encoder model to load the LoRA layers into. | |
| - **prefix** (`str`) -- | |
| Expected prefix of the `text_encoder` in the `state_dict`. | |
| - **lora_scale** (`float`) -- | |
| How much to scale the output of the lora linear layer before it is added with the output of the regular | |
| lora layer. | |
| - **adapter_name** (`str`, *optional*) -- | |
| Adapter name to be used for referencing the loaded adapter model. If not specified, it will use | |
| `default_{i}` where i is the total number of adapters being loaded. | |
| - **low_cpu_mem_usage** (`bool`, *optional*) -- | |
| Speed up model loading by only loading the pretrained LoRA weights and not initializing the random | |
| weights. | |
| - **hotswap** (`bool`, *optional*) -- | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights). | |
| - **metadata** (`dict`) -- | |
| Optional LoRA adapter metadata. When supplied, the `LoraConfig` arguments of `peft` won't be derived | |
| from the state dict. | |
| This will load the LoRA layers specified in `state_dict` into `text_encoder` | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## FluxLoraLoaderMixin[[diffusers.loaders.FluxLoraLoaderMixin]] | |
| Load LoRA layers into [FluxTransformer2DModel](/docs/diffusers/pr_13881/en/api/models/flux_transformer#diffusers.FluxTransformer2DModel), | |
| [`CLIPTextModel`](https://huggingface.co/docs/transformers/model_doc/clip#transformers.CLIPTextModel). | |
| Specific to [FluxPipeline](/docs/diffusers/pr_13881/en/api/pipelines/flux#diffusers.FluxPipeline). | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| - **state_dict** (`dict`) -- | |
| A standard state dict containing the lora layer parameters. The key should be prefixed with an | |
| additional `text_encoder` to distinguish between unet lora layers. | |
| - **network_alphas** (`dict[str, float]`) -- | |
| The value of the network alpha used for stable learning and preventing underflow. This value has the | |
| same meaning as the `--network_alpha` option in the kohya-ss trainer script. Refer to [this | |
| link](https://github.com/darkstorm2150/sd-scripts/blob/main/docs/train_network_README-en.md#execute-learning). | |
| - **text_encoder** (`CLIPTextModel`) -- | |
| The text encoder model to load the LoRA layers into. | |
| - **prefix** (`str`) -- | |
| Expected prefix of the `text_encoder` in the `state_dict`. | |
| - **lora_scale** (`float`) -- | |
| How much to scale the output of the lora linear layer before it is added with the output of the regular | |
| lora layer. | |
| - **adapter_name** (`str`, *optional*) -- | |
| Adapter name to be used for referencing the loaded adapter model. If not specified, it will use | |
| `default_{i}` where i is the total number of adapters being loaded. | |
| - **low_cpu_mem_usage** (`bool`, *optional*) -- | |
| Speed up model loading by only loading the pretrained LoRA weights and not initializing the random | |
| weights. | |
| - **hotswap** (`bool`, *optional*) -- | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights). | |
| - **metadata** (`dict`) -- | |
| Optional LoRA adapter metadata. When supplied, the `LoraConfig` arguments of `peft` won't be derived | |
| from the state dict. | |
| This will load the LoRA layers specified in `state_dict` into `text_encoder` | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| - **save_directory** (`str` or `os.PathLike`) -- | |
| Directory to save LoRA parameters to. Will be created if it doesn't exist. | |
| - **transformer_lora_layers** (`dict[str, torch.nn.Module]` or `dict[str, torch.Tensor]`) -- | |
| State dict of the LoRA layers corresponding to the `transformer`. | |
| - **text_encoder_lora_layers** (`dict[str, torch.nn.Module]` or `dict[str, torch.Tensor]`) -- | |
| State dict of the LoRA layers corresponding to the `text_encoder`. Must explicitly pass the text | |
| encoder LoRA state dict because it comes from 🤗 Transformers. | |
| - **is_main_process** (`bool`, *optional*, defaults to `True`) -- | |
| Whether the process calling this is the main process or not. Useful during distributed training and you | |
| need to call this function on all processes. In this case, set `is_main_process=True` only on the main | |
| process to avoid race conditions. | |
| - **save_function** (`Callable`) -- | |
| The function to use to save the state dictionary. Useful during distributed training when you need to | |
| replace `torch.save` with another method. Can be configured with the environment variable | |
| `DIFFUSERS_SAVE_MODE`. | |
| - **safe_serialization** (`bool`, *optional*, defaults to `True`) -- | |
| Whether to save the model using `safetensors` or the traditional PyTorch way with `pickle`. | |
| - **transformer_lora_adapter_metadata** -- | |
| LoRA adapter metadata associated with the transformer to be serialized with the state dict. | |
| - **text_encoder_lora_adapter_metadata** -- | |
| LoRA adapter metadata associated with the text encoder to be serialized with the state dict. | |
| Save the LoRA parameters corresponding to the UNet and text encoder. | |
| - **components** (`list[str]`) -- list of LoRA-injectable components to unfuse LoRA from. | |
| Reverses the effect of | |
| [`pipe.fuse_lora()`](https://huggingface.co/docs/diffusers/main/en/api/loaders#diffusers.loaders.LoraBaseMixin.fuse_lora). | |
| > [!WARNING] > This is an experimental API. | |
| - **reset_to_overwritten_params** (`bool`, defaults to `False`) -- Whether to reset the LoRA-loaded modules | |
| to their original params. Refer to the [Flux | |
| documentation](https://huggingface.co/docs/diffusers/main/en/api/pipelines/flux) to learn more. | |
| Unloads the LoRA parameters. | |
| Examples: | |
| ```python | |
| >>> # Assuming `pipeline` is already loaded with the LoRA parameters. | |
| >>> pipeline.unload_lora_weights() | |
| >>> ... | |
| ``` | |
| ## Flux2LoraLoaderMixin[[diffusers.loaders.Flux2LoraLoaderMixin]] | |
| Load LoRA layers into [Flux2Transformer2DModel](/docs/diffusers/pr_13881/en/api/models/flux2_transformer#diffusers.Flux2Transformer2DModel). Specific to [Flux2Pipeline](/docs/diffusers/pr_13881/en/api/pipelines/flux2#diffusers.Flux2Pipeline). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## ErnieImageLoraLoaderMixin[[diffusers.loaders.ErnieImageLoraLoaderMixin]] | |
| Load LoRA layers into [ErnieImageTransformer2DModel](/docs/diffusers/pr_13881/en/api/models/ernie_image_transformer2d#diffusers.ErnieImageTransformer2DModel). Specific to `ErnieImagePipeline`. | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## LTX2LoraLoaderMixin[[diffusers.loaders.LTX2LoraLoaderMixin]] | |
| Load LoRA layers into [LTX2VideoTransformer3DModel](/docs/diffusers/pr_13881/en/api/models/ltx2_video_transformer3d#diffusers.LTX2VideoTransformer3DModel). Specific to [LTX2Pipeline](/docs/diffusers/pr_13881/en/api/pipelines/ltx2#diffusers.LTX2Pipeline). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## CogVideoXLoraLoaderMixin[[diffusers.loaders.CogVideoXLoraLoaderMixin]] | |
| Load LoRA layers into [CogVideoXTransformer3DModel](/docs/diffusers/pr_13881/en/api/models/cogvideox_transformer3d#diffusers.CogVideoXTransformer3DModel). Specific to [CogVideoXPipeline](/docs/diffusers/pr_13881/en/api/pipelines/cogvideox#diffusers.CogVideoXPipeline). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## Mochi1LoraLoaderMixin[[diffusers.loaders.Mochi1LoraLoaderMixin]] | |
| Load LoRA layers into [MochiTransformer3DModel](/docs/diffusers/pr_13881/en/api/models/mochi_transformer3d#diffusers.MochiTransformer3DModel). Specific to [MochiPipeline](/docs/diffusers/pr_13881/en/api/pipelines/mochi#diffusers.MochiPipeline). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## AuraFlowLoraLoaderMixin[[diffusers.loaders.AuraFlowLoraLoaderMixin]] | |
| Load LoRA layers into [AuraFlowTransformer2DModel](/docs/diffusers/pr_13881/en/api/models/aura_flow_transformer2d#diffusers.AuraFlowTransformer2DModel) Specific to [AuraFlowPipeline](/docs/diffusers/pr_13881/en/api/pipelines/aura_flow#diffusers.AuraFlowPipeline). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## LTXVideoLoraLoaderMixin[[diffusers.loaders.LTXVideoLoraLoaderMixin]] | |
| Load LoRA layers into [LTXVideoTransformer3DModel](/docs/diffusers/pr_13881/en/api/models/ltx_video_transformer3d#diffusers.LTXVideoTransformer3DModel). Specific to [LTXPipeline](/docs/diffusers/pr_13881/en/api/pipelines/ltx_video#diffusers.LTXPipeline). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## SanaLoraLoaderMixin[[diffusers.loaders.SanaLoraLoaderMixin]] | |
| Load LoRA layers into [SanaTransformer2DModel](/docs/diffusers/pr_13881/en/api/models/sana_transformer2d#diffusers.SanaTransformer2DModel). Specific to [SanaPipeline](/docs/diffusers/pr_13881/en/api/pipelines/sana#diffusers.SanaPipeline). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## HeliosLoraLoaderMixin[[diffusers.loaders.HeliosLoraLoaderMixin]] | |
| Load LoRA layers into [HeliosTransformer3DModel](/docs/diffusers/pr_13881/en/api/models/helios_transformer3d#diffusers.HeliosTransformer3DModel). Specific to [HeliosPipeline](/docs/diffusers/pr_13881/en/api/pipelines/helios#diffusers.HeliosPipeline) and [HeliosPyramidPipeline](/docs/diffusers/pr_13881/en/api/pipelines/helios#diffusers.HeliosPyramidPipeline). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## HunyuanVideoLoraLoaderMixin[[diffusers.loaders.HunyuanVideoLoraLoaderMixin]] | |
| Load LoRA layers into [HunyuanVideoTransformer3DModel](/docs/diffusers/pr_13881/en/api/models/hunyuan_video_transformer_3d#diffusers.HunyuanVideoTransformer3DModel). Specific to [HunyuanVideoPipeline](/docs/diffusers/pr_13881/en/api/pipelines/hunyuan_video#diffusers.HunyuanVideoPipeline). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## Lumina2LoraLoaderMixin[[diffusers.loaders.Lumina2LoraLoaderMixin]] | |
| Load LoRA layers into [Lumina2Transformer2DModel](/docs/diffusers/pr_13881/en/api/models/lumina2_transformer2d#diffusers.Lumina2Transformer2DModel). Specific to `Lumina2Text2ImgPipeline`. | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## CogView4LoraLoaderMixin[[diffusers.loaders.CogView4LoraLoaderMixin]] | |
| Load LoRA layers into [WanTransformer3DModel](/docs/diffusers/pr_13881/en/api/models/wan_transformer_3d#diffusers.WanTransformer3DModel). Specific to [CogView4Pipeline](/docs/diffusers/pr_13881/en/api/pipelines/cogview4#diffusers.CogView4Pipeline). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## WanLoraLoaderMixin[[diffusers.loaders.WanLoraLoaderMixin]] | |
| Load LoRA layers into [WanTransformer3DModel](/docs/diffusers/pr_13881/en/api/models/wan_transformer_3d#diffusers.WanTransformer3DModel). Specific to [WanPipeline](/docs/diffusers/pr_13881/en/api/pipelines/wan#diffusers.WanPipeline) and `[WanImageToVideoPipeline`]. | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## SkyReelsV2LoraLoaderMixin[[diffusers.loaders.SkyReelsV2LoraLoaderMixin]] | |
| Load LoRA layers into [SkyReelsV2Transformer3DModel](/docs/diffusers/pr_13881/en/api/models/skyreels_v2_transformer_3d#diffusers.SkyReelsV2Transformer3DModel). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## AmusedLoraLoaderMixin[[diffusers.loaders.AmusedLoraLoaderMixin]] | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| - **save_directory** (`str` or `os.PathLike`) -- | |
| Directory to save LoRA parameters to. Will be created if it doesn't exist. | |
| - **unet_lora_layers** (`dict[str, torch.nn.Module]` or `dict[str, torch.Tensor]`) -- | |
| State dict of the LoRA layers corresponding to the `unet`. | |
| - **text_encoder_lora_layers** (`dict[str, torch.nn.Module]` or `dict[str, torch.Tensor]`) -- | |
| State dict of the LoRA layers corresponding to the `text_encoder`. Must explicitly pass the text | |
| encoder LoRA state dict because it comes from 🤗 Transformers. | |
| - **is_main_process** (`bool`, *optional*, defaults to `True`) -- | |
| Whether the process calling this is the main process or not. Useful during distributed training and you | |
| need to call this function on all processes. In this case, set `is_main_process=True` only on the main | |
| process to avoid race conditions. | |
| - **save_function** (`Callable`) -- | |
| The function to use to save the state dictionary. Useful during distributed training when you need to | |
| replace `torch.save` with another method. Can be configured with the environment variable | |
| `DIFFUSERS_SAVE_MODE`. | |
| - **safe_serialization** (`bool`, *optional*, defaults to `True`) -- | |
| Whether to save the model using `safetensors` or the traditional PyTorch way with `pickle`. | |
| Save the LoRA parameters corresponding to the UNet and text encoder. | |
| ## AnimaLoraLoaderMixin[[diffusers.loaders.AnimaLoraLoaderMixin]] | |
| Load LoRA layers into [CosmosTransformer3DModel](/docs/diffusers/pr_13881/en/api/models/cosmos_transformer3d#diffusers.CosmosTransformer3DModel) and [AnimaTextConditioner](/docs/diffusers/pr_13881/en/api/pipelines/anima#diffusers.AnimaTextConditioner). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See `unfuse_lora()` for more details. | |
| ## HiDreamImageLoraLoaderMixin[[diffusers.loaders.HiDreamImageLoraLoaderMixin]] | |
| Load LoRA layers into [HiDreamImageTransformer2DModel](/docs/diffusers/pr_13881/en/api/models/hidream_image_transformer#diffusers.HiDreamImageTransformer2DModel). Specific to [HiDreamImagePipeline](/docs/diffusers/pr_13881/en/api/pipelines/hidream#diffusers.HiDreamImagePipeline). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## QwenImageLoraLoaderMixin[[diffusers.loaders.QwenImageLoraLoaderMixin]] | |
| Load LoRA layers into [QwenImageTransformer2DModel](/docs/diffusers/pr_13881/en/api/models/qwenimage_transformer2d#diffusers.QwenImageTransformer2DModel). Specific to [QwenImagePipeline](/docs/diffusers/pr_13881/en/api/pipelines/qwenimage#diffusers.QwenImagePipeline). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## ZImageLoraLoaderMixin[[diffusers.loaders.ZImageLoraLoaderMixin]] | |
| Load LoRA layers into [ZImageTransformer2DModel](/docs/diffusers/pr_13881/en/api/models/z_image_transformer2d#diffusers.ZImageTransformer2DModel). Specific to [ZImagePipeline](/docs/diffusers/pr_13881/en/api/pipelines/z_image#diffusers.ZImagePipeline). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## CosmosLoraLoaderMixin[[diffusers.loaders.CosmosLoraLoaderMixin]] | |
| Load LoRA layers into [CosmosTransformer3DModel](/docs/diffusers/pr_13881/en/api/models/cosmos_transformer3d#diffusers.CosmosTransformer3DModel), Specific to [Cosmos2_5_PredictBasePipeline](/docs/diffusers/pr_13881/en/api/pipelines/cosmos#diffusers.Cosmos2_5_PredictBasePipeline). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## KandinskyLoraLoaderMixin[[diffusers.loaders.KandinskyLoraLoaderMixin]] | |
| Load LoRA layers into `Kandinsky5Transformer3DModel`, | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## Ideogram4LoraLoaderMixin[[diffusers.loaders.Ideogram4LoraLoaderMixin]] | |
| Load LoRA layers into [Ideogram4Transformer2DModel](/docs/diffusers/pr_13881/en/api/models/ideogram4_transformer2d#diffusers.Ideogram4Transformer2DModel). Specific to [Ideogram4Pipeline](/docs/diffusers/pr_13881/en/api/pipelines/ideogram4#diffusers.Ideogram4Pipeline). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## Krea2LoraLoaderMixin[[diffusers.loaders.Krea2LoraLoaderMixin]] | |
| Load LoRA layers into [Krea2Transformer2DModel](/docs/diffusers/pr_13881/en/api/models/krea2_transformer2d#diffusers.Krea2Transformer2DModel). Specific to [Krea2Pipeline](/docs/diffusers/pr_13881/en/api/pipelines/krea2#diffusers.Krea2Pipeline). | |
| See `fuse_lora()` for more details. | |
| See [load_lora_into_unet()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_into_unet) for more details. | |
| See [load_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) for more details. | |
| See [lora_state_dict()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.lora_state_dict) for more details. | |
| See [save_lora_weights()](/docs/diffusers/pr_13881/en/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.save_lora_weights) for more information. | |
| See `unfuse_lora()` for more details. | |
| ## LoraBaseMixin[[diffusers.loaders.lora_base.LoraBaseMixin]] | |
| Utility class for handling LoRAs. | |
| - **adapter_names** (`list[str, str]`) -- | |
| The names of the adapters to delete. | |
| Delete an adapter's LoRA layers from the pipeline. | |
| Example: | |
| ```py | |
| 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") | |
| ``` | |
| Disables the active LoRA layers of the pipeline. | |
| Example: | |
| ```py | |
| 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() | |
| ``` | |
| Enables the active LoRA layers of the pipeline. | |
| Example: | |
| ```py | |
| 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() | |
| ``` | |
| - **target_rank** (`int`) -- | |
| The highest rank among all the adapters that will be loaded. | |
| - **check_compiled** (`str`, *optional*, defaults to `"error"`) -- | |
| How to handle a model that is already compiled. The check can return the following messages: | |
| - "error" (default): raise an error | |
| - "warn": issue a warning | |
| - "ignore": do nothing | |
| Hotswap adapters without triggering recompilation of a model or if the ranks of the loaded adapters are | |
| different. | |
| - **components** -- (`list[str]`): list of LoRA-injectable components to fuse the LoRAs into. | |
| - **lora_scale** (`float`, defaults to 1.0) -- | |
| Controls how much to influence the outputs with the LoRA parameters. | |
| - **safe_fusing** (`bool`, defaults to `False`) -- | |
| Whether to check fused weights for NaN values before fusing and if values are NaN not fusing them. | |
| - **adapter_names** (`list[str]`, *optional*) -- | |
| Adapter names to be used for fusing. If nothing is passed, all active adapters will be fused. | |
| Fuses the LoRA parameters into the original parameters of the corresponding blocks. | |
| > [!WARNING] > This is an experimental API. | |
| Example: | |
| ```py | |
| 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) | |
| ``` | |
| Gets the list of the current active adapters. | |
| Example: | |
| ```python | |
| 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() | |
| ``` | |
| Gets the current list of all available adapters in the pipeline. | |
| - **adapter_names** (`list[str]` or `str`) -- | |
| The names of the adapters to use. | |
| - **adapter_weights** (`list[float, float]`, *optional*) -- | |
| The adapter(s) weights to use with the UNet. If `None`, the weights are set to `1.0` for all the | |
| adapters. | |
| Set the currently active adapters for use in the pipeline. | |
| Example: | |
| ```py | |
| 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]) | |
| ``` | |
| - **adapter_names** (`list[str]`) -- | |
| list of adapters to send device to. | |
| - **device** (`torch.device | str | int`) -- | |
| Device to send the adapters to. Can be either a torch device, a str or an integer. | |
| Moves the LoRAs listed in `adapter_names` to a target device. Useful for offloading the LoRA to the CPU in case | |
| you want to load multiple adapters and free some GPU memory. | |
| After offloading the LoRA adapters to CPU, as long as the rest of the model is still on GPU, the LoRA adapters | |
| can no longer be used for inference, as that would cause a device mismatch. Remember to set the device back to | |
| GPU before using those LoRA adapters for inference. | |
| ```python | |
| >>> 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") | |
| >>> ... | |
| ``` | |
| - **components** (`list[str]`) -- list of LoRA-injectable components to unfuse LoRA from. | |
| - **unfuse_unet** (`bool`, defaults to `True`) -- Whether to unfuse the UNet LoRA parameters. | |
| - **unfuse_text_encoder** (`bool`, defaults to `True`) -- | |
| Whether to unfuse the text encoder LoRA parameters. If the text encoder wasn't monkey-patched with the | |
| LoRA parameters then it won't have any effect. | |
| Reverses the effect of | |
| [`pipe.fuse_lora()`](https://huggingface.co/docs/diffusers/main/en/api/loaders#diffusers.loaders.LoraBaseMixin.fuse_lora). | |
| > [!WARNING] > This is an experimental API. | |
| Unloads the LoRA parameters. | |
| Examples: | |
| ```python | |
| >>> # Assuming `pipeline` is already loaded with the LoRA parameters. | |
| >>> pipeline.unload_lora_weights() | |
| >>> ... | |
| ``` | |
| Writes the state dict of the LoRA layers (optionally with metadata) to disk. | |
Xet Storage Details
- Size:
- 65.7 kB
- Xet hash:
- ed24aec8903f6e6f3748e72e30dbc3ed4738f61fc34044035a2d888dd85e7c82
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.