HPS v2:文本到图像生成模型的基准测试工具
项目介绍
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的技术架构主要包括以下几个部分:
- 数据集构建:HPD v2数据集包含了来自多个文本到图像生成模型的图像,并通过人工标注的方式记录了人类对这些图像的偏好选择。数据集的构建过程涉及数据清洗、标注任务设计等环节。
- 模型训练:HPS v2模型通过在HPD v2数据集上进行训练,学习如何预测人类对图像的偏好。模型训练过程中采用了先进的机器学习技术,确保模型的预测结果与人类偏好高度一致。
- 基准测试:HPS v2提供了一套公平、稳定且易于使用的评估提示集,用于评估不同文本到图像生成模型在不同风格(如动画、概念艺术、绘画、照片)下的表现。
项目及技术应用场景
HPS v2适用于以下应用场景:
- 模型评估与比较:研究人员和开发者可以使用HPS v2来评估和比较不同文本到图像生成模型的性能,了解各模型在不同风格下的表现。
- 模型优化:通过HPS v2的评估结果,开发者可以针对性地优化自己的模型,提升生成图像的质量和人类偏好得分。
- 学术研究:HPS v2为文本到图像生成领域的研究提供了可靠的基准测试工具,有助于推动该领域的发展。
项目特点
HPS v2具有以下显著特点:
- 大规模数据集:HPD v2数据集包含了798k个偏好选择和430k张图像,为模型训练提供了丰富的数据支持。
- 高精度预测:HPS v2模型在多个测试集上的表现均优于现有模型,能够准确预测人类对图像的偏好。
- 易于使用:HPS v2提供了简单易用的API和命令行工具,用户可以轻松地进行图像比较、基准测试和自定义评估。
- 持续更新: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/查看测试数据。以下是截图:
训练数据集将很快发布。