iWorld-Bench
面向 action control、camera following、memory 与生成视频质量的交互式世界模型 benchmark。
本页内容
简介
iWorld-Bench 把 camera-controllable video generation model 当作 interactive world model 来评测。它不是通用视频美学 benchmark:模型不仅要生成好看的视频,还要响应 action 或 camera control,并在回到同一位置时保持场景记忆。
官方 release 提供 evaluation code、packaged metadata、camera trajectory resources、first-frame assets 和 reference inference adapters。WorldFoundry 已把评测代码集成在仓内:worldfoundry/evaluation/tasks/execution/runners/iworldbench/,因此 WorldFoundry 测评不需要额外准备官方源码 checkout。
Benchmark 设计
| 任务类型 | 说明 | 任务数 |
|---|---|---|
| Action control D=1 | 静止 + 9 个基础平移/旋转动作 | 1,000 |
| Action control D=2 | 二自由度组合动作 | 1,000 |
| Action control D=3 | 三自由度组合动作 | 1,000 |
| Action control D=4 | 四自由度复杂动作 | 1,000 |
| Memory ability | 需要 loop-closure 记忆的循环 reciprocal path | 200 |
| Camera following | 基于 camera parameter 文件的轨迹跟随 | 700 |
项目从 330K video clips 筛选到 2.1K 高质量样本,并通过统一动作接口 Ct = [D, T, R, V](difficulty、translation ID、rotation ID、validity)生成 4.9K 测试任务。
官方参考
- Paper: arXiv:2605.03941
- Project page: iworld-bench.com
- 官方源码参考: github.com/EmbodiedCity/iWorld-Bench
- 数据集: EmbodiedCity/iWorld-Bench-Dataset
- 仓内 runner:
worldfoundry/evaluation/tasks/execution/runners/iworldbench/run_iworldbench_official_runner.py
需要准备什么
数据集
下载 packaged metadata、first-frame assets 和 camera-following metadata:
export WORLDFOUNDRY_IWORLD_BENCH_DATASET_ROOT=/path/to/datasets/iWorld-Bench-Dataset
hf download EmbodiedCity/iWorld-Bench-Dataset \
--repo-type dataset \
--include "dataset/all_pack/**" \
--local-dir "${WORLDFOUNDRY_IWORLD_BENCH_DATASET_ROOT}"期望目录:
${WORLDFOUNDRY_IWORLD_BENCH_DATASET_ROOT}/
`-- dataset/all_pack/
|-- metadata.csv
|-- camera_following_metadata.csv
`-- assets/metadata.csv 用于 Diff/action-control 和 Mem/memory 任务。camera_following_metadata.csv 只用于 trajectory-input 模型。
生成视频
先用你要评测的模型生成视频,再运行 scorer。可以使用 WorldFoundry 模型、API batch job 或自己的 runner,只要输出视频能和 iWorld-Bench metadata 行对应即可。
建议每个 track 一个目录:
/path/to/iworld/generated/
|-- action_control/
| |-- <prompt_id>.mp4
| `-- ...
|-- memory_ability/
| |-- <prompt_id>.mp4
| `-- ...
`-- camera_following/
|-- <prompt_id>.mp4
`-- ...视频文件 stem 应该匹配 metadata 中的 prompt_id / sample id。如果你的生成器使用 CSV 里的其他 official video name,就保留该文件名,并在评测时传同一份 metadata 文件。
Metric 资产
仓内 runtime 会复用 WorldFoundry 的 VBench 和 VIPe 相关代码路径。真实打分时显式设置 official backend,并把 VIPe 指向仓内 base-model package 或兼容的本地 package:
export WORLDFOUNDRY_IWORLD_BENCH_RUNTIME_BACKEND=official
export VIPE_ROOT="${VIPE_ROOT:-$PWD/worldfoundry/base_models/three_dimensions/general_3d/vipe}"
export CUDA_VISIBLE_DEVICES="${CUDA_VISIBLE_DEVICES:-0}"不要用默认 mock backend 报告结果。它只用于本地链路联通,不是可报告分数。
指标
| Metric | 分组 | 含义 |
|---|---|---|
image_quality | Generation quality | 基于 VBench/MUSIQ 的帧级质量。 |
brightness_consistency | Generation quality | 视频亮度的时序稳定性。 |
color_temperature_constraint | Generation quality | 色相与白平衡是否稳定。 |
sharpness_retention | Generation quality | 细节保持,避免模糊和高频伪影。 |
motion_smoothness | Trajectory following | 基于 VBench 的运动平滑性。 |
trajectory_accuracy | Trajectory following | VIPe 估计 camera path 与指令是否一致。 |
trajectory_tolerance | Trajectory following | 相对 reference trajectory NPZ 的鲁棒性。 |
memory_symmetry | Memory ability | 往返路径中的 loop-closure 一致性。 |
trajectory_alignment | Memory ability | Memory task 中双向 camera trajectory 的一致性。 |
iworldbench_average | Aggregate | 可用官方组件指标的平均值。 |
复现 Leaderboard 形态的评测
对每个官方 track 分别评测对应生成视频。direct runner 是最清楚的入口,因为它同时暴露 task split 和 metric selector。
Action Control / Diff
export WORLDFOUNDRY_IWORLD_BENCH_ACTION_DIR=/path/to/iworld/generated/action_control
PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
worldfoundry/evaluation/tasks/execution/runners/iworldbench/run_iworldbench_official_runner.py \
--run-official \
--generated-videos-dir "${WORLDFOUNDRY_IWORLD_BENCH_ACTION_DIR}" \
--prompt-manifest "${WORLDFOUNDRY_IWORLD_BENCH_DATASET_ROOT}/dataset/all_pack/metadata.csv" \
--split diff \
--metric action_control \
--output-dir tmp/iworld-bench/action-control \
--jsonMemory Ability / Mem
export WORLDFOUNDRY_IWORLD_BENCH_MEMORY_DIR=/path/to/iworld/generated/memory_ability
PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
worldfoundry/evaluation/tasks/execution/runners/iworldbench/run_iworldbench_official_runner.py \
--run-official \
--generated-videos-dir "${WORLDFOUNDRY_IWORLD_BENCH_MEMORY_DIR}" \
--prompt-manifest "${WORLDFOUNDRY_IWORLD_BENCH_DATASET_ROOT}/dataset/all_pack/metadata.csv" \
--split mem \
--metric memory_ability \
--output-dir tmp/iworld-bench/memory-ability \
--jsonCamera Following
export WORLDFOUNDRY_IWORLD_BENCH_CAMERA_DIR=/path/to/iworld/generated/camera_following
PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
worldfoundry/evaluation/tasks/execution/runners/iworldbench/run_iworldbench_official_runner.py \
--run-official \
--generated-videos-dir "${WORLDFOUNDRY_IWORLD_BENCH_CAMERA_DIR}" \
--prompt-manifest "${WORLDFOUNDRY_IWORLD_BENCH_DATASET_ROOT}/dataset/all_pack/camera_following_metadata.csv" \
--split camera_following \
--metric camera_following \
--output-dir tmp/iworld-bench/camera-following \
--json如果要声明 public leaderboard 级别结果,需要保存每个 reported track 的生成视频、scorecard,以及各输出目录下的原始 reports/ CSV。
公开 CLI
公开 CLI 适合跑单个 track。请显式传环境覆盖,确保使用真实 evaluator:
worldfoundry-eval zoo benchmark-run \
--benchmark-id iworld-bench \
--mode official-run \
--generated-artifact-dir "${WORLDFOUNDRY_IWORLD_BENCH_ACTION_DIR}" \
--env WORLDFOUNDRY_IWORLD_BENCH_RUNTIME_BACKEND=official \
--env WORLDFOUNDRY_IWORLD_BENCH_METRIC=action_control \
--env WORLDFOUNDRY_IWORLD_BENCH_DATASET_ROOT="${WORLDFOUNDRY_IWORLD_BENCH_DATASET_ROOT}" \
--output-dir tmp/iworld-bench/action-control-cli \
--jsonMemory 和 camera-following 需要显式 --split,因此建议使用 direct runner。公开 CLI 对部分 benchmark 有全局 --prompt-manifest 选项,但 iWorld-Bench 的 split 选择用 direct runner 更清楚,也更不容易传错。
导入已有结果
如果你已经有 iWorld-Bench report CSV 或 reports/ 目录,可以导入成 WorldFoundry scorecard:
PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
worldfoundry/evaluation/tasks/execution/runners/iworldbench/run_iworldbench_official_runner.py \
--official-results-path /path/to/iworld/reports \
--generated-videos-dir /path/to/iworld/generated/action_control \
--prompt-manifest "${WORLDFOUNDRY_IWORLD_BENCH_DATASET_ROOT}/dataset/all_pack/metadata.csv" \
--split diff \
--output-dir tmp/iworld-bench/imported \
--json输出
每次运行会写出:
scorecard.jsonraw_metric_table.jsonl- 执行 official backend 时的
upstream_command.json - 输出目录下的 upstream
reports/*.csv
优先查看 scorecard.json。只有 requested split 视频覆盖完整,并且该 metric family 需要的资产都可用时,结果才适合和 public leaderboard 对比。