stable diffusion模型评价框架
GhostReview:全球第一套AI绘画ckpt评测框架代码 - 知乎大家好,我是_GhostInShell_,是全球AI绘画模型网站Civitai的All Time Highest Rated (全球历史最高评价) 第二名的GhostMix的作者。在上一篇文章,我主要探讨自己关于ckpt的发展方向的观点,简单来说,即checkpoin…
https://zhuanlan.zhihu.com/p/647150677
港中大和商汤提出HPS v2:为文本生成图像模型提供更可靠的评价指标_Amusi(CVer)的博客-CSDN博客点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达点击进入—>【扩散模型和Transformer】交流群TL;DR 本文提出了一个目前数据量最大的、涵盖面最广、反应人类对生成图像喜爱程度的数据集:HPD v2, 并基于该数据集,提出了目前泛化性最强的“人类喜好评估模型”:HPS v2。HPS v2可以类比为ChatGPT中的reward model,可以用于图像生成模型的对...https://blog.csdn.net/amusi1994/article/details/131566719作者的思路我认为也是没问题,和我看法基本一致,生成式的sd不需要那么多定向的模型,提供强泛化能力的基础模型只需要几个就可以,而外挂的能力多可以通过lora、controlnet这样的工具去完成,因此评估主sd模型确实需要有一套体系,常规的一些指标确实很难衡量模型的生成能力,目前最主要的图像生成的指标还是FID/IS/Clip score,但是这些评价指标很多时候也无法充分反应图像的生成质量。
GhostReview评价指标:将模型出图归为2个部分,一个是系统性影响,即模型影响,另一个是个体影响,即随机种子带来的影响,评价模型的系统性风险。1.模型的兼容性(画风,Lora,prompts等),2.生成图片的画面质量,3.模型的良图率。
1.模型出图质量和泛化性分析
1.1 美学评估
GitHub - christophschuhmann/improved-aesthetic-predictor: CLIP+MLP Aesthetic Score PredictorCLIP+MLP Aesthetic Score Predictor. Contribute to christophschuhmann/improved-aesthetic-predictor development by creating an account on GitHub.
https://github.com/christophschuhmann/improved-aesthetic-predictor
laion-5B基于laion-aesthetics v1使用了17.6W条图片评分对,1.5W条laion-logos图片评分对和25w条AVA数据,作为美学评分,通过美学得分的标准差来数值化衡量模型的良图率。
1.2 prompt兼容性
https://github.com/openai/CLIP
https://github.com/openai/CLIP
主要衡量模型生成的图片能否正确反应prompt的输入,采用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.风格兼容性分析
测试的方式是输入风格化相关的prompt让模型生成大量风格化的图片,然后与现有的大量style图片进行对比,得出画风兼容性数值结果,通过vgg19提取生成图片和目标图片的feature map,然后计算每一层的feature map的gram matrix,计算具体的styleloss。
风格化的Prompts方面,参考SDXL的风格,去除现有ckpt无法直接实现的,比如PaperCut,最后选择9中不同的风格:Anime,Manga,Photographic,Isometric,Low_Poly, Line_Art,3D_Model,Pixel_Art,Watercolor。
3.对lora的兼容性分析
通过生成图片与目标图片进行styleloss的计算。
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的分数。
也就说三部分,第一部分用美学评估模型评估图片分数,用clipscore评估prompt和输出图片之间的相关性,第二部分,用输入prompt生成的图片和已有的风格图片之间计算styleloss,第三部分,结合lora,使用lora自带的图片和prompt,输入prompt得到图片和lora图片之间计算styleloss,这三个维度来评价模型。
4.代码
# 图片的美学分数
model = CLIPModel.from_pretrained("laion/CLIP-VIT-L-14-laion2B-s32B-b82K")
clip_processor = CLIPProcessor.from_pretrained("laion/CLIP-VIT-L-14-laion2B-s32B-b82k")rating_model = load_model()
artifacts_model = load_model()def predict(img):inputs = clip_processor(img,)with torch.no_grad():vision_output = vision_model()embedding = preprocess(pooled_output)with torch.no_grad():rating = rating_model(embedding)artifact = artifacts_model(embedding)
相关文章:
stable diffusion模型评价框架
GhostReview:全球第一套AI绘画ckpt评测框架代码 - 知乎大家好,我是_GhostInShell_,是全球AI绘画模型网站Civitai的All Time Highest Rated (全球历史最高评价) 第二名的GhostMix的作者。在上一篇文章,我主要探讨自己关于ckpt的发展方向的观点…...
电脑开机慢问题的简单处理
电脑用久了,开机时间要10-20分钟特别慢,一下介绍两种简单有效处理方式,这两种方式经测试不会影响原系统软件的使用: 方式一:禁用非必要启动项【效果不是很明显】 利用360里面的优化加速禁用启动项【禁用启动项还有其…...
SpringMVC-Rest风格
一、简介 REST(Representational State Transfer),表现形式状态转换,它是一种软件架构风格 当我们想表示一个网络资源的时候,可以使用两种方式: 传统风格资源描述形式 http://localhost/user/getById?id1 查询id为1的用户信息…...
WebGL实现透明物体(α混合)
目录 α混合 如何实现α混合 1. 开启混合功能: 2. 指定混合函数 混合函数 gl.blendFunc()函数规范 可以指定给src_factor和dst_factor的常量 混合后颜色的计算公式 加法混合 半透明的三角形(LookAtBlendedTriangl…...
RecycleView刷新功能
RecycleView刷新某一个Item,或这某一个Item中某一个View。 这样的需求,在实际的开发中是很普遍的。 在数据变化后需要刷新列表。 刷新列表有三种方式: 前两种大家应该很熟,第三中会有点陌生。 那么这三种方式,有什…...
目标检测如何演变:从区域提议和 Haar 级联到零样本技术
目录 一、说明 二、目标检测路线图 2.1 路线图(一般) 2.2 路线图(更传统的方法) 2.3 路线图(深度学习方法) 2.4 对象检测指标的改进 三、传统检测方法 3.1 维奥拉-琼斯探测器 (2001) 3.2 HOG探测器…...
聊一聊国内大模型公司,大模型面试心得、经验、感受
有着过硬的技术却无处可用是不是很苦恼呢,大家在面试时是不是也积累了一些经验呢,本文详细总结了大佬在大模型面试时的一些经验及感悟,希望对大家面试找工作有所帮助。 2023年,大模型突然国内火了起来,笔者就面了一些…...
【分布式微服务】feign 异步调用获取不到ServletRequestAttributes
公司调用接口的时候使用feign,但是服务之间还是使用了鉴权,需要通过RequestInterceptor 去传递uuid 概念 OpenFeign是一个声明式的Web服务客户端,它使得编写HTTP客户端变得更简单。在使用OpenFeign进行异步调用时,你可以通过配置来实现。但是,如果你在配置或调用过程中遇…...
c#编程里面最复杂的技术问题有哪些
C#编程中最复杂的技术问题通常涉及高级主题和复杂的应用场景。以下是一些可能被认为是C#编程中最复杂的技术问题: 1. **多线程和并发编程:** 处理多线程和并发问题涉及到锁定、线程同步、死锁避免、线程安全性和性能优化等方面的知识。编写高效且线程安…...
github代码提交过程详细介绍
1、下载github上面的代码 (1)在github网站上,找到想要下载的代码仓库界面,点击Code选项就可以看到仓库的git下载地址; (2)使用命令下载:git clone 地址; 2、配置本地git…...
Linux -- 使用多张gpu卡进行深度学习任务(以tensorflow为例)
在linux系统上进行多gpu卡的深度学习任务 确保已安装最新的 TensorFlow GPU 版本。 import tensorflow as tf print("Num GPUs Available: ", len(tf.config.list_physical_devices(GPU)))1、确保你已经正确安装了tensorflow和相关的GPU驱动,这里可以通…...
Mendix中的依赖管理:npm和Maven的应用
序言 在传统java开发项目中,我们可以利用maven来管理jar包依赖,但在mendix项目开发Custom Java Action时,由于目录结构有一些差异,我们需要自行配置。同样的,在mendix项目开发Custom JavaScript Action时,…...
自定义hooks之useLastState、useSafeState
自定义hooks之useLastState、useSafeState useLastState 在某些情况下,可能需要知道状态的历史值,例如,希望在状态变化时执行某些操作,但又需要访问上一个状态的值,以便进行比较或其他操作。自定义 React Hook 可以帮…...
前端判断: []+[], []+{}, {}+[], {}+{}
本质: 二元操作符规则 一般判断规则: 如果操作数是对象,则对象会转换为原始值如果其中一个操作数是字符串的话,另一个操作数也会转换成字符串,进行字符串拼接否则,两个操作数都将转换成数字或NaN,进行加法操作 转为原始数据类型的值的方法: Symbol.ToPrimitiveObject.protot…...
el-input-number/el-input 实现实时输入数字转换千分位(失焦时展示千分位)
el-input-number/el-input 实现实时输入数字转换千分位(失焦时展示千分位) 我把封装指令的代码放在了main.js,代码如下 // 金额展示千分位 Vue.directive("thousands", {inserted: function(el, binding) {// debugger// 获取input节点if (el.tagName.toLocaleUppe…...
一篇博客学会系列(2)—— C语言中的自定义类型 :结构体、位段、枚举、联合体
目录 前言 1、结构体 1.1、结构体类型的声明 1.2、特殊的结构体类型声明 1.3、结构体的自引用 1.4、结构体的定义和初始化 1.5、结构体成员变量的调用 1.6、结构体内存对齐 1.6.1、offsetof 1.6.2、结构体大小的计算 1.6.3、为什么存在内存对齐? 1.7、…...
KongA 任意用户登录漏洞分析
KongA 简介 KongA 介绍 KongA 是 Kong 的一个 GUI 工具。GitHub 地址是 https://github.com/pantsel/konga 。 KongA 概述 KongA 带来的一个最大的便利就是可以很好地通过UI观察到现在 Kong 的所有的配置,并且可以对于管理 Kong 节点 漏洞成因 未设置TOKEN_SECRE…...
吉力宝:智能科技鞋品牌步力宝引领传统产业创新思维
在现代经济环境下,市场经济下产品的竞争非常的激烈,如果没有营销,产品很可能不被大众认可,酒香也怕巷子深,许多传统产业不得不面临前所未有的挑战。而为了冲出这个“巷子”,许多企业需要采用创新思维&#…...
【IPC 通信】信号处理接口 Signal API(1)
收发信号思想是 Linux 程序设计特性之一,一个信号可以认为是一种软中断,通过用来向进程通知异步事件。 本文讲述的 信号处理内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解信号编程。 信号概述 遵循 POSIX.1,…...
使用GDIView排查GDI对象泄漏导致的程序UI界面绘制异常问题
目录 1、问题说明 2、初步分析 3、查看任务管理器,并使用GDIView工具分析 4、GDIView可能对Win10兼容性不好,显示的GDI对象个数不太准确 5、采用历史版本比对法,确定初次出现问题的时间点,并查看前一天的代码修改记录 6、将…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
