GhostReview:全球第一套AI繪畫ckpt評測框架代碼方法

大家好,我是_GhostInShell_,是全球AI繪畫模型網(wǎng)站Civitai的All Time Highest Rated (全球歷史最高評價(jià)) 第二名的GhostMix的作者。在上一篇文章,我主要探討自己關(guān)于ckpt的發(fā)展方向的觀點(diǎn),簡單來說,即checkpoint(下文為了書寫方便,簡稱為ckpt)本身應(yīng)該解決兼容性等“做的到”的問題,而LoRA,Controlnet等應(yīng)該解決做的對的問題,而ckpt正確的發(fā)展方向應(yīng)該是少ckpt,多LoRA,即Stable Diffusion應(yīng)該朝統(tǒng)一大模型方向發(fā)展。
文章發(fā)布之后,很多用戶同意我的觀點(diǎn),并希望能有一套可以能夠?qū)table Diffusion的ckpt進(jìn)行評價(jià)的工具來引導(dǎo)模型發(fā)展方向。自己做了一下搜索,市面上也沒發(fā)現(xiàn)像LLM的LMSYS一樣評分平臺。所以我一學(xué)金融的,就自己著手寫代碼,把ckpt的評價(jià)體系的框架代碼花了一個月肝了出來,GhostReview全球第一套AI繪畫ckpt評測框架代碼,一共1,128行的ckpt評測框架代碼。(PS疊甲:這一套純粹是我自己寫評測框架,我不是學(xué)CS的,很業(yè)余,知識水平和認(rèn)知也很有限,如果不喜歡我的做法就左上角叉掉,自己去做一套,不想花功夫在爭論上面,Let the Code Speak,謝謝)

因?yàn)闊o法通過模型結(jié)構(gòu)本身進(jìn)行分析,所以采用評測的方法就是對模型生成的圖進(jìn)行分析。GhostReview的內(nèi)核跟量化金融的因子模型很像。簡單來說,都是研究怎么樣在混亂的數(shù)據(jù)中,尋找共性。拿最簡單的單因子模型CAPM來舉例,個股的收益是由Beta和Alpha組成,Beta視為系統(tǒng)風(fēng)險(xiǎn),而Alpha視為個體風(fēng)險(xiǎn)。有了這個概念之后,我們看ckpt的出圖,也可以將一張圖分為兩部分,一個是系統(tǒng)性影響(即模型影響),而另一部分是個體影響(即隨機(jī)種子帶來的影響)。而我們的目的就是要評價(jià)模型,就是要評價(jià)模型的系統(tǒng)性影響,所以處理的核心思路也是跟因子模型一樣的,就是取平均,將個體性影響Average Out。
在評測指標(biāo)方面,正如我在之前ckpt模型評價(jià)體系文章里所說的,我認(rèn)為評價(jià)ckpt的標(biāo)準(zhǔn)是:1.模型的兼容性(畫風(fēng),LoRA,Prompts等)2.生成圖片的畫面質(zhì)量 3.模型的良圖率。所以GhostReview V1.0是基于我自己的評價(jià)體系的發(fā)展而來,GhostReview V1.0包含三個部分:1.ckpt出圖質(zhì)量和泛化性分析(Prompt兼容性,畫面質(zhì)量,良圖率)2.ckpt風(fēng)格兼容性分析(畫風(fēng)兼容性)3.ckpt對LoRA兼容性分析(LoRA兼容性)

