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 YAML | worldfoundry/data/benchmarks/tasks/external/chronomagic-bench.yaml |
| Runner | worldfoundry/evaluation/tasks/execution/runners/chronomagic_bench/run_chronomagic_bench_official_runner.py |
| Runtime root | worldfoundry/evaluation/tasks/execution/runners/chronomagic_bench/runtime/chronomagic_bench |
| CHScore scripts | runtime/chronomagic_bench/CHScore/ |
| GPT4o-MTScore scripts | runtime/chronomagic_bench/GPT4o_MTScore/ |
| MTScore scripts | runtime/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 组件可以单独选择:
| 组件 | 需要 |
|---|---|
chscore | CoTracker checkpoint,通常是 cotracker2.pth,通过 --model-pth-chscore 或 WORLDFOUNDRY_CHRONOMAGIC_CHSCORE_CKPT 传入。 |
mtscore | InternVideo checkpoint,通过 --model-pth-mtscore 或 WORLDFOUNDRY_CHRONOMAGIC_MTSCORE_CKPT 传入;环境里还需要官方脚本使用的 InternVideo 依赖。 |
gpt4o_mtscore | OpenAI-compatible API key,通过 --openai-api、OPENAI_API_KEY 或 WORLDFOUNDRY_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 \
--jsonPython 导入
直接在 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.jsonl | chronomagic_score 和 temporal_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。两个指标都是越高越好。