# vchitect/vbench architecture

> Architecture diagram of the GitHub repository vchitect/vbench, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vchitect/vbench
- Repository: https://github.com/vchitect/vbench

## Overview

VBench is a family of benchmarks for evaluating generated videos. The main workflow is to select videos and evaluation dimensions, build prompt/video metadata, run dimension-specific evaluators, and save scores. The repository also documents VBench-2.0 and VBench++ tracks for image-to-video, long-video, and trustworthiness evaluation. The sampled source confirms orchestration and parts of the long-video and camera-motion implementations; other dimension internals are represented only where the tree or README supports them.

Main entry points: [`vbench/__init__.py`](https://github.com/vchitect/vbench/blob/master/vbench/__init__.py) (VBench evaluator), [`vbench2_beta_long/__init__.py`](https://github.com/vchitect/vbench/blob/master/vbench2_beta_long/__init__.py) (Long-video evaluation), [`VBench-2.0/vbench2/__init__.py`](https://github.com/vchitect/vbench/blob/master/VBench-2.0/vbench2/__init__.py) (V2 evaluator), [`vbench2_beta_trustworthiness/__init__.py`](https://github.com/vchitect/vbench/blob/master/vbench2_beta_trustworthiness/__init__.py) (Trust evaluation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_classic["VBench Core"]
  node_classic_cli["Evaluation CLI<br/>[evaluate.py]"]
  node_classic_engine["VBench evaluator<br/>[__init__.py]"]
  node_classic_meta["Prompt-video metadata<br/>[__init__.py]"]
  node_classic_quality["Quality dimensions"]
  node_classic_content["Content dimensions"]
  node_classic_temporal["Temporal dimensions"]
  node_classic_filter["Static filtering<br/>[static_filter.py]"]
end

subgraph group_v2["VBench 2.0"]
  node_v2_cli["V2 evaluation CLI<br/>[evaluate.py]"]
  node_v2_engine["V2 evaluator<br/>[__init__.py]"]
  node_v2_dimensions["V2 dimensions<br/>[vbench2]"]
  node_v2_scores["V2 score calculation<br/>[cal_final_score.py]"]
end

subgraph group_i2v["Image To Video"]
  node_i2v_engine["I2V evaluation"]
  node_i2v_camera["Camera motion<br/>[camera_motion.py]"]
end

subgraph group_long["Long Video"]
  node_long_engine["Long-video evaluation<br/>[__init__.py]"]
  node_long_prepare["Clip and scene preparation<br/>[utils.py]"]
  node_long_dimensions["Long-video dimensions"]
end

subgraph group_trust["Trustworthiness"]
  node_trust_engine["Trust evaluation<br/>[__init__.py]"]
  node_trust_dimensions["Fairness and safety"]
end

node_user(("Benchmark user"))
node_videos["Generated videos"]
node_results["Evaluation results"]

node_user -->|"selects run"| node_classic_cli
node_videos -->|"provides videos"| node_classic_engine
node_classic_cli -->|"starts evaluation"| node_classic_engine
node_classic_engine -->|"builds metadata"| node_classic_meta
node_classic_engine -->|"dispatches dimensions"| node_classic_quality
node_classic_engine -->|"dispatches dimensions"| node_classic_content
node_classic_engine -->|"dispatches dimensions"| node_classic_temporal
node_classic_engine -->|"saves scores"| node_results
node_videos -->|"filters videos"| node_classic_filter
node_user -->|"selects run"| node_v2_cli
node_videos -->|"provides videos"| node_v2_engine
node_v2_cli -->|"starts evaluation"| node_v2_engine
node_v2_engine -->|"dispatches dimensions"| node_v2_dimensions
node_v2_engine -->|"saves results"| node_results
node_results -->|"calculates final scores"| node_v2_scores
node_videos -->|"provides videos"| node_i2v_engine
node_i2v_engine -->|"evaluates camera motion"| node_i2v_camera
node_videos -->|"provides videos"| node_long_engine
node_long_engine -->|"splits into clips"| node_long_prepare
node_long_engine -->|"dispatches dimensions"| node_long_dimensions
node_long_engine -->|"saves results"| node_results
node_videos -->|"provides videos"| node_trust_engine
node_trust_engine -->|"dispatches dimensions"| node_trust_dimensions
node_trust_engine -->|"saves results"| node_results

click node_classic_cli "https://github.com/vchitect/vbench/blob/master/vbench/launch/evaluate.py"
click node_classic_engine "https://github.com/vchitect/vbench/blob/master/vbench/__init__.py"
click node_classic_meta "https://github.com/vchitect/vbench/blob/master/vbench/__init__.py"
click node_classic_quality "https://github.com/vchitect/vbench/tree/master/vbench"
click node_classic_content "https://github.com/vchitect/vbench/tree/master/vbench"
click node_classic_temporal "https://github.com/vchitect/vbench/tree/master/vbench"
click node_classic_filter "https://github.com/vchitect/vbench/blob/master/vbench/cli/static_filter.py"
click node_v2_cli "https://github.com/vchitect/vbench/blob/master/VBench-2.0/evaluate.py"
click node_v2_engine "https://github.com/vchitect/vbench/blob/master/VBench-2.0/vbench2/__init__.py"
click node_v2_dimensions "https://github.com/vchitect/vbench/tree/master/VBench-2.0/vbench2"
click node_v2_scores "https://github.com/vchitect/vbench/blob/master/VBench-2.0/scripts/cal_final_score.py"
click node_i2v_engine "https://github.com/vchitect/vbench/tree/master/vbench2_beta_i2v"
click node_i2v_camera "https://github.com/vchitect/vbench/blob/master/vbench2_beta_i2v/camera_motion.py"
click node_long_engine "https://github.com/vchitect/vbench/blob/master/vbench2_beta_long/__init__.py"
click node_long_prepare "https://github.com/vchitect/vbench/blob/master/vbench2_beta_long/utils.py"
click node_long_dimensions "https://github.com/vchitect/vbench/tree/master/vbench2_beta_long"
click node_trust_engine "https://github.com/vchitect/vbench/blob/master/vbench2_beta_trustworthiness/__init__.py"
click node_trust_dimensions "https://github.com/vchitect/vbench/tree/master/vbench2_beta_trustworthiness"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_classic_cli,node_classic_engine,node_classic_meta,node_classic_quality,node_classic_content,node_classic_temporal,node_classic_filter,node_user toneBlue
class node_v2_cli,node_v2_engine,node_v2_dimensions,node_v2_scores toneAmber
class node_i2v_engine,node_i2v_camera toneMint
class node_long_engine,node_long_prepare,node_long_dimensions toneRose
class node_trust_engine,node_trust_dimensions,node_videos,node_results toneIndigo
```

## Components

### VBench Core

- [Evaluation CLI](https://github.com/vchitect/vbench/blob/master/vbench/launch/evaluate.py): `vbench/launch/evaluate.py`
- [VBench evaluator](https://github.com/vchitect/vbench/blob/master/vbench/__init__.py): `vbench/__init__.py`
- [Prompt-video metadata](https://github.com/vchitect/vbench/blob/master/vbench/__init__.py): `vbench/__init__.py`
- [Quality dimensions](https://github.com/vchitect/vbench/tree/master/vbench): `vbench`
- [Content dimensions](https://github.com/vchitect/vbench/tree/master/vbench): `vbench`
- [Temporal dimensions](https://github.com/vchitect/vbench/tree/master/vbench): `vbench`
- [Static filtering](https://github.com/vchitect/vbench/blob/master/vbench/cli/static_filter.py): `vbench/cli/static_filter.py`

### VBench 2.0

- [V2 evaluation CLI](https://github.com/vchitect/vbench/blob/master/VBench-2.0/evaluate.py): `VBench-2.0/evaluate.py`
- [V2 evaluator](https://github.com/vchitect/vbench/blob/master/VBench-2.0/vbench2/__init__.py): `VBench-2.0/vbench2/__init__.py`
- [V2 dimensions](https://github.com/vchitect/vbench/tree/master/VBench-2.0/vbench2): `VBench-2.0/vbench2`
- [V2 score calculation](https://github.com/vchitect/vbench/blob/master/VBench-2.0/scripts/cal_final_score.py): `VBench-2.0/scripts/cal_final_score.py`

### Image To Video

- [I2V evaluation](https://github.com/vchitect/vbench/tree/master/vbench2_beta_i2v): `vbench2_beta_i2v`
- [Camera motion](https://github.com/vchitect/vbench/blob/master/vbench2_beta_i2v/camera_motion.py): `vbench2_beta_i2v/camera_motion.py`

### Long Video

- [Long-video evaluation](https://github.com/vchitect/vbench/blob/master/vbench2_beta_long/__init__.py): `vbench2_beta_long/__init__.py`
- [Clip and scene preparation](https://github.com/vchitect/vbench/blob/master/vbench2_beta_long/utils.py): `vbench2_beta_long/utils.py`
- [Long-video dimensions](https://github.com/vchitect/vbench/tree/master/vbench2_beta_long): `vbench2_beta_long`

### Trustworthiness

- [Trust evaluation](https://github.com/vchitect/vbench/blob/master/vbench2_beta_trustworthiness/__init__.py): `vbench2_beta_trustworthiness/__init__.py`
- [Fairness and safety](https://github.com/vchitect/vbench/tree/master/vbench2_beta_trustworthiness): `vbench2_beta_trustworthiness`

### Other components

- **Benchmark user**
- **Generated videos**
- **Evaluation results**

## Connections

- Benchmark user → Evaluation CLI: selects run
- Generated videos → VBench evaluator: provides videos
- Evaluation CLI → VBench evaluator: starts evaluation
- VBench evaluator → Prompt-video metadata: builds metadata
- VBench evaluator → Quality dimensions: dispatches dimensions
- VBench evaluator → Content dimensions: dispatches dimensions
- VBench evaluator → Temporal dimensions: dispatches dimensions
- VBench evaluator → Evaluation results: saves scores
- Generated videos → Static filtering: filters videos
- Benchmark user → V2 evaluation CLI: selects run
- Generated videos → V2 evaluator: provides videos
- V2 evaluation CLI → V2 evaluator: starts evaluation
- V2 evaluator → V2 dimensions: dispatches dimensions
- V2 evaluator → Evaluation results: saves results
- Evaluation results → V2 score calculation: calculates final scores
- Generated videos → I2V evaluation: provides videos
- I2V evaluation → Camera motion: evaluates camera motion
- Generated videos → Long-video evaluation: provides videos
- Long-video evaluation → Clip and scene preparation: splits into clips
- Long-video evaluation → Long-video dimensions: dispatches dimensions
- Long-video evaluation → Evaluation results: saves results
- Generated videos → Trust evaluation: provides videos
- Trust evaluation → Fairness and safety: dispatches dimensions
- Trust evaluation → Evaluation results: saves results
