HPSv2

HPSv2

文本到图像生成模型评估的全面基准测试框架

HPSv2是一个评估文本到图像生成模型的先进基准测试框架。该框架基于大规模人类偏好数据集HPDv2训练,可准确预测人类对生成图像的偏好。HPSv2提供公平、稳定且易用的评估方法,涵盖动画、概念艺术、绘画和照片四种风格。研究人员可利用HPSv2比较不同模型性能或评估自研模型。项目提供PyPI包和在线演示,便于快速上手使用。

HPS v2图像生成模型人类偏好评分基准测试文本到图像合成Github开源项目
<p align="center"><img src="https://yellow-cdn.veclightyear.com/835a84d5/5a28d2b5-bb63-4a89-846f-a806b01756c1.png"/ width="100%"><br></p>

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

PyPI PyPI - Downloads Arxiv Huggingface PyPI - License

这是论文《人类偏好评分v2:评估文本到图像合成人类偏好的可靠基准》的官方代码仓库。

更新

  • [2024/02/09] 我们发布了在更高质量数据集上训练的HPS v2.1模型,以及HPD v2.0的训练集。新年快乐!
  • [2023/02/08] 我们发布了PyPI包。您可以从快速开始章节了解如何使用它。
  • [2023/02/08] 更新了test.json以包含每位标注者的原始标注。
  • [2023/07/29] 我们在基准测试中加入了SDXL Refiner 0.9模型。
  • [2023/07/29] 我们发布了基准测试和HPD v2测试数据。HPD v2训练数据将很快发布。
  • [2023/07/27] 我们在基准测试中加入了SDXL Base 0.9模型。
  • [2023/07/26] 我们更新了压缩检查点
  • [2023/07/19] 在🤗Hugging Face上提供在线演示。
  • [2023/07/18] 我们发布了测试数据

概览

<p align="center"><img src="https://yellow-cdn.veclightyear.com/835a84d5/875c9c2a-3e6e-4de2-98b0-8082626bf93b.png"/ width="100%"><br></p>

人类偏好数据集v2 (HPD v2):一个大规模(798k偏好选择 / 430k图像)、标注良好的数据集,包含人类对文本到图像生成模型生成图像的偏好选择。

人类偏好评分v2 (HPS v2):在HPD v2上训练的偏好预测模型。HPS v2可用于比较使用相同提示生成的图像。我们还提供了一套公平、稳定且易于使用的评估提示,用于文本到图像生成模型。

HPS基准测试

HPS基准测试评估模型在4种风格下生成图像的能力:动画概念艺术绘画照片

