在汽车造型领域,进行Lora的领域微调的核心目的:让模型能够稳定输出某一风格或特征;比如,在我汽车概念设计阶段,我就想要这个汽车能够拥有风云A9的曲线,路虎的前脸;但是,模型可能不知道什么是风云A9,什么是路虎的前脸;那这就需要对生图模型进行领域微调!
一、数据集准备
进行Lora微调前,你需要明确你的目的,例如你想要练车型风格呢【SUV、科幻、极简】,还是练具体特征呢【如前脸、保险杠、后视镜甚至车型曲线】;明确目的之后,接下来我们才去找相关数据集;
找数据集的平台可以是:
(1)如果是市场上已经发布的,可以去相应的平台获取;
(2)如果是概念车、艺术风格图或者草图,可以去pinterest;
二、数据标注Caption
当准备好数据之后,接下来就是对数据图片进行标注了;标注的格式为【触发词+类别词+描述 】;在这里有几个非常重要的点;
(1)什么是触发词:触发词(trigger word)本质上是一个"绑定标签", 你人为指定一个在训练集中原本不存在、或极少出现的稀有词(通常是 ohwx、sks、mytoken 这类无意义字符串),让它与你要学习的特定概念强行绑定。训练完成后,推理时只要在提示词里写出这个词,模型就会被激活去生成对应概念。
通俗的讲,就是你创造一个模型没见过的词,然后在训练过程中,让它去绑定你想固定下来的特征;
| 类型 | 例子 | 作用 |
|---|---|---|
| 触发词 | ohwx |
唯一标识你要学的概念,必须稀有 |
| 类别词 | woman、dog、style |
告诉模型这个概念属于哪一类,提供先验锚点 |
| 描述词 | silver hair, red eyes, white background |
描述样本中的可变细节,防止模型把无关特征也学进触发词 |
那有人就会问了,我如何让这个触发词正好绑定我想要固定下来的特征呢?
问题很简单,我们可以对不想绑定的特征,进行详细描述,让他绑定到其它词上面去,而对想要固定下来的特征,我们不描述,让模型在训练过程中自动让它绑定到触发词上面去;但这种方式存在缺陷,就是可能会导致触发词绑定的特征不是那么稳定;
因此,对于图片的标注【Caption】写法,我产生了两种理解:
(1)训练集来自于同一类型的车或者同一风格的车,这时候的Caption标注,我们对图片的描述是比较统一的和固定的,这时候【触发词】的作用可以是作为一个【包】,也就是它代表这一组比较统一和固定的描述或者风格;【通俗理解就是它可以代表一整个描述的打包或着说整合】。
(2)如果训练集的图片来自于不同类型的车或风格也不是特别统一的车,但是他们某些地方存在共性,那么这时候的Caption就是另一种写法;你要对图中可变的特征进行描述,而对他们共性的特征不去做描述,让他们绑定到触发词上面去;【这种方式,触发词的控制性能够非常明显】
所以,可以根据不同场景和目的去设置Caption的写法;
总结下来就是:
触发词:不写某些特征,让其绑定给触发词;【控制力强】
写共性特征,描述词保持一致;【打包】
三、模型训练
模型训练的方式有很多种:
(1)使用python调用相应的模型库来实现【代码能力要求比较高,需要有相应的知识储备,如ClIP、VAE以及UNET还有扩散模型的概念】
(2)借助现有的开源平台,如sd-scrip,ai-toolkit;借助这些平台,可以快速模型训练,不需要你去定义整个微调过程,只需要你准备好数据,写好配置文件,确定微调的底模,你就可以开始了【门槛相对低很多】

模型训练完成之后,我们可以拿到相应的Lora模型,去WebUI或者ComfyUI上去测试微调效果;
以上都是个人经验观点,如果有任何问题,欢迎大家指正;