将 LoRA 模型融合进 Stable Diffusion 模型中
一个简单的模型融合方法。
前言
在训练 Stable Diffusion 模型时,如果使用全量微调的方式,如 Dreambooth,需要大量的 GPU 显存进行训练,这使微调 Stable Diffusion 模型的成本变得很高。但 LoRA 可以使微调 Stable Diffusion 模型变得很容易,仅用较少的 GPU 显存就能进行训练,并且也能实现全量微调的效果。
训练得到的 LoRA 模型需要搭配 Stable Diffusion 模型进行使用,如果不想每次都使用 LoRA 模型,可以将 LoRA 模型融合进 Stable Diffusion 模型中,下面介绍一个简单的方法。
配置环境
将 LoRA 融合进 Stable Diffusion 模型之前需要配置环境。
安装 Git 和 Python
Windows
进入 Python 官网,下载 Python 安装包并安装,
再进入 Git 官网,下载 Git 安装包并安装。
Linux
使用 Linux 发行版自带的包管理器安装 Python 和 Git。
下载转换工具
融合模型需要 LyCORIS 和 sd-scripts,这里先新建一个文件夹,进入文件夹后打开终端(在 Windows 上可以使用 Git Bash),使用下面的命令进行下载。
1 |
|
安装依赖
转换工具下载好后需要相应的依赖才能运行,这里使用命令创建一个虚拟环境用于安装依赖。
1 |
|
再进入创建好的虚拟环境。
1 |
|
如果重新打开后需要重新进入虚拟环境再进行模型融合。
进入虚拟环境后就可以安装依赖了。
1 |
|
融合模型
环境都准备好后,可以将 LoRA 模型融合进 Stable Diffusion 中。先把 LoRA 模型和 Stable Diffusion 模型放到当前所在的文件夹中(这样在输入命令时就不需要输入完整的模型路径),接下来就可以进行模型融合了。
1 |
|
命令中的的animagine-xl-3.1.safetensors
为 Stable Diffusion 模型,artist_all_in_one_2-000036.safetensors
为 LoRA 模型,licyk_style_v0.1.safetensors
为融合模型后保存的模型名称,--is_sdxl
用于指定模型的种类为 Stable Diffusion XL 模型,--dtype fp16
指定保存的模型精度为 fp16。
融合模型需要较多的内存,推荐电脑的内存大于或等于 64G,低于该内存大小可能会消耗大量的虚拟内存(swap),使硬盘的读写量增大。
融合结束后,可以看到当前文件夹中多了licyk_style_v0.1.safetensors
这个 Stable Diffusion 模型,直接使用该模型就可以达到使用原来的 Stable Difusion 模型(animagine-xl-3.1.safetensors
) + LoRA 模型(artist_all_in_one_2-000036.safetensors
)的效果了。