OneIG-Benchmark

OneIG-Benchmark 是一个面向文生图模型的综合评测基准,围绕对齐性文本渲染推理能力风格表现多样性五个维度组织评测,覆盖图像生成模型的核心能力评估。官方 Standard 套件包含 5 个子任务,支持 EN(英文)ZH(中文) 两种语言模式。

AISBench 已适配 OneIG-Benchmark。仓库目录 ais_bench/configs/oneig_examples/ 下放的是 独立配置文件 示例,在 GPU 上对生成图片做多维度质量测评。OneIG 采用 eval-only 模式,不包含图片生成步骤,请先使用待评测模型生成图片后再进行测评。

数据集概述

背景简介

OneIG-Benchmark 由官方团队开发,旨在从多个细粒度维度全面评估文生图模型的生成质量。官方 GitHub 仓库:https://github.com/OneIG-Bench/OneIG-Benchmark,数据集地址:https://huggingface.co/datasets/OneIG-Bench/OneIG-Benchmark

核心特性

特性

说明

5 维评测

覆盖对齐、文本、推理、风格、多样性五个维度

双语言支持

EN(英文)/ ZH(中文)两种模式

LLM-as-Judge

Alignment 和 Text 任务使用多模态大模型作为裁判

ML 模型评测

Reasoning、Style、Diversity 使用专业小模型评测

Eval-Only 模式

仅评测生成图片,不包含图片生成步骤

网格切分

支持将多图拼接的网格图片自动切分为子图

精度对齐

与官方评测方法精度差异 < 1%

评测架构总览

端到端评测流程分为数据准备和评估两个阶段:

数据准备阶段                           评估阶段
┌──────────────────────┐    ┌───────────────────────────────────────────┐
│ OneIG-Bench.csv      │    │               评估阶段                    │
│ (原始数据集)          │    │                                           │
│       ↓              │    │  images/ 目录 (待评测图片)                │
│ prompt 提取           │    │       ↓                                   │
│       ↓              │    │  ┌─────────────┐  ┌─────────────┐        │
│ 文生图模型生成图片     │    │  │ Alignment   │  │ Text        │        │
│       ↓              │    │  │ (LLM-Judge) │  │ (LLM-Judge) │        │
│ images/ 目录          │───▶│  └─────────────┘  └─────────────┘        │
│ (待评测对象)          │    │  ┌─────────────┐  ┌─────────────┐        │
└──────────────────────┘    │  │ Reasoning   │  │ Style       │        │
                            │  │ (LLM2CLIP)  │  │ (CSD+SE)    │        │
                            │  └─────────────┘  └─────────────┘        │
                            │  ┌─────────────┐                         │
                            │  │ Diversity   │  → results/ 目录        │
                            │  │ (DreamSim)  │    (评测结果)            │
                            │  └─────────────┘                         │
                            └───────────────────────────────────────────┘

AISBench 适配架构(四层分离):

ais_bench/
├── benchmark/                              # 框架层
│   ├── datasets/oneig.py                   # 数据集加载器
│   ├── tasks/oneig/                        # 评测任务包
│   │   ├── __init__.py                     # 模块入口
│   │   ├── oneig_eval.py                   # 评测任务(OneIGEvalTask)
│   │   ├── oneig_eval_utils.py             # 公共工具函数
│   │   ├── oneig_alignment_eval.py         # 对齐评估器
│   │   ├── oneig_text_eval.py              # 文本评估器
│   │   ├── oneig_reasoning_eval.py         # 推理评估器
│   │   ├── oneig_style_eval.py             # 风格评估器
│   │   └── oneig_diversity_eval.py         # 多样性评估器
│   └── summarizers/oneig.py                # 评分汇总器
├── configs/oneig_examples/                 # 用户示例配置
│   └── oneig_full_eval.py                  # 全量评测配置文件
└── docs/
    ├── source_zh_cn/extended_benchmark/lmm_generate/oneig.md   # 中文文档
    └── source_en/extended_benchmark/lmm_generate/oneig.md      # 英文文档