<details close> <summary> v2基准测试 </summary>
模型动画概念艺术绘画照片平均分
Dreamlike Photoreal 2.028.2427.6027.5927.9927.86
SDXL Refiner 0.928.4527.6627.6727.4627.80
Realistic Vision28.2227.5327.5627.7527.77
SDXL Base 0.928.4227.6327.6027.2927.73
Deliberate28.1327.4627.4527.6227.67
ChilloutMix27.9227.2927.3227.6127.54
MajicMix Realistic27.8827.1927.2227.6427.48
Openjourney27.8527.1827.2527.5327.45
DeepFloyd-XL27.6426.8326.8627.7527.27
Epic Diffusion27.5726.9627.0327.4927.26
Stable Diffusion v2.027.4826.8926.8627.4627.17
Stable Diffusion v1.427.2626.6126.6627.2726.95
DALL·E 227.3426.5426.6827.2426.95
Versatile Diffusion26.5926.2826.4327.0526.59
CogView226.5026.5926.3326.4426.47
VQGAN + CLIP26.4426.5326.4726.1226.39
DALL·E mini26.1025.5625.5626.1225.83
Latent Diffusion25.7325.1525.2526.9725.78
FuseDream25.2625.1525.1325.5725.28
VQ-Diffusion24.9724.7025.0125.7125.10
LAFITE24.6324.3824.4325.8124.81
GLIDE23.3423.0823.2724.5023.55
</details> <details close> <summary> v2.1基准测试 </summary> | 模型 | 动画 | 概念艺术 | 绘画 | 照片 | 平均 | | ---------------------| --------- | ----------- | -------- | -------- | -------- | | SDXL Refiner 0.9 | 33.26 | 32.07 | 31.63 | 28.38 | 31.34 | | SDXL Base 0.9 | 32.84 | 31.36 | 30.86 | 27.48 | 30.63 | | Deliberate | 31.46 | 30.48 | 30.17 | 28.83 | 30.23 | | Realistic Vision | 31.01 | 29.95 | 30.00 | 28.61 | 29.89 | | Dreamlike Photoreal 2.0 | 30.87 | 29.75 | 29.46 | 28.85 | 29.73 | | MajicMix Realistic | 29.67 | 28.50 | 28.44 | 28.02 | 28.66 | | ChilloutMix | 29.46 | 28.46 | 28.35 | 27.63 | 28.47 | | Openjourney | 28.37 | 27.38 | 27.53 | 26.66 | 27.48 | | DeepFloyd-XL | 27.71 | 26.07 | 25.79 | 27.96 | 26.88 | | Epic Diffusion | 27.07 | 26.14 | 26.17 | 26.43 | 26.45 | | Stable Diffusion v2.0 | 27.09 | 26.02 | 25.68 | 26.73 | 26.38 | | Stable Diffusion v1.4 | 26.03 | 24.87 | 24.80 | 25.70 | 25.35 | | DALL·E 2 | 26.38 | 24.51 | 24.93 | 25.55 | 25.34 | | Versatile Diffusion | 23.69 | 23.39 | 24.02 | 24.64 | 23.93 | | CogView2 | 23.64 | 24.86 | 23.40 | 22.68 | 23.64 | | VQGAN + CLIP | 22.55 | 23.76 | 23.41 | 21.51 | 22.81 | | DALL·E mini | 21.54 | 20.50 | 20.32 | 21.72 | 21.02 | | Latent Diffusion | 20.63 | 19.65 | 19.79 | 21.26 | 20.34 | | FuseDream | 19.16 | 19.37 | 19.07 | 20.07 | 19.42 | | VQ-Diffusion | 18.44 | 18.31 | 19.24 | 20.62 | 19.15 | | LAFITE | 17.79 | 17.55 | 17.61 | 20.88 | 18.46 | | GLIDE | 13.90 | 13.50 | 13.94 | 16.72 | 14.51 |

快速入门

安装

# 方法1:通过Pypi下载安装 pip install hpsv2 # 方法2:本地安装 git clone https://github.com/tgxs002/HPSv2.git cd HPSv2 pip install -e . # 可选:用于重现我们基准测试的图像将下载到这里 # 默认路径:~/.cache/hpsv2/ export HPS_ROOT=/your/cache/path

安装完成后,我们将展示如何:

  • 使用HPS v2比较图像。
  • 重现我们的基准测试。
  • 使用HPS v2评估您自己的模型。
  • 评估我们的偏好模型。

我们还提供了命令行界面用于调试目的。

图像比较

您可以通过运行以下代码对由相同提示生成的几张图像进行评分和比较:

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

注意:比较仅对由相同提示生成的图像有意义。您也可以将"v2.0"传递给hps_version以使用我们更新的模型。v2.0和v2.1之间的分数不能直接比较。

基准测试重现

我们还提供了我们基准测试中使用的模型生成的图像用于评估。您可以通过运行以下代码轻松下载数据并评估模型:

