NavDreamer Stage 1 pipeline for:
- generating candidate egocentric navigation videos
- judging them with Qwen3-VL
- selecting the best valid candidate with local reranking
- Python
>=3.11, <3.13 ffprobeon PATHDASHSCOPE_API_KEY
Install ffprobe:
- macOS:
brew install ffmpeg - Windows (PowerShell):
winget install Gyan.FFmpegorchoco install ffmpeg
Verify:
ffprobe -versionRecommended:
uv sync --python 3.12dev:
uv sync --python 3.12 --group devOr pip:
python -m venv .venv
source .venv/bin/activate
pip install -e .Windows PowerShell activation:
.\.venv\Scripts\Activate.ps1Set API key:
export DASHSCOPE_API_KEY="your_api_key"Windows PowerShell:
$env:DASHSCOPE_API_KEY="your_api_key"CLI entry:
uv run videogen --helpRun full generation + judging:
uv run videogen gen-selectJudge existing videos only:
uv run videogen judge-onlyUse custom manifest:
uv run videogen gen-select path/to/manifest.json
uv run videogen judge-only path/to/judge_manifest.jsonUse custom config file under videogen/configs/:
uv run videogen gen-select --config config.tomlDefault config: videogen/configs/config.toml
Most-used keys:
prompt_strategy:simple | kinematic | decomposednum_candidatesseed_base,seed_strideoutput_root
Generate + Judge:
[
{
"instruction": "move to the target chair and stop safely",
"image": "../assets/example.png"
}
]image: single file path (relative paths are resolved from manifest directory)
Judge-only:
[
{
"instruction": "move to the chair",
"videos": ["../videos/a.mp4", "../videos/b.mov"]
}
]videos: single path, list of paths, or a directory (recursive scan)
Supported image suffixes: .png .jpg .jpeg .webp .bmp
Supported video suffixes: .mp4 .mov .mkv .avi .webm .m4v
- Keep only
status == pass - Rerank by weighted score:
- Pick highest weighted valid candidate (tie-break: lexicographic
candidate_id)
Each run writes artifacts to output_root (default runs/), including:
request.jsonprompt.txt(generation mode)generation/candidates.json(generation mode)judge/result.jsonsummary.md
uv run pytest videogen/tests- Missing API key: set
DASHSCOPE_API_KEY - Missing
ffprobe: install ffmpeg and reopen terminal on Windows - Wrong relative paths in manifest: resolved relative to manifest directory
- Empty/invalid JSON manifest: fix schema first
MIT (see LICENSE)