1. ckpt出圖質(zhì)量和泛化性分析(Prompt兼容性,畫面質(zhì)量,良圖率)
首先第一部分,是ckpt出圖質(zhì)量和泛化性分析(Prompt兼容性,畫面質(zhì)量,良圖率)。正如上文所說,由于模型文件本身是無法進(jìn)行測試的,所以測試的核心是在固定隨機(jī)種子和其他所有設(shè)置的情況下,通過Aesthetics Scorer(美學(xué)評分)項(xiàng)目對所有出圖進(jìn)行評分,然后均值和標(biāo)準(zhǔn)差等就能夠量化衡量模型在給定的Prompts下的畫面質(zhì)量和良圖率。
在美學(xué)評分項(xiàng)目方面,采用項(xiàng)目為: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)數(shù)據(jù)其中的大部分圖片評分對訓(xùn)練而來的。由于Stability.AI的Stable Diffusion模型也是基于LAION-Aesthetics進(jìn)行訓(xùn)練的。綜合可靠程度和準(zhǔn)確性相對較高,所以選用improved-aesthetic-predictor作為美學(xué)評分項(xiàng)目的標(biāo)準(zhǔn)。有了美學(xué)評分之后,則可以通過大量美學(xué)得分的標(biāo)準(zhǔn)差來數(shù)值化衡量模型的良圖率。
Prompt兼容性方面,主要衡量模型生成的圖片是否能正確反應(yīng)Prompts的輸入。所采用的是openai的https://github.com/openai/CLIP中的ClipScore項(xiàng)目。
所采用的Prompt方面,GhostReview中采用了Civitai上面Image Reaction最多的25條非政治性,非梗,非色情或軟色情的Prompts。為保證Prompts涵蓋真實(shí),動漫和藝術(shù)的畫風(fēng),所以加了5條風(fēng)格化的Prompts,一共30條Prompts(全部不含LoRA)。每個ckpt在每一條Prompts生成32張圖(batch4,iter8)。所以對于單個ckpt一共在第一個項(xiàng)目生成960張highres fix的圖片。

2. ckpt風(fēng)格兼容性分析(畫風(fēng)兼容性)
第二部分,ckpt風(fēng)格兼容性分析。測試的目的主要是看ckpt本身對畫風(fēng)的兼容性,采用的測試方法是通過輸入風(fēng)格化相關(guān)的Prompts讓模型生成大量風(fēng)格化的圖片,然后與現(xiàn)有大量的Style圖片進(jìn)行對比,得出ckpt的畫風(fēng)兼容性數(shù)值化的結(jié)果。測試的方式,參考了論文《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計(jì)算方法,對通過VGG19提取生成圖片和目標(biāo)圖片的Featuremap,然后計(jì)算每一層的Featuremap的Gram Matrix,然后計(jì)算出具體的StyleLoss。
風(fēng)格化的Prompts方面,參考SDXL的風(fēng)格,去除現(xiàn)有ckpt無法直接實(shí)現(xiàn)的,比如PaperCut,最后選擇9中不同的風(fēng)格:Anime,Manga,Photographic,Isometric,Low_Poly, Line_Art,3D_Model,Pixel_Art,Watercolor。

3. ckpt對LoRA兼容性分析
第三部分,ckpt對LoRA兼容性分析。主要是測試ckpt對LoRA的兼容性。方法與第二部分類似,通過生成圖片(生成20張圖(batch4,iter5))與目標(biāo)圖片進(jìn)行StyleLoss的計(jì)算風(fēng)格損失,進(jìn)而量化ckpt對LoRA的兼容性。
Prompts和LoRA的選擇。由于每個ckpt用人物L(fēng)oRA生成出來的人物都會與樣圖不太一致,所以LoRA兼容性測試選取的是風(fēng)格化的LoRA。選擇標(biāo)準(zhǔn)是Civitai All Time Highest Rated的Top 16個風(fēng)格化LoRA。采用的目標(biāo)圖片和Prompts皆為LoRA頭圖的圖片和Prompts。這里多說點(diǎn)處理的細(xì)節(jié),1對于一張圖里面有多個LoRA的,會補(bǔ)全對應(yīng)LoRA(比如:墨心的頭圖) 2對于沒有LoRA字段的Prompts,默認(rèn)添加0.8的LoRA權(quán)重進(jìn)行生成(比如:3D rendering style的頭圖) 3.對于頭圖使用錯誤版本的LoRA字段的,更換成新版本的LoRA字段(比如:Gacha splash的頭圖)4. 因?yàn)橛行㎜oRA頭圖本身使用的大模型也是被測模型,比如REV和majic realistic,所以做了GhostLoRALoss_NoTM版本的分?jǐn)?shù),計(jì)算這些模型時(shí),不考慮這些LoRA的分?jǐn)?shù)。
關(guān)于數(shù)據(jù)處理,第一,二,三部分我們可以得出每一個模型在每一個Prompts的每一張圖的分?jǐn)?shù),由于盡量降低Prompts之間的分?jǐn)?shù)差異,所以每一個Prompts,都做標(biāo)準(zhǔn)化的處理。處理之后,每一張圖都有自己的標(biāo)準(zhǔn)化打分,然后再根據(jù)模型進(jìn)行平均,得到模型的平均分?jǐn)?shù)。第一期測試一共測試了7個模型,所以每一條Prompts的圖片數(shù)量是140到224張。隨著測試模型的增加,database的增加分?jǐn)?shù)應(yīng)該會更趨于穩(wěn)定。從數(shù)據(jù)上進(jìn)行分析,其實(shí)看到一些有趣的現(xiàn)象。比如:之前我文章說LoRA融的越多,LoRA兼容性越差;LoRA融的越多影響Prompts的準(zhǔn)確性(ClipScore);然后圖表也用數(shù)據(jù)解釋了為什么DreamShaper,GhostMix和REV是C站All Time Highest Rated的前三名......

