LyCORIS
定义
LyCORIS 是一套开源库,目标是为 Stable Diffusion 提供多种参数高效微调方法。其名称由“Lora beYond Conventional methods”与“Other Rank adaptation Implementations for Stable diffusion”两部分首字母拼成,直译即“超越常规方法的 LoRA 与其他秩自适应实现”[1][3]。
该库由 LoCon 项目发展而来,最初用于在 sd-scripts 等训练脚本中替换或补充原有的 LoRA 实现[2]。按照作者说明,它的定位并不限于某一个算法,而是充当试验台,让使用者比较不同权重更新分解方式的效果[1]。
与单一 LoRA 相比,LyCORIS 的产出仍以小的附加权重文件形式保存,使用时叠加在基础模型上,因此常被归入适配器一类[4][3]。
原理
微调时模型原有权重 $W_0$ 被冻结,只训练一个增量 $\Delta W$。常规 LoRA 把增量拆成两个低秩矩阵之积 $\Delta W = BA$,训练结束后仅保存 $A$、$B$,前向计算写作 $h = W_0 h + \gamma BAh$,其中 $\gamma$ 为控制叠加强度的比例系数[1]。这一约束把可训练参数从 $p \times q$ 降到 $r(p+q)$,秩 $r$ 远小于原矩阵维度[1]。
LyCORIS 的价值在于更换分解形式。LoHa 采用哈达玛积,用两组低秩矩阵的逐元素乘积表示增量,可实现不超过维度平方的秩,而常规 LoRA 的秩上限仅等于维度[5]。LoKr 思路相近,但改用克罗内克积把增量表示为两个较小矩阵的直积,从而在同样参数量下改变表达能力[5]。LoCon 则把 LoRA 的适用范围从线性层扩展到卷积层[3]。
flowchart LR
A[冻结权重 $W_0$] --> D[输出]
B[低秩矩阵分解 ΔW] --> D
B --> B1[LoRA: ΔW = BA]
B --> B2[LoHa: 哈达玛积]
B --> B3[LoKr: 克罗内克积]
由于保存的是可还原的分解参数,权重更新可以被缩放后加载到与训练时不同的基础模型上,也可以与其他微调结果合并,或与 ControlNet 一类控制工具配合使用[1]。库内还提供合并比例、维度、alpha、factor 等超参数,共同决定模型容量与叠加效果[1]。
发展历程
项目起点是 2023 年 2 月出现的 LoCon,它在 LoRA 基础上加入卷积层实现,并通过 sd-scripts 用于训练[6]。同年 3 月 9 日,采用哈达玛积表示的 LoHa 公开,LoCon 与 LoHa 随后被纳入同一个名为 LyCORIS 的代码仓库[6]。
2023 年 9 月 26 日,相关论文《Navigating Text-To-Image Customization: From LyCORIS Fine-Tuning to Model Evaluation》以预印本形式发布,系统比较了 LoRA、LoHa、LoKr 与全参数微调在保真度、可控性、多样性上的差异,该论文后被 ICLR 2024 收录[7][8]。
Stable Diffusion WebUI 的 1.5.0 版本之后,内置 LoRA 系统正式支持 LyCORIS 模型,用户无需额外插件即可加载;在此之前的版本需借助扩展实现[9]。此后库的实现范围继续扩大,陆续加入 OFT、BOFT、(IA)³、DyLoRA、GLoRA 等方法,并从 4.0.0 版起为各算法提供融合内核以降低显存占用与计算时间[8]。
应用
最常见的使用场景是文本到图像生成中的概念定制:用少量图片训练一个小权重文件,让基础模型学会特定人物、画风或物体,生成时再以一定强度叠加[3]。因为在注意力层之外还能作用于卷积层,该方法常被用于调整画风、注入角色或添加特定动物[3]。
训练途径主要有 3 种:借助 kohya-ss 的 sd-scripts、使用 HCP-Diffusion,或把 LyCORIS 当作独立包装器接入自写的 PyTorch 脚本[2]。推理侧除 WebUI 外,ComfyUI、InvokeAI 等界面以及部分在线生成服务也支持加载这类模型,但对较新的算法类型支持不一定及时[2]。
模型文件体积通常只有数 MB,便于分发与组合[5]。除扩散模型外,LoHa 与 LoKr 也被用于大语言模型的适配,作者也将非扩散任务列为后续实验方向[8]。
局限
不同分解方式的取舍并不统一。作者提供的对比显示,全参数微调在保真度与灵活性上占优,LoHa 的多样性表现较好,LoKr 在小文件体积下保真度较高,但在切换基础模型或组合多个概念时可能变差[2]。这些排序基于有限实验,作者本人也注明需谨慎对待[2]。
参数配置不当会带来训练不稳定。官方文档指出,LoHa 在维度较高时可能出现损失震荡甚至变为 NaN,需降低学习率[5]。在 SDXL 上训练前馈层时也有模型损坏、损失变为 NaN 的报告,解决方案是仅训练注意力模块[4]。
兼容性方面,新加入的算法类型往往需要较新的界面版本,旧版 WebUI 或第三方平台未必能读取[2]。使用较小的 LoKr 配置训练的模型迁移能力较弱,换用其他基础模型后效果可能明显下降[5]。此外,LyCORIS 本身只提供算法与训练接口,不作模型质量评估,其论文亦指出系统性评价微调结果仍存在困难[1]。
参见
-
Stable Diffusion —— LyCORIS 主要服务的开源文本到图像扩散模型。
-
LoRA —— LyCORIS 名称与设计的直接来源,采用低秩矩阵分解的微调方法。
-
LoCon —— LyCORIS 的前身,把 LoRA 扩展到卷积层。
-
参数高效微调 —— LyCORIS 各算法所属的技术类别。
-
ControlNet —— 可与 LyCORIS 权重配合使用的图像生成控制工具。
参考资料
- arxiv.org 上的网页 [引用日期2026-10-29]
- github.com 上的网页 [引用日期2026-10-29]
- LyCORIS: Difference between revisions [引用日期2026-10-29]
- LyCORIS [引用日期2026-10-29]
- Algo-List [引用日期2026-10-29]
- LyCORIS - としあきdiffusion Wiki* [引用日期2026-10-29]
- citations [引用日期2026-10-29]
- pypi.org 上的网页 [引用日期2026-10-29]
- README [引用日期2026-10-29]