Stable Diffusion (Diffusers) / DiffusersでLoRA の読み込みの高速化、LoRA 融合

2024年3月4日

LoRA の読み込みの高速化

ダウンロードしたA1111 形式の CivitAI LoRA チェックポイントをロードできるようになりましたが高速化も対応されました

pipe.load_lora_weights(state_dict, low_cpu_mem_usage=True)

LoRA 融合

LoRA 重みをモデルの重みに融合できるようになったため、LoRA 重みをロードしたモデルは、ロードしていないモデルと同じ速度で実行できるようになりました。また、複数の LoRA を同じモデルに融合することもできます。

Pipe.fuse_lora(lora_scale= 1.0 )

PEFT によるLoRA 融合

!pip install peft
pipe.load_lora_weights("nerijs/pixel-art-xl", weight_name="pixel-art-xl.safetensors", adapter_name="pixel")
pipe.load_lora_weights("CiroN2022/toy-face", weight_name="toy_face_sdxl.safetensors", adapter_name="toy")

pipe.set_adapters(["pixel", "toy"], adapter_weights=[0.5, 1.0])
# Fuses the LoRAs into the Unet
pipe.fuse_lora()

参考

https://github.com/huggingface/diffusers/releases

stable-diffusion

Posted by eightban