整套GhostReview V1.0流程,每一個被測模型生成圖總數(shù)為1568張,且由于全部使用HighresFix,加上LAION-Aesthetics和Clip等評分項(xiàng)目的使用時(shí)間,所以即使用4090一個模型都要跑上幾個小時(shí),非個人用戶可以接受的時(shí)間長度。(如果不是個人算力限制,還可以進(jìn)行K-fold進(jìn)行交叉驗(yàn)證…但即使是這樣,我相信GhostReview測得都比很多模型制作者自己生成的多……)而且國內(nèi)AI繪畫氛圍是真的讓我非常非常失望,都是想著錢和流量。至少沉下心來,寫代碼,解決現(xiàn)有問題的人幾乎為0……綜上,我決定不公開GhostReview代碼。如果有希望SD開源社區(qū)健康發(fā)展的平臺也可以跟我聯(lián)系合作,我不收取費(fèi)用,但希望能對真正好的模型給予更多的尊重,無論對真正SD玩家還是新手推薦好的大模型,才能發(fā)揮用戶的創(chuàng)造力,而不只是推薦流量至上的垃圾。
最后,LLM現(xiàn)在有LMSYS,現(xiàn)在SD,乃至MJ,在模型評分體系這塊基本沒人做……GhostReview也僅僅是班門弄斧,希望更多有能者可以加入AI繪畫模型評分的研究來,如果我有幸可以成為未來SD的“LMSYS”體系的一部分,我覺得自己做的所有事真的無憾了。所以如果有靠譜的團(tuán)隊(duì)或平臺希望做類似LMSYS的事,非常歡迎跟我合作,只有大家聯(lián)起手來,這件事才能辦成。
最后的最后,希望讓Stable Diffusion社區(qū)多點(diǎn)社區(qū)化,少點(diǎn)商業(yè)性。最近實(shí)在見到太多為了錢,為了流量不擇手段的事了,GhostMix也因?yàn)椤胺鹣怠?,又沒有幾個粉絲和流量,又不做各種衍生版本的“首發(fā)”模型,挺不受很多平臺待見的。老實(shí)說,作為一名真正為Stable Diffusion發(fā)展做實(shí)事,寫代碼的人是真的挺心痛的,自己努力做的事,又累又沒有收益到底是為了什么?之前有人在B站問我,說我們這些堅(jiān)信開源,推動社區(qū)發(fā)展,但又沒有收益,還被人家稱作“傻子”,為什么還要堅(jiān)持做下去?最近我是想清楚了,可能有些人生來就相信有光吧!
致謝:真的感謝大家的支持,特別是整個開源社區(qū)的大佬們對我的支持。我的所有python和深度學(xué)習(xí)知識都是來自開源社區(qū),沒有Eric Grimson,吳恩達(dá),李沐老是的免費(fèi)教學(xué),我也不可能制作出GhostReview和GhostMix。還要特別感謝蘑菇街WeShop的吳海波@吳海波大佬和來自tusi社區(qū)的大佬,愿意在沒有任何商業(yè)要求的情況下,資助顯卡來幫助我跑GhostReview,沒有他們的硬件支持,我也是跑不出結(jié)果的,真的非常感謝!還有感謝摩爾線程算法工程師張宏倫@張宏倫的幫助,從最初LAION模型的認(rèn)識到使用Styeloss計(jì)算圖片風(fēng)格的細(xì)節(jié)都給了我很多技術(shù)上的支持。感謝我母校清華大學(xué)和北京大學(xué),真的沒有系統(tǒng)性的金融學(xué)術(shù)訓(xùn)練,我也想不到ckpt評測體系應(yīng)該怎么做。當(dāng)初錢穎一院長在新生大會說創(chuàng)新的本質(zhì)就是要Connecting the Dots,無用知識的有用性啥的...當(dāng)初覺得都是雞湯,現(xiàn)在是真的相信了...