LoRA微调是什么?让AI学会你家产品长相的原理
做品牌的人用AI出图,往往卡在同一个地方:模型画什么都很像那么回事,唯独画不出”我们自己那款产品”。同款饮料瓶出来总长得像别家的,包装标签上的版式被重新发明了一遍。于是每次出图都得靠垫图、靠后期修、靠设计师手动拼。
问题不在提示词写得不够细,而在于通用模型根本不认识你的产品。它只认识”一般意义上的饮料瓶”——训练数据里成千上万个瓶子的平均值。
要让模型认识特定对象,业内最常用的手段是 LoRA
微调。它听起来很技术,核心思想却非常简洁。
为什么不能”直接重新训练”
最直接的想法是:拿自己的产品图把模型整体再训练一遍,业内叫全量微调。
技术上可行,代价却高得离谱:几十亿参数全部更新一遍,需要大量显存、标注数据和漫长的训练时间,还容易”灾难性遗忘”——学会了你的瓶子,却忘了怎么画光、怎么画手。
对小团队来说这条路基本不可行。LoRA 就是针对这个困境提出来的。
LoRA
的核心:不改原件,挂个插件
LoRA 全称低秩适配(Low-Rank
Adaptation)。思路可以用一句大白话概括:不动原来的模型,只在旁边挂一小块可训练的东西,用它的输出去修正原模型的输出。
具体怎么做?原来的权重矩阵很大,比如 1024×1024、一百多万个参数。LoRA
不碰它,而在旁边另建两个很瘦的矩阵:一个把 1024 维压到 8 维,另一个再把
8 维撑回 1024
维。两者加起来约一万六千个参数,只有原来的一百六十分之一,训练时只更新这一小块,原模型完全冻结。
它背后的假设是:学会一个新概念所需的参数变化是低秩的,能被少数几个方向概括。实践中这个假设相当成立。
三个直接好处:
- 训练快。
显存需求降到消费级显卡能跑的范围,几十分钟到几小时就能出一个。 - 文件小。 通常几十到两百
MB,方便共享、切换、版本管理。 - 可叠加。 产品 LoRA 和风格 LoRA
能同时挂,用一个权重系数控制强弱,互不干扰。
决定成败的不是算法,是数据
真正拉开差距的地方在这里。LoRA
训练失败,九成不是参数问题,而是数据集没准备好。
第一,数量。 一个主体 15 到 30
张就够,不必上千。质量远比数量重要——模糊的、有遮挡的、压缩过度的图,会把这些瑕疵一起学进模型。
第二,角度。
这是最常见的坑。如果二十张图全是正面四十五度,训出来的 LoRA
只会画这一个角度。正确配比是正脸、左右侧脸、俯视、仰视、背面各占一部分。
第三,背景。
如果所有产品图都在同一面白墙前拍,模型会把”白底”当成产品的一部分。解决办法是在数据集里混入不同背景、不同光照的实拍图,逼模型学会把产品和环境分开。
第四,触发词。
给主体一个模型原本不认识的词作为触发词,训练时和图片绑定;推理时写它就激活特征,不写不会误触发。用常见词会和已有概念打架。
第五,分辨率。 训练图和推理分辨率尽量对齐,常见是
1024。用 512 的图训、1024 出图,细节会糊。
训练参数:只需要盯住三个
- 学习率:通常 1e-4
量级。太大训飞,出图全是噪点;太小训不动,完全没效果。 - 训练步数:一千到两千步是常见区间。步数不是越多越好,过拟合的典型症状是”只会摆数据集里那几个姿势”,换个构图就崩。
- 网络维度(rank):8 到 32
之间。人脸和产品这类具体物件用 16
左右够用,复杂画风才需要更大维度。
判断是否训好有个朴素测试:用训练集里没出现过的构图出图,既像又能变就是对的。
用的时候,权重是重点
训练完成只是开始。LoRA 权重一般从 0.6 到 0.9
起调。权重太高(1.0
以上)会把画面锁死,构图呆板、细节僵硬,还会污染其他元素;太低(0.4
以下)特征又出不来。同一个 LoRA 搭配不同主模型,最佳权重也不同。
触发词放在提示词靠前的位置权重更足;同时把材质、颜色、使用场景写清楚——LoRA
负责”长相对不对”,提示词负责”这次要什么画面”。
为什么品牌方该建自己的 LoRA
库
从商业角度看,LoRA 的价值不只是省掉垫图。一个稳定的产品
LoRA,等于把”我们家瓶子长什么样”这件事,从设计师的记忆里、从一堆散落的参考图里,变成一个可交付的数字资产。新人接手项目挂上就能出对图,外包协作也不用反复解释”瓶盖不是这个形状”。
在 AIGC制作公司
的实践里,我们按”产品线”而不是”单次项目”来建
LoRA:一款主推产品配一个,风格另建一个,两者叠加使用。换季换包装时只需重训产品那个,风格库不动,成本能压得很低。
结语
LoRA
的技术内核很朴素:不改原件,挂个插件,用小变化撬动大模型。
真正难的部分从来不在算法,而在”你有没有二十张角度齐全、背景多样的好照片”。
与其抱怨AI画不像你的产品,不如先把产品图拍对。如果正在规划
的长期素材体系,建议把”训练自有
LoRA”列进第一优先级——它决定了后续每一次出图的起点高度。