ChronoMagic-Bench

已接入

WorldFoundry 中的 ChronoMagic-Bench time-lapse 评测。

本页内容

评测目标

ChronoMagic-Bench 评测 text-to-time-lapse 生成,重点是长时间尺度的 metamorphic change:生物生长、人造物建造或制造、气象变化,以及融化、烘烤等物理变化。

它关注的是 metamorphic amplitude 和 temporal coherence,而不是普通动作视频质量。论文中的 benchmark 有 1,649 条 prompt,覆盖 4 大类和 75 个子类;WorldFoundry 仓内 manifest 为本地证据与覆盖率统计跟踪 Hugging Face BestWishYsh/ChronoMagic-Bench test split,期望行数为 1,799。

资产与数据

WorldFoundry 已经把官方 runner source 放在仓内:

资产路径
Task YAMLworldfoundry/data/benchmarks/tasks/external/chronomagic-bench.yaml
Runnerworldfoundry/evaluation/tasks/execution/runners/chronomagic_bench/run_chronomagic_bench_official_runner.py
Runtime rootworldfoundry/evaluation/tasks/execution/runners/chronomagic_bench/runtime/chronomagic_bench
CHScore scriptsruntime/chronomagic_bench/CHScore/
GPT4o-MTScore scriptsruntime/chronomagic_bench/GPT4o_MTScore/
MTScore scriptsruntime/chronomagic_bench/MTScore/

数据集资产可以从 Hugging Face 下载,然后用 WORLDFOUNDRY_CHRONOMAGIC_DATASET_ROOT 指向本地目录。代码不需要外部源码树。

生成结果目录

close evaluation 期望 input root 下有一个 model 子目录:

/path/to/chronomagic/input/
  worldfoundry/
    sample_000.mp4
    sample_001.mp4

你可以用 --input-folder /path/to/chronomagic/input --model-name worldfoundry 传入这个布局,也可以用 --generated-video-dir 传入任意生成视频目录,runner 会在输出目录下整理成 ChronoMagic 所需结构。

open evaluation 使用三个 part 目录:

/path/to/chronomagic/input/
  worldfoundry/
    1/*.mp4
    2/*.mp4
    3/*.mp4

支持 .mp4.m4v.mov.mkv.avi.webm

依赖

ChronoMagic 组件可以单独选择:

组件需要
chscoreCoTracker checkpoint,通常是 cotracker2.pth,通过 --model-pth-chscoreWORLDFOUNDRY_CHRONOMAGIC_CHSCORE_CKPT 传入。
mtscoreInternVideo checkpoint,通过 --model-pth-mtscoreWORLDFOUNDRY_CHRONOMAGIC_MTSCORE_CKPT 传入;环境里还需要官方脚本使用的 InternVideo 依赖。
gpt4o_mtscoreOpenAI-compatible API key,通过 --openai-apiOPENAI_API_KEYWORLDFOUNDRY_CHRONOMAGIC_OPENAI_API 传入。

可用 --components chscore 跑 CHScore-only,也可用 --components mtscore--components gpt4o_mtscore--components all 跑完整 core 组件。leaderboard parity 还需要完整 prompt 覆盖和官方提交字段,不能由小规模组件运行直接声称。

命令

先设置常用路径:

export WORLDFOUNDRY_GENERATED_ARTIFACT_DIR=/path/to/chronomagic/generated
export WORLDFOUNDRY_BENCHMARK_OUTPUT_DIR=tmp/chronomagic-bench/chscore
export WORLDFOUNDRY_CHRONOMAGIC_CHSCORE_CKPT=/path/to/cotracker2.pth

从生成视频运行 CHScore:

PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
  worldfoundry/evaluation/tasks/execution/runners/chronomagic_bench/run_chronomagic_bench_official_runner.py \
  --chronomagic-root worldfoundry/evaluation/tasks/execution/runners/chronomagic_bench/runtime/chronomagic_bench \
  --components chscore \
  --generated-video-dir "${WORLDFOUNDRY_GENERATED_ARTIFACT_DIR}" \
  --model-name worldfoundry \
  --eval-type close \
  --model-pth-chscore "${WORLDFOUNDRY_CHRONOMAGIC_CHSCORE_CKPT}" \
  --output-dir "${WORLDFOUNDRY_BENCHMARK_OUTPUT_DIR}" \
  --python "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
  --json

当 MTScore checkpoint 和 API key 都可用时,运行完整 core 组件:

PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
  worldfoundry/evaluation/tasks/execution/runners/chronomagic_bench/run_chronomagic_bench_official_runner.py \
  --components all \
  --generated-video-dir "${WORLDFOUNDRY_GENERATED_ARTIFACT_DIR}" \
  --dataset-root "${WORLDFOUNDRY_CHRONOMAGIC_DATASET_ROOT}" \
  --model-name worldfoundry \
  --eval-type close \
  --model-pth-chscore "${WORLDFOUNDRY_CHRONOMAGIC_CHSCORE_CKPT}" \
  --model-pth-mtscore "${WORLDFOUNDRY_CHRONOMAGIC_MTSCORE_CKPT}" \
  --openai-api "${WORLDFOUNDRY_CHRONOMAGIC_OPENAI_API:-${OPENAI_API_KEY}}" \
  --output-dir tmp/chronomagic-bench/full \
  --python "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
  --timeout "${WORLDFOUNDRY_CHRONOMAGIC_TIMEOUT:-7200}" \
  --json

导入已有 ChronoMagic-Bench-Input.json

PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
  worldfoundry/evaluation/tasks/execution/runners/chronomagic_bench/run_chronomagic_bench_official_runner.py \
  --official-results-path /path/to/ChronoMagic-Bench-Input.json \
  --all-results-dir /path/to/all \
  --generated-video-dir "${WORLDFOUNDRY_GENERATED_ARTIFACT_DIR}" \
  --dataset-root "${WORLDFOUNDRY_CHRONOMAGIC_DATASET_ROOT}" \
  --model-name worldfoundry \
  --output-dir tmp/chronomagic-bench/import \
  --json

Python 导入

直接在 Python 中复用:

from worldfoundry.evaluation.tasks.execution.runners.chronomagic_bench.chronomagic_official_impl import (
    normalize_chronomagic_results,
    run_chronomagic,
)
from worldfoundry.evaluation.tasks.execution.runners._benchmark_metrics.formulas import chronomagic_average_scores

输出

输出目录包含:

文件含义
scorecard.json组件可用性、覆盖率、可比性信息与指标摘要。
raw_metric_table.jsonlchronomagic_scoretemporal_transformation 指标行。
per_sample_metrics.jsonl如果组件 JSON 可用,包含 per-model 与 per-video 行。
generated_video_manifest.json生成视频覆盖率统计。
dataset_manifest.json提供 --dataset-root 时记录本地数据集证据。
upstream_stdout.log / upstream_stderr.log官方组件日志。
staged_input_manifest.json使用 --generated-video-dir 并自动整理输入结构时写出。

chronomagic_score 会对可用的 CHScore、MTScore、GPT4o-MTScore 做尺度归一后求平均。temporal_transformation 主要关注 MTScore 和 GPT4o-MTScore。两个指标都是越高越好。

← Benchmark Hub