依赖与环境

基础环境

OneIG 评测仅支持 GPU 平台。在开始前,请确保已安装 AISBench:

# 克隆 AISBench 代码
git clone https://github.com/AISBench/benchmark.git
cd benchmark/

# 安装运行依赖
pip install -e ./ --use-pep517

OneIG 官方仓库

OneIG 评测依赖官方仓库的辅助数据和参考嵌入,需提前克隆:

# 克隆 AISBench 组织下的 OneIG 代码(已修复已知 Bug)
git clone https://github.com/AISBench/OneIG-Benchmark.git
cd OneIG-Benchmark/

# 安装依赖
pip install -r requirements.txt

模型权重与资源下载

OneIG 评测涉及多种模型权重,分为以下三类:

一、HuggingFace 自动下载(首次运行时自动完成,无需手动操作)

模型

用途

HuggingFace 路径

Judge 模型

Alignment / Text

Qwen/Qwen3-VL-8B-Instruct

LLM2CLIP Clip

Reasoning

openai/clip-vit-large-patch14-336

LLM2CLIP Vision

Reasoning

microsoft/LLM2CLIP-Openai-L-14-336

LLM2CLIP LLM

Reasoning

microsoft/LLM2CLIP-Llama-3-8B-Instruct-CC-Finetuned

SE Encoder

Style

xingpng/OneIG-StyleEncoder

二、DreamSim 权重(Diversity)

首次运行时 dreamsim 库会自动从 GitHub Releases 下载权重到 {ONEIG_ROOT}/models/ 目录。如果网络无法访问 GitHub,需手动下载:

  • 下载地址:https://github.com/ssundaram21/dreamsim/releases/download/v0.2.0-checkpoints/dreamsim_ensemble_checkpoint.zip

  • 解压到 {ONEIG_ROOT}/models/ 目录

  • 解压后应包含:dino_vitb16_pretrain.pthopen_clip_vitb16_pretrain.pth.tarclip_vitb16_pretrain.pth.tarensemble_lora/

三、必须手动下载的文件(Style 任务)

文件

归档路径

下载地址

CSD 编码器

{ONEIG_ROOT}/scripts/style/models/checkpoint.pth

Google Drive

CLIP ViT-L-14

{ONEIG_ROOT}/scripts/style/models/ViT-L-14.pt

OpenAI Public

四、随 OneIG 仓库分发的数据文件(git clone 后自动获取)

文件

路径

用途

问题依赖数据

