大家好,我是_GhostInShell_,是全球AI绘画模型网站Civitai的All Time Highest Rated (全球历史最高评价) 第二名的GhostMix的作者。在上一篇文章,我主要探讨自己关于ckpt的发展方向的观点,简单来说,即checkpoint(下文为了书写方便,简称为ckpt)本身应该解决兼容性等“做的到”的问题,而LoRA,Controlnet等应该解决做的对的问题,而ckpt正确的发展方向应该是少ckpt,多LoRA,即Stable Diffusion应该朝统一大模型方向发展。
文章发布之后,很多用户同意我的观点,并希望能有一套可以能够对Stable Diffusion的ckpt进行评价的工具来引导模型发展方向。自己做了一下搜索,市面上也没发现像LLM的LMSYS一样评分平台。所以我一学金融的,就自己着手写代码,把ckpt的评价体系的框架代码花了一个月肝了出来,GhostReview全球第一套AI绘画ckpt评测框架代码,一共1,128行的ckpt评测框架代码。(PS叠甲:这一套纯粹是我自己写评测框架,我不是学CS的,很业余,知识水平和认知也很有限,如果不喜欢我的做法就左上角叉掉,自己去做一套,不想花功夫在争论上面,Let the Code Speak,谢谢)
因为无法通过模型结构本身进行分析,所以采用评测的方法就是对模型生成的图进行分析。GhostReview的内核跟量化金融的因子模型很像。简单来说,都是研究怎么样在混乱的数据中,寻找共性。拿最简单的单因子模型CAPM来举例,个股的收益是由Beta和Alpha组成,Beta视为系统风险,而Alpha视为个体风险。有了这个概念之后,我们看ckpt的出图,也可以将一张图分为两部分,一个是系统性影响(即模型影响),而另一部分是个体影响(即随机种子带来的影响)。而我们的目的就是要评价模型,就是要评价模型的系统性影响,所以处理的核心思路也是跟因子模型一样的,就是取平均,将个体性影响Average Out。
在评测指标方面,正如我在之前ckpt模型评价体系文章里所说的,我认为评价ckpt的标准是:1.模型的兼容性(画风,LoRA,Prompts等)2.生成图片的画面质量 3.模型的良图率。所以GhostReview V1.0是基于我自己的评价体系的发展而来,GhostReview V1.0包含三个部分:1.ckpt出图质量和泛化性分析(Prompt兼容性,画面质量,良图率)2.ckpt风格兼容性分析(画风兼容性)3.ckpt对LoRA兼容性分析(LoRA兼容性)
1. ckpt出图质量和泛化性分析(Prompt兼容性,画面质量,良图率)
首先第一部分,是ckpt出图质量和泛化性分析(Prompt兼容性,画面质量,良图率)。正如上文所说,由于模型文件本身是无法进行测试的,所以测试的核心是在固定随机种子和其他所有设置的情况下,通过Aesthetics Scorer(美学评分)项目对所有出图进行评分,然后均值和标准差等就能够量化衡量模型在给定的Prompts下的画面质量和良图率。
在美学评分项目方面,采用项目为:https://github.com/christophschuhmann/improved-aesthetic-predictor。improved-aesthetic-predictor(LAION-Aesthetics V2)是由LAION 5B的作者Christoph Schuhmann基于LAION-Aesthetics V1,使用了17.6W条SAC(Simulacra Aesthetic Captions)图片评分对,1.5W条LAION-Logos图片评分对和25W条AVA(The Aesthetic Visual Analysis)数据其中的大部分图片评分对训练而来的。由于Stability.AI的Stable Diffusion模型也是基于LAION-Aesthetics进行训练的。综合可靠程度和准确性相对较高,所以选用improved-aesthetic-predictor作为美学评分项目的标准。有了美学评分之后,则可以通过大量美学得分的标准差来数值化衡量模型的良图率。
Prompt兼容性方面,主要衡量模型生成的图片是否能正确反应Prompts的输入。所采用的是openai的https://github.com/openai/CLIP中的ClipScore项目。
所采用的Prompt方面,GhostReview中采用了Civitai上面Image Reaction最多的25条非政治性,非梗,非色情或软色情的Prompts。为保证Prompts涵盖真实,动漫和艺术的画风,所以加了5条风格化的Prompts,一共30条Prompts(全部不含LoRA)。每个ckpt在每一条Prompts生成32张图(batch4,iter8)。所以对于单个ckpt一共在第一个项目生成960张highres fix的图片。
2. ckpt风格兼容性分析(画风兼容性)
第二部分,ckpt风格兼容性分析。测试的目的主要是看ckpt本身对画风的兼容性,采用的测试方法是通过输入风格化相关的Prompts让模型生成大量风格化的图片,然后与现有大量的Style图片进行对比,得出ckpt的画风兼容性数值化的结果。测试的方式,参考了论文《A neural algorithm of artistic style》(Gatys, L. A., Ecker, A. S., & Bethge, M. (2015). A neural algorithm of artistic style. arXiv preprint arXiv:1508.06576.)中的StyleLoss计算方法,对通过VGG19提取生成图片和目标图片的Featuremap,然后计算每一层的Featuremap的Gram Matrix,然后计算出具体的StyleLoss。
风格化的Prompts方面,参考SDXL的风格,去除现有ckpt无法直接实现的,比如PaperCut,最后选择9中不同的风格:Anime,Manga,Photographic,Isometric,Low_Poly, Line_Art,3D_Model,Pixel_Art,Watercolor。
3. ckpt对LoRA兼容性分析
第三部分,ckpt对LoRA兼容性分析。主要是测试ckpt对LoRA的兼容性。方法与第二部分类似,通过生成图片(生成20张图(batch4,iter5))与目标图片进行StyleLoss的计算风格损失,进而量化ckpt对LoRA的兼容性。
Prompts和LoRA的选择。由于每个ckpt用人物LoRA生成出来的人物都会与样图不太一致,所以LoRA兼容性测试选取的是风格化的LoRA。选择标准是Civitai All Time Highest Rated的Top 16个风格化LoRA。采用的目标图片和Prompts皆为LoRA头图的图片和Prompts。这里多说点处理的细节,1对于一张图里面有多个LoRA的,会补全对应LoRA(比如:墨心的头图) 2对于没有LoRA字段的Prompts,默认添加0.8的LoRA权重进行生成(比如:3D rendering style的头图) 3.对于头图使用错误版本的LoRA字段的,更换成新版本的LoRA字段(比如:Gacha splash的头图)4. 因为有些LoRA头图本身使用的大模型也是被测模型,比如REV和majic realistic,所以做了GhostLoRALoss_NoTM版本的分数,计算这些模型时,不考虑这些LoRA的分数。
关于数据处理,第一,二,三部分我们可以得出每一个模型在每一个Prompts的每一张图的分数,由于尽量降低Prompts之间的分数差异,所以每一个Prompts,都做标准化的处理。处理之后,每一张图都有自己的标准化打分,然后再根据模型进行平均,得到模型的平均分数。第一期测试一共测试了7个模型,所以每一条Prompts的图片数量是140到224张。随着测试模型的增加,database的增加分数应该会更趋于稳定。从数据上进行分析,其实看到一些有趣的现象。比如:之前我文章说LoRA融的越多,LoRA兼容性越差;LoRA融的越多影响Prompts的准确性(ClipScore);然后图表也用数据解释了为什么DreamShaper,GhostMix和REV是C站All Time Highest Rated的前三名......
整套GhostReview V1.0流程,每一个被测模型生成图总数为1568张,且由于全部使用HighresFix,加上LAION-Aesthetics和Clip等评分项目的使用时间,所以即使用4090一个模型都要跑上几个小时,非个人用户可以接受的时间长度。(如果不是个人算力限制,还可以进行K-fold进行交叉验证…但即使是这样,我相信GhostReview测得都比很多模型制作者自己生成的多……)而且国内AI绘画氛围是真的让我非常非常失望,都是想着钱和流量。至少沉下心来,写代码,解决现有问题的人几乎为0……综上,我决定不公开GhostReview代码。如果有希望SD开源社区健康发展的平台也可以跟我联系合作,我不收取费用,但希望能对真正好的模型给予更多的尊重,无论对真正SD玩家还是新手推荐好的大模型,才能发挥用户的创造力,而不只是推荐流量至上的垃圾。
最后,LLM现在有LMSYS,现在SD,乃至MJ,在模型评分体系这块基本没人做……GhostReview也仅仅是班门弄斧,希望更多有能者可以加入AI绘画模型评分的研究来,如果我有幸可以成为未来SD的“LMSYS”体系的一部分,我觉得自己做的所有事真的无憾了。所以如果有靠谱的团队或平台希望做类似LMSYS的事,非常欢迎跟我合作,只有大家联起手来,这件事才能办成。
最后的最后,希望让Stable Diffusion社区多点社区化,少点商业性。最近实在见到太多为了钱,为了流量不择手段的事了,GhostMix也因为“佛系”,又没有几个粉丝和流量,又不做各种衍生版本的“首发”模型,挺不受很多平台待见的。老实说,作为一名真正为Stable Diffusion发展做实事,写代码的人是真的挺心痛的,自己努力做的事,又累又没有收益到底是为了什么?之前有人在B站问我,说我们这些坚信开源,推动社区发展,但又没有收益,还被人家称作“傻子”,为什么还要坚持做下去?最近我是想清楚了,可能有些人生来就相信有光吧!
致谢:真的感谢大家的支持,特别是整个开源社区的大佬们对我的支持。我的所有python和深度学习知识都是来自开源社区,没有Eric Grimson,吴恩达,李沐老是的免费教学,我也不可能制作出GhostReview和GhostMix。还要特别感谢蘑菇街WeShop的吴海波@吴海波大佬和来自tusi社区的大佬,愿意在没有任何商业要求的情况下,资助显卡来帮助我跑GhostReview,没有他们的硬件支持,我也是跑不出结果的,真的非常感谢!还有感谢摩尔线程算法工程师张宏伦@张宏伦的帮助,从最初LAION模型的认识到使用Styeloss计算图片风格的细节都给了我很多技术上的支持。感谢我母校清华大学和北京大学,真的没有系统性的金融学术训练,我也想不到ckpt评测体系应该怎么做。当初钱颖一院长在新生大会说创新的本质就是要Connecting the Dots,无用知识的有用性啥的...当初觉得都是鸡汤,现在是真的相信了...
qinglvhj 2024-12-27
大忠电子 2024-12-27
水库水源地保护 2024-12-27
迅杰光远 2024-12-27
bili_1670512731 2024-12-27