首页
/ HPS v2:文本到图像生成模型的基准测试工具

HPS v2:文本到图像生成模型的基准测试工具

2026-01-22 05:11:25作者:董斯意

项目介绍

HPS v2(Human Preference Score v2)是一个用于评估文本到图像生成模型的人类偏好基准测试工具。该项目基于论文《Human Preference Score v2: A Solid Benchmark for Evaluating Human Preferences of Text-to-Image Synthesis》开发,旨在通过大规模的人类偏好数据集和偏好预测模型,帮助研究人员和开发者更准确地评估和比较不同文本到图像生成模型的性能。

HPS v2的核心组件包括:

  • Human Preference Dataset v2 (HPD v2):一个大规模(798k 偏好选择 / 430k 图像)的人类偏好选择数据集,涵盖了多种文本到图像生成模型生成的图像。
  • Human Preference Score v2 (HPS v2):一个基于HPD v2训练的偏好预测模型,用于比较同一提示下生成的图像。

项目技术分析

HPS v2的技术架构主要包括以下几个部分:

  1. 数据集构建:HPD v2数据集包含了来自多个文本到图像生成模型的图像,并通过人工标注的方式记录了人类对这些图像的偏好选择。数据集的构建过程涉及数据清洗、标注任务设计等环节。
  2. 模型训练:HPS v2模型通过在HPD v2数据集上进行训练,学习如何预测人类对图像的偏好。模型训练过程中采用了先进的机器学习技术,确保模型的预测结果与人类偏好高度一致。
  3. 基准测试:HPS v2提供了一套公平、稳定且易于使用的评估提示集,用于评估不同文本到图像生成模型在不同风格(如动画、概念艺术、绘画、照片)下的表现。

项目及技术应用场景

HPS v2适用于以下应用场景:

  1. 模型评估与比较:研究人员和开发者可以使用HPS v2来评估和比较不同文本到图像生成模型的性能,了解各模型在不同风格下的表现。
  2. 模型优化:通过HPS v2的评估结果,开发者可以针对性地优化自己的模型,提升生成图像的质量和人类偏好得分。
  3. 学术研究:HPS v2为文本到图像生成领域的研究提供了可靠的基准测试工具,有助于推动该领域的发展。

项目特点

HPS v2具有以下显著特点:

  1. 大规模数据集:HPD v2数据集包含了798k个偏好选择和430k张图像,为模型训练提供了丰富的数据支持。
  2. 高精度预测:HPS v2模型在多个测试集上的表现均优于现有模型,能够准确预测人类对图像的偏好。
  3. 易于使用:HPS v2提供了简单易用的API和命令行工具,用户可以轻松地进行图像比较、基准测试和自定义评估。
  4. 持续更新:HPS v2基准测试集和数据集将持续更新,确保评估结果的时效性和准确性。

快速开始

安装

# 方法1:通过Pypi下载和安装
pip install hpsv2

# 方法2:本地安装
git clone https://github.com/tgxs002/HPSv2.git
cd HPSv2
python -m pip install . 

# 可选:检查点和图像将下载到此路径
# 默认:~/.cache/hpsv2/
export HPS_ROOT=/your/cache/path

图像比较

你可以通过以下代码对同一提示下生成的多个图像进行评分和比较:

import hpsv2

result = hpsv2.score(imgs_path, '<prompt>') 
# imgs_path可以是图像路径列表,图像由同一提示生成
# 或字符串类型的图像路径
# 或PIL.Image.Image类型的图像

注意:只有在图像由同一提示生成时,比较才有意义。

基准测试重现

我们还提供了用于评估的模型生成的图像数据。你可以通过以下代码轻松下载数据并评估模型:

import hpsv2

print(hpsv2.available_models) # 获取可访问数据的模型
hpsv2.evaluate_benchmark('<model_name>')

自定义评估

要评估你自己的文本到图像生成模型,你可以基于我们提供的基准提示生成图像,并通过以下代码进行评估:

import os
import hpsv2

# 获取基准提示(<style> = all, anime, concept-art, paintings, photo)
all_prompts = hpsv2.benchmark_prompts('all') 

# 遍历基准提示生成图像
for style, prompts in all_prompts.items():
    for idx, prompt in enumerate(prompts):
        image = TextToImageModel(prompt) 
        # TextToImageModel是你想要评估的模型
        image.save(os.path.join("<image_path>", style, f"{idx:05d}.jpg")) 
        # <image_path>是存储生成图像的文件夹路径,作为hpsv2.evaluate()的输入。

然后运行以下代码进行评估:

import hpsv2

hpsv2.evaluate("<images_path>") 
# <image_path>与前一部分中的<image_path>相同

偏好模型评估

评估HPS v2与人类偏好选择的关联性:

模型 ImageReward测试集准确率(%) HPD v2测试集准确率(%) 新测试集准确率(%)
Aesthetic Score Predictor 57.4 76.8 -
ImageReward 65.1 74.0 -
HPS 61.2 77.6 -
PickScore 62.9 79.8 -
单个人类 65.3 78.1 65.4*
HPS v2 65.7 83.3 73.2*

* 新测试集是另一个与HPD v2测试集类似标注的测试集,但图像由10个更好的模型生成(Dreamlike Photoreal 2.0, SDXL Refiner 0.9, Realistic Vision, SDXL Base 0.9, Deliberate, ChilloutMix, MajicMix Realistic, Openjourney, DeepFloyd-XL, Epic Diffusion)。

HPS v2检查点可以从这里下载。模型和实时演示也托管在🤗 Hugging Face上,地址是这里

运行以下命令在HPD v2测试集和ImageReward测试集上评估HPS v2模型(需要先安装hpsv2包):

# 在HPD v2测试集上评估
python evaluation.py --data-type test --data-path /path/to/HPD --image-path /path/to/image_folder

# 在ImageReward测试集上评估
python evaluation.py --data-type ImageReward --data-path /path/to/IR --image-path /path/to/image_folder

人类偏好数据集 v2

HPD v2数据集的提示来自DiffusionDB和MSCOCO Captions。DiffusionDB的提示首先通过ChatGPT进行清洗,以去除偏见性词汇。人类标注者被要求对不同文本到图像生成模型生成的图像进行排序。总共有大约798k对图像的成对比较,涵盖了430k张图像和107k个提示,其中645k对用于训练集,153k对用于测试集。

HPD v2的图像来源:

来源 图像数量
CogView2 73697
DALL·E 2 101869
GLIDE (mini) 400
Stable Diffusion v1.4 101869
Stable Diffusion v2.0 101869
LAFITE 400
VQ-GAN+CLIP 400
VQ-Diffusion 400
FuseDream 400
COCO Captions 28272

目前,测试数据可以从这里下载。你可以在https://tgxs002.github.io/hpd_test_vis/查看测试数据。以下是截图:

test_vis

训练数据集将很快发布

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
27
11
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
514
3.69 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
873
538
pytorchpytorch
Ascend Extension for PyTorch
Python
316
360
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
333
152
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.31 K
732
flutter_flutterflutter_flutter
暂无简介
Dart
757
182
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
12
1
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
67
20
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.05 K
519