scripts/alignment/Q_D/*.json

Alignment 任务的问答依赖关系

文本内容数据

scripts/text/text_content*.csv

Text 任务的参考文本

参考答案

scripts/reasoning/gt_answer*.json

Reasoning 任务的参考答案

风格标签

scripts/style/style.csv

Style 任务的风格标签

CSD 参考嵌入

scripts/style/CSD_embed.pt

Style 任务的 CSD 参考向量

SE 参考嵌入

scripts/style/SE_embed.pt

Style 任务的 SE 参考向量

快速开始

配置修改

编辑配置文件 ais_bench/configs/oneig_examples/oneig_full_eval.py,修改以下关键参数:

# OneIG 官方项目绝对路径(需提前克隆)
ONEIG_ROOT = "/path/to/OneIG-Benchmark"

# 语言模式:EN(英文)或 ZH(中文)
MODE = "EN"

# 图片根目录(生成图片存放位置)
IMAGE_DIR = "/path/to/oneig/images"

# 模型名称列表(生成图片的模型名称)
MODEL_NAMES = ["Qwen-Image"]

# 网格配置列表(与 MODEL_NAMES 一一对应,格式:'rows,cols')
IMAGE_GRIDS = ["2,2"]

# 要执行的任务列表(可自由组合)
TASKS = ['alignment', 'text', 'reasoning', 'style', 'diversity']

执行评测

# 全量评测(5 个子任务)
ais_bench ais_bench/configs/oneig_examples/oneig_full_eval.py -m eval

结果查看

评测完成后,结果输出在 outputs/default/{timestamp}/ 目录下:

outputs/default/{timestamp}/
├── configs/
│   └── {timestamp}.py                    # 评测配置快照
├── logs/
│   └── eval/
│       └── oneig_eval/
│           ├── oneig_alignment.out       # 各任务日志
│           ├── oneig_text.out
│           ├── oneig_reasoning.out
│           ├── oneig_style.out
│           └── oneig_diversity.out
├── results/
│   └── oneig_eval/
│       ├── oneig_alignment.json          # 各任务评测结果(含逐样本详情)
│       ├── oneig_text.json
│       ├── oneig_reasoning.json
│       ├── oneig_style.json
│       └── oneig_diversity.json
└── summary/
    ├── summary_{timestamp}.csv           # 评测总览
    ├── summary_{timestamp}.md
    └── summary_{timestamp}.txt

配置与输出

常用配置项

配置项

作用

必填

ONEIG_ROOT

OneIG 官方项目绝对路径

MODE

语言模式:EN(英文)或 ZH(中文)

IMAGE_DIR

待评测图片根目录

MODEL_NAMES

生成图片的模型名称列表

IMAGE_GRIDS

网格配置列表,格式 'rows,cols',与 MODEL_NAMES 一一对应

TASKS

要执行的任务列表,可选值:alignmenttextreasoningstylediversity

JUDGE_MODEL_PATH

Judge 模型路径(Alignment/Text),默认 Qwen/Qwen3-VL-8B-Instruct

JUDGE_SEED

Judge 模型随机种子,默认 42

DREAMSIM_CACHE_DIR

DreamSim 权重缓存目录,默认 {ONEIG_ROOT}/models

预设配置一览

配置名

说明

配置文件

oneig_full_eval

全量评测配置,包含 5 个子任务,支持自由组合

ais_bench/configs/oneig_examples/oneig_full_eval.py

测评结果路径

按子任务写入:

{work_dir}/results/oneig_eval/oneig_{task}.json

其中 {task}alignmenttextreasoningstylediversity 之一。

输出格式说明

每个子任务的 JSON 结果文件结构如下(以 Alignment 为例):

{
    "accuracy": 88.44,
    "details": [
        {
            "id": "000",
            "class_item": "anime",
            "score": 0.85,
            "image_path": "/path/to/image.png",
            "grid": "2x2",
            "num_splits": 4,
            "judge_details": [
                {
                    "question_id": "Q1",
                    "question": "...",
                    "judge_prompt": "...",
                    "judge_outputs": [
                        {"grid_idx": 0, "raw_output": "Yes", "parsed_answer": "Yes", "score": 1.0}
                    ],
                    "dependency": [0],
                    "filtered_scores": null
                }
            ]
        }
    ],
    "style_scores": null
}

各子任务的 details 字段包含不同的中间数据:

子任务

中间数据字段

说明

Alignment

judge_details

逐切分图的 Judge 问答详情

Text

ocr_details

逐切分图的 OCR 结果与文本指标(ED/CR/WAC)

Reasoning

similarity_details

逐切分图的相似度得分

Style

encoder_details

逐切分图的 CSD/SE 相似度与风格得分

Diversity

pairwise_distances

逐对切分图的 DreamSim 距离

评测指标体系

指标总览

子任务

主指标

辅助指标

评测方式

评测模型

Alignment

accuracy

-

LLM-as-Judge

Qwen3-VL-8B-Instruct

Text

accuracy

EDCRWAC

LLM-as-Judge + OCR

Qwen3-VL-8B-Instruct

Reasoning

accuracy

-

特征相似度

LLM2CLIP

Style

accuracy

-

特征相似度

CSD + SE Encoder

Diversity

accuracy

oneig_diversity_{class}

感知距离

DreamSim

Total

oneig_total

-

5 任务平均

-

各子任务评测逻辑

Alignment(对齐评估 — LLM-as-Judge)

目标:评估生成图片与提示词的对齐程度。

流程

  1. 将网格图片切分为子图

  2. 对每个子图,使用 Judge 模型(Qwen3-VL-8B-Instruct)回答 Yes/No 问题

  3. 答案为 “Yes” 记 1 分,“No” 记 0 分

  4. 取所有子图的平均分作为该样本的得分

  5. 全部样本得分取平均 × 100 作为 accuracy

关键参数

  • judge_model_path:Judge 模型路径

  • judge_seed:随机种子(默认 42,确保可复现)

  • num_gpus:支持多 GPU 并行(推荐 4)

Text(文本评估 — LLM-as-Judge + OCR)

目标:评估生成图片中文本渲染的准确性。

流程

  1. 将网格图片切分为子图

  2. 使用 Judge 模型对每个子图进行 OCR,提取文本

  3. 将提取文本与参考文本对比,计算三个指标:

    • ED(Edit Distance):编辑距离

    • CR(Character Ratio):字符比率

    • WAC(Word Accuracy Coincidence):词准确率

  4. 综合 OCR 指标与 Judge 评分得到 accuracy

Reasoning(推理评估 — LLM2CLIP)

目标:评估生成图片对推理类提示词的理解程度。

流程

  1. 将网格图片切分为子图

  2. 使用 LLM2CLIP 提取图片特征和参考答案文本特征

  3. 计算图片特征与文本特征的余弦相似度

  4. 取所有子图的平均相似度作为该样本得分

  5. 全部样本得分取平均 × 100 作为 accuracy

模型组成

  • CLIP Processor:openai/clip-vit-large-patch14-336

  • CLIP Model:microsoft/LLM2CLIP-Openai-L-14-336

  • LLM Model:microsoft/LLM2CLIP-Llama-3-8B-Instruct-CC-Finetuned

Style(风格评估 — CSD + SE Encoder)

目标:评估生成图片的风格表现。

流程

  1. 将网格图片切分为子图

  2. 使用 CSD(CLIP-Style-Diffusion)编码器提取风格特征

  3. 使用 SE(Style Encoder)编码器提取风格特征

  4. 分别计算 CSD 特征和 SE 特征与参考风格嵌入的余弦相似度

  5. 取两个相似度的平均值作为该子图的风格得分

  6. 所有子图取平均,全部样本取平均 × 100 作为 accuracy

风格类别(29 种):abstract_expressionism、art_nouveau、baroque、chinese_ink_painting、cubism、fauvism、impressionism、line_art、minimalism、pointillism、pop_art、rococo、ukiyo-e、clay、crayon、graffiti、lego、comic、pencil_sketch、stone_sculpture、watercolor、celluloid、chibi、cyberpunk、ghibli、impasto、pixar、pixel_art、3d_rendering

Diversity(多样性评估 — DreamSim)

目标:评估同一模型生成的多张图片之间的多样性。

流程

  1. 将网格图片切分为子图

  2. 使用 DreamSim 模型计算所有子图两两之间的感知距离

  3. 取所有距离对的平均值作为该样本的多样性得分

  4. 按 class_item(anime、human、object、text、reasoning)分组统计细粒度指标

  5. 全部样本得分取平均 × 100 作为 accuracy

评分汇总(oneig_total)

oneig_total 为 5 个子任务 accuracy 的简单平均:

oneig_total = (alignment + text + reasoning + style + diversity) / 5

此外,Diversity 任务额外输出按 class_item 分组的细粒度指标:

指标

说明

oneig_diversity_anime

Anime 类别的多样性得分

oneig_diversity_human

Portrait 类别的多样性得分

oneig_diversity_object

General Object 类别的多样性得分

oneig_diversity_text

Text Rendering 类别的多样性得分

oneig_diversity_reasoning

Knowledge Reasoning 类别的多样性得分

评测结果示例

dataset             version  metric   mode  oneig_eval
oneig_alignment     a39421   accuracy gen   88.44
oneig_text          a39421   accuracy gen   80.79
oneig_text          a39421   ED        gen   43.32
oneig_text          a39421   CR        gen   0.08
oneig_text          a39421   WAC       gen   0.52
oneig_reasoning     a39421   accuracy gen   29.84
oneig_style         a39421   accuracy gen   35.85
oneig_diversity     a39421   accuracy gen   18.28
oneig_total         -        accuracy gen   50.64
oneig_diversity_anime  -     accuracy gen   9.00
oneig_diversity_human  -     accuracy gen   11.21
oneig_diversity_object -    accuracy gen   13.27
oneig_diversity_text   -     accuracy gen   21.14
oneig_diversity_reasoning - accuracy gen   36.80

数据格式说明

原始数据集格式

OneIG 原始数据集为 CSV 文件(OneIG-Bench.csv),每条数据包含以下字段:

{
    "category": "Anime_Stylization",
    "id": "000",
    "prompt_en": "4boys, 5girls, multiple boys, multiple girls, ...",
    "type": "T, P",
    "prompt_length": "long",
    "class": "None"
}

字段

说明

category

提示词类别:Anime_Stylization、Portrait、General Object、Text Rendering、Knowledge Reasoning、Multilingualism

id

唯一 ID,每个类别独立维护

prompt_en

文生图提示词

type

类型标记:T(Text)、P(Portrait)、NP(Non-Portrait)

prompt_length

提示词长度:short、middle、long

class

风格类别(可选):fauvism、watercolor、None

图片目录结构

待评测图片需按以下目录结构组织:

IMAGE_DIR/
├── anime/                      # class_item 目录
│   └── {model_name}/           # 模型名称目录
│       ├── 000.png             # 图片文件(文件名前3位为 sample_id)
│       ├── 001.png
│       └── ...
├── human/
│   └── {model_name}/
│       ├── 000.png
│       └── ...
├── object/
│   └── {model_name}/
│       └── ...
├── text/
│   └── {model_name}/
│       └── ...
└── reasoning/
    └── {model_name}/
        └── ...

各子任务对应的 class_item 目录:

子任务

EN 模式

ZH 模式(额外)

Alignment

anime、human、object

multilingualism

Text

text

-

Reasoning

reasoning

-

Style

anime

-

Diversity

anime、human、object、text、reasoning

multilingualism

网格切分说明

OneIG 支持将多张生成图片拼接为网格图进行批量评测。IMAGE_GRIDS 配置指定了网格的行列数:

网格配置

含义

切分子图数

"1,2"

1 行 2 列

2

"2,2"

2 行 2 列

4

"1,4"

1 行 4 列

4

"3,3"

3 行 3 列

9

评测时,网格图片会被自动切分为子图,每个子图独立评测后取平均分。

示例代码

单任务评测

修改配置文件中的 TASKS 列表,仅包含需要评测的任务:

# 仅评测 Alignment
TASKS = ['alignment']

执行:

ais_bench ais_bench/configs/oneig_examples/oneig_full_eval.py -m eval

全量评测

# 评测全部 5 个子任务
TASKS = ['alignment', 'text', 'reasoning', 'style', 'diversity']

执行:

ais_bench ais_bench/configs/oneig_examples/oneig_full_eval.py -m eval

中文模式评测

ONEIG_ROOT = "/path/to/OneIG-Benchmark"
MODE = "ZH"                                    # 切换为中文模式
IMAGE_DIR = "/path/to/oneig/images_zh"         # 中文提示词生成的图片目录
MODEL_NAMES = ["Qwen-Image"]
IMAGE_GRIDS = ["2,2"]
TASKS = ['alignment', 'text', 'reasoning', 'style', 'diversity']

多模型对比评测

MODEL_NAMES = ["model_a", "model_b"]
IMAGE_GRIDS = ["2,2", "2,2"]                   # 与 MODEL_NAMES 长度一致