LECO的直译并不是概念提取,概念提取更多是我的个人意译。
LECO全称Low-rank adaptation for Erasing COncepts from diffusion models.
【资料图】
简单来说,通过Erasing Concepts from Diffusion Models(下称消除概念)的原理来把特定的tag从底模里学习到lora里面,来达到消除/增强特定概念的方法。
由于消除概念的原目的是消除大模型里面的特定概念,比如nsfw,所以通过LECO制作出来的lora,正向权重是消除概念,负面是增强概念,而负值可以去到-4~-8等等
消除概念的一些示例
我们可以看到第一列第二张图,在消除梵高的概念后,通过梵高tag,生成出来的图就和梵高的风格就完全不一样了,而消除其他艺术家,比如毕加索的风格,并没有影响到梵高tag生成的图,SLD是Safe Latent Diffusion,另一种避开nsfw的方法。更多的例子,更详细的解释看Ref.
而基于消除概念和conceptmod的启发,p1atdev魔改了lora训练的脚本,通过把消除的概念提取出来,让lora学习这个特定的概念,制作出消除了这个概念的lora,而Lora本身可以正向和负向操作,使用负值就可以增强这个被提取出来的概念,而且通过lora负值来增强概念。
相对于单纯的tag权重,lora由于学习到提取出来的概念的合集,可以让图片更多元化?
blur_background:2,4,6,8
blur_background, <lora:blur_background:-2>,
同样的参数,可以看到blur_background lora权重到达-6的时候会触发一个特写,这就是lora在学习过程中,因为blur_background产生的数据里面包含了特写的相关数据,所以在权重特别大的时候能触发出来(猜的)
负面tag: blur_background:2,4,6,8
<lora:blur_background:2>,
单说blur_background这个lora,比较推荐-6到正6的权重,正面权重可以不放blur_background来减少背景模糊的效果,负面权重可以放blur_background增强背景模糊效果。
那么是如何使用LECO来训练这个Lora的呢?
使用了p1atdev的LECO脚本(/p1atdev/LECO)
具体使用详见github,按照官方安装和配置就行了
一些官方的例子:
With "real life, instagram":
Without "real life, instagram":
其他
laksjdjf的sd-trainer在dev里面也添加了LECO工具,可以改善p1atdev的训练过程中生成数据导致速度比较慢的问题。
除了单一概念的提出,有想过在提取出来的概念里面加一点各种各样的氛围,比如模糊背景加一个克苏鲁风格,那是不是就可以产生克苏鲁风格的模糊背景?
组合各种各样的概念融合进行提取,产生各种有趣的效果lora。
看论文,研究脚本,训练lora,各种验证测试,还是花费了好几天的,
欢迎各位留言转发,
有能力的还可以给我充电支持一下,十分感谢。
有个AI群,欢迎各位加入一起研究进步。
Ref:
/p1atdev/LECO
/laksjdjf/sd-trainer/tree/dev
/
上一篇 : 明年起湖北省实施中考统一命题 武汉市按省统一要求单独命题-环球资讯
下一篇 : 最后一页