融合模型是一般我们接触的最多的模型,c站上大部分模型均属于融合模型,即那些后缀带有mix的模型。由于训练基础模型需要较高的硬件条件,那么仅需20秒就能融合的模型自然成了大部分小伙伴获得自己心仪模型的不二选择,这期我们就来聊聊关于融合模型的二三事。
照例叠个甲,本测试结果仅针对相同条件下的测试,对其他不同参数的测试仅供参考,得出结论仅基于测试结果,不代表实际结果。
masterpiece,best quality,official art,extremely detailed CG unity 8k wallpaper,
1girl, skirt,jacket, black skirt, white shirt, red hair, red eyes,(Feathered ear1.3), black jacket, necktie, red necktie, boots, open jacket, (bird ears0.8), open clothes, (fire1.1), black footwear, high-waist skirt, outdoors, standing, collared shirt, building,big breasts,(short hair1.2),(medium hair0.4),(thick hair1.2),hand on hip, black gloves,(upper body1.3), city, checkered floor, bird tail, solo, knee boots, off shoulder, solo focus, suspenders, (bird girl1.5), frilled skirt, suspender skirt, rubble,skyscraper, (Phoenix1.1), (angry0.4),(Looking up from below1.1),
Negative prompt: 同上期
Steps: 30, Sampler: DPM++ 2M Karras, CFG scale: 7,Size: 768x1024,Clip skip: 2,
这次的模特是菲亚梅塔小姐,但是肥鸭的头发真的好难画啊……
首先进行的是模型融合测试,选取了orientalPunkMix和merongmix作为融合的底模型,选择这两个是因为这两个模型画风差距很大,比较容易观察融合的性质,如果对这两个模型不熟悉的小伙伴,可以参考一下之前的专栏:
首先使用了加权和进行融合测试,公式为A*(1-M) + B*M,在测试表中M由0至1以0.1的差值递增,也就是说表中第一列为opk,第二列为opk*0.9+merong*0.1,第三列为opk*0.8+merong*0.2……以此类推。
从测试图中我们可以感受到,随着两个底模权重的变化,融合后的模型呈现出一种画风渐变的规律,有部分小伙伴会对融合模型有个误解,以为融合模型就是把两个模型按权重加在一起,生成图片时按权重随机选择其中一个模型生成,很显然不是这样,融合模型是直接将两个模型的画风按照权重融合,也就是说,融合后的模型画风还是稳定的,不会一会像a模型,又一会像b模型。
对比上面三幅图我们可以发现,融合模型确实兼具了两个底模型的特点:天空的云朵继承了opk的油画厚涂质感,冲淡了merong的写实,却又由于merong鲜艳的色彩而又显得不那么灰暗;opk的脸部表现过于呆板,merong的加入使其有了丰富的明暗表现,但也不会如同merong一般过于生动;在线稿上,融合模型既具备opk轮廓分明的特点,又结合merong减淡了部分线条,使其不那么突兀;
这时候有些小伙伴就又会走进另一个误区:即融合模型是将两种模型的优点结合在一起;这种说法是片面的,实际上,融合模型只能将两种模型的特点做融合,并不能挑其中一个或几个特点进行复制,另外,融合模型融合的不仅仅是优点,模型的缺点也会被一同融合。同样以上图为例,如果仅仅是想提升opk的颜色鲜艳度,而不改变opk的其他特性,这基本上是做不到的;另外,opk对于废墟,战场的优秀生成效果,也会被merong不擅长这类场景的负面因素给冲淡,这也是融合模型带来的负面影响。
因此在使用加权和融合模型时,一定要清楚两个底模的优点和缺点,并且对融合后的模型效果有一个初步的构想,这样可以大幅度减少融合模型带来的不确定性,获得更符合自己需要的模型。
其次测试的是加上插值融合,公式为:A + (B-C)*M,底模为:A:anything立绘,B:nyanmix,C:momoko,可以参考之前的专栏:
这一下子就抽象起来了,可以观察到规律是,和加权融合类似,模型一开始呈现的是A模型的风格,然后画风逐渐偏向B模型,但与加权和不同的是,当权重上升时,模型并不会向B模型的出图效果靠拢,只有画风偏向B模型。另外,C模型似乎在融合中并没有起到明显的作用。
模型作和很好理解,模型作差就有点让人摸不着头脑了,目前可以确定的是,模型作差后的结果应当是与被减模型B比较接近的。通过加上插值融合的模型风格较难控制,有时间的话会再深入地了解一下这个融合算法,如果有了解这个算法的小伙伴欢迎在评论区科普哦。
说完了Stable Diffusion的两种基本融合方法,下面我们再来讨论另一个问题:二次融合
什么叫二次融合?二次融合就是把融合模型作为底模型,再进行融合。实际上,刚刚我们测试中严格来讲都算二次融合,因为底模型也是融合模型。
众所周知,绘画的模型都是要靠一堆图片训练出来的,那么不同的训练集决定了不同的模型风格。可是,融合模型没有训练集,或者说融合模型的训练集是基于底模型的,那么无论融合模型再怎么融合,它的训练集还是原来那些图片,它不可能产生出新风格来。
让我们来验证这个猜想,首先,我们在加权融合中使用了不同权重的一系列模型,它们的底模均为opk和merong,让我们对这些模型进行二次融合,融合的规则是:将权重相反的两个模型按权重0.5:0.5再次进行融合,这样使得最后的融合结果中底模的比例均为0.5:0.5,如:
使用opkmerongmix1(0.9opk+0.1merong)和opkmerong9(0.1opk+0.9merong)按0.5:0.5进行融合,则融合结果为(0.9opk+0.1merong)*0.5+(0.1opk+0.9merong)*0.5=(0.5opk+0.5merong),我们将其命名为opkmerong19,它的底模参数和opkmerong5的参数是一样的,我们同样对其他几个模型进行相同操作,使其最后底模参数均为0.5:0.5;
那么,底模参数相同但融合过程不同的几个模型出图效果会相同吗?
答案是肯定的,即使几个模型在融合的过程中经历了不同的融合参数变化,但是只要底模的参数不变,那么出图效果也不会有变化(其实有细微差别,可以理解为融合中产生的误差)。
会不会是两个模型融合独有的特点呢,我又进行了四个模型的融合测试,方法同上,先对四个模型两两混合,再对混合后的六个模型两两相对混合,使最终得到的模型底模比为0.25:0.25:0.25:0.25;测试结果如下:
很明显,虽然四个底模各不相同,两两混合后的出图效果也并不一致,但是二次混合后出图结果还是收敛了,这证明之前的猜想基本上是正确的,模型的出图结果只与底模占比有关,而与混合次数和混合次序无关。
这时候就出现了一个问题,在说这个问题前,我们先提出一个概念:AI画风
有时候我们看见一幅图,判断其是否是AI生成的,会从人物的人体结构,手脚是否正常,细节是否合理去判断,而进一步地,则会涉及到光影效果,头发线条走向等更高级的层次去判断AI(这里涉及画画思路的部分由于我不会画画就不深入谈了),然而,有些图片,我们会下意识地认为这是AI生成的而不经过具体判断,也即所谓的“一眼AI”,虽然这种判断是草率的,没有依据的,但导致这种情况出的原因,其实就是所谓的AI画风。
上图人体结构,甚至手部细节都好像没什么问题,但我们第一眼看到就觉得是AI画的,原因无他,这就是一种典型的AI画风。这种画风或者与其类似的另一些AI画风经常可以在各大AI分享中看到,因此我们看到这种画风时就会下意识地觉得这是AI画的(只是苦了画风类似的画师,经常饱受被空口鉴AI之苦)。
那么什么是AI画风呢,或者说AI画风是怎么出现的呢?这时候联想一下我们刚刚得出的结论,不难联想到答案:过多的模型融合导致了AI画风的趋同。
我们可以建立一个数学模型:设一个模型类有4个参数,分别表示该模型中A,B,C,D四种基础模型的占比。另有一模型库,其中有四个基础模型A,B,C,D。现在,我们对该模型库进行如下操作:随机取两个模型,以0.5:0.5的比例进行混合,将混合后的模型加入模型库,然后重复该步骤100次。
现在我们从这个模型库中随机取个模型,我可以大胆猜测,这个模型的四个参数比大概率是0.25:0.25:0.25:0.25,我们甚至可以扩展这个数学模型,将基础模型数量增加到10个,将权重比改为0.3—0.7随机浮动,重复步骤1000次……但可以确定的是,最后这个模型库中大部分模型的底模型占比均会呈现平均分布,也就是各占十分之一的状况。
那么这个各底模型占比均衡的模型,就是我们口中的所谓的AI画风了,过多的二次融合后,模型库里的模型都会趋向同一,因为他们的底模型比是相似的。我们之前已经证明,模型的出图效果只与底模型占比有关,而与融合过程无关。
这种现象会导致一个什么结果呢?那就是上文提到的,模型趋同化,很有可能你在使用两个名字截然不同的模型时,出图效果却是相似的,这对我们寻找模型,测试模型都造成了极大的麻烦,徒增了许多不必要的工作量。
这期图不多,主要以测试过程和理论为主,单纯想看妹子的小伙伴可能要失望了。我并不是很推荐分享融合模型,如果确实要分享,也建议给出融合的参数和底模。但其实这很难推行,先不说融合的底模是不是也是融合模型,光是搞不清规律的插值融合,包括现在出现的分层融合就已经够吃一壶的了。但是,就像前文说的,无论模型怎么融合,底模不变,训练集不变,那么融合的模型就永远跳不出一个无形的框架,且必会最终收敛于一个确定的值。
本期测试图表,图包链接:
链接:https://pan.baidu.com/s/1T-VEg7gxzGy_xjYXqvP0Dg?pwd=j55u
提取码:j55u
前几期AI测试链接 :