import hpsv2 print(hpsv2.get_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 # <image_path>与前一部分中的<image_path>相同。 # <hps_version>是HPS模型的版本,可以是v2或v2.1。默认为v2。 hpsv2.evaluate("<images_path>", hps_version="<hps_version>")

偏好模型评估

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

模型ImageReward测试集准确率(%)HPD v2测试集准确率(%)新测试集准确率(%)
审美分数预测器57.476.857.8*
ImageReward65.174.067.4*
HPS61.277.666.8*
PickScore62.979.867.8*
单个人类65.378.165.4*
HPS v265.783.373.2*
HPS v2.166.884.174.8*

* 新测试集是另一个类似于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

我们数据集中的提示来自DiffusionDB和MSCOCO Captions。DiffusionDB的提示首先由ChatGPT清理以删除有偏见的功能词。人类标注者的任务是对不同文本到图像生成模型从同一提示生成的图像进行排序。总共有约798k对图像比较,涉及超过430k张图像和107k个提示,其中645k对用于训练集,153k对用于测试集。

HPD v2的图像来源:

来源图像数量
CogView273697
DALL·E 2101869
GLIDE (mini)400
Stable Diffusion v1.4101869
Stable Diffusion v2.0101869
LAFITE400
VQ-GAN+CLIP400
VQ-Diffusion400
FuseDream400
COCO Captions28272

下载

训练和测试数据现已完全发布,可以从这里下载。 您可以在https://tgxs002.github.io/hpd_test_vis/查看测试数据。以下是截图: test_vis

您可以手动下载并解压,或直接使用HPDv2运行以下代码:

from datasets import load_dataset dataset = load_dataset("HPDv2.py")

数据结构

解压后,您应该得到一个具有以下结构的文件夹:

HPD
---- train/
-------- {image_id}.jpg
---- test/
-------- {image_id}.jpg
---- train.json
---- test.json
---- benchmark/
-------- benchmark_imgs/
------------ {model_id}/
---------------- {image_id}.jpg
-------- drawbench/
------------ {model_id}/
---------------- {image_id}.jpg
-------- anime.json
-------- concept-art.json
-------- paintings.json
-------- photo.json
-------- drawbench.json

注释文件train.json的组织方式如下:

[
    {
        'human_preference': list[int], # 1表示偏好
        'prompt': str,
        'file_path': list[str],
    },
    ...
]

注释文件test.json的组织方式如下:

[
    {
        'prompt': str,
        'image_path': list[str],
        'rank': list[int], # image_path中相同索引图像的平均排名结果
        'raw_annotations': list[{'rank', 'user_hash'}]  # 每个标注者的原始排名结果
    },
    ...
]

基准提示文件,如anime.json,是纯文本提示。对应的图像可以通过索引提示在相应模型的文件夹中找到。

命令行界面

使用HPS v2评估文本到图像生成模型

我们实验中生成的图像可以从这里下载。

以下脚本复现了基准表和我们在DrawBench上的结果(在论文中报告)(需要先安装hpsv2):

# HPS v2基准(适用于多个模型) python evaluation.py --data-type benchmark_all --data-path /path/to/HPD/benchmark --image-path /path/to/benchmark_imgs # HPS v2基准(仅适用于一个模型) python evaluation.py --data-type benchmark --data-path /path/to/HPD/benchmark --image-path /path/to/benchmark_imgs/${model_name} # DrawBench python evaluation.py --data-type drawbench --data-path /path/to/HPD/benchmark --image-path /path/to/drawbench_imgs

对单个生成图像及其对应提示进行评分

我们在此仓库的asset/images目录中提供了一个示例图像。对应的提示是"A cat with two horns on its head"。

运行以下命令对单个生成图像及其对应提示进行评分(需要先安装hpsv2):

python img_score.py --image-path assets/demo_image.jpg --prompt 'A cat with two horns on its head'

其中参数image-path可以接受多个值。

训练人类偏好预测器

要训练您自己的人类偏好预测器,只需更改configs/controller.sh中的相应路径,并运行以下命令:

# 如果您在本地运行 bash configs/HPSv2.sh train 8 local # 如果您在slurm上运行 bash configs/HPSv2.sh train 8 ${quota_type}

BibTeX

@article{wu2023human,
  title={Human Preference Score v2: A Solid Benchmark for Evaluating Human Preferences of Text-to-Image Synthesis},
  author={Wu, Xiaoshi and Hao, Yiming and Sun, Keqiang and Chen, Yixiong and Zhu, Feng and Zhao, Rui and Li, Hongsheng},
  journal={arXiv preprint arXiv:2306.09341},
  year={2023}
}

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多