Project Icon

HPSv2

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

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


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] 我们发布了测试数据

概览


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

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

HPS基准测试

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

v2基准测试
模型动画概念艺术绘画照片平均分
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
v2.1基准测试 | 模型 | 动画 | 概念艺术 | 绘画 | 照片 | 平均 | | ---------------------| --------- | ----------- | -------- | -------- | -------- | | 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}
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号