Instructions to use BingoG/SpatialAV2AV with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LTX.io
How to use BingoG/SpatialAV2AV with LTX.io:
# Install the LTX-2 pipelines git clone https://github.com/Lightricks/LTX-2.git cd LTX-2 uv sync --frozen
# Download the weights from this repo, plus the Gemma text encoder hf download BingoG/SpatialAV2AV --local-dir models/SpatialAV2AV hf download google/gemma-3-12b-it-qat-q4_0-unquantized --local-dir models/gemma-3-12b
# Fast pipeline (distilled model, no distilled LoRA needed) uv run python -m ltx_pipelines.distilled \ --distilled-checkpoint-path models/SpatialAV2AV/<distilled-checkpoint>.safetensors \ --spatial-upsampler-path models/SpatialAV2AV/<spatial-upsampler>.safetensors \ --gemma-root models/gemma-3-12b \ --prompt "A beautiful sunset over the ocean" \ --output-path output.mp4 # For image-to-video, add: --image path/to/image.jpg 0 0.8# HQ pipeline (two-stage, higher quality) uv run python -m ltx_pipelines.ti2vid_two_stages_hq \ --checkpoint-path models/SpatialAV2AV/<checkpoint>.safetensors \ --distilled-lora models/SpatialAV2AV/<distilled-lora>.safetensors 0.8 \ --spatial-upsampler-path models/SpatialAV2AV/<spatial-upsampler>.safetensors \ --gemma-root models/gemma-3-12b \ --prompt "A beautiful sunset over the ocean" \ --output-path output.mp4 # For image-to-video, add: --image path/to/image.jpg 0 0.8 - Notebooks
- Google Colab
- Kaggle
SpatialAV2AV — Test Set (held-out evaluation split)
Origin-disjoint test split for evaluating SpatialAV2AV spatial audio-video editing.
This folder ships the manifests + split reports only (no media). The media (mp4 with
embedded stereo audio) live in the dataset repo BingoG/LTX.
Files
| File | What |
|---|---|
test.list |
11,616 metadata-JSON paths (absolute, on the source cluster) — the held-out test samples |
test.relative.list |
same 11,616 samples as relative paths (final_json/<clip>.json) — resolve against BingoG/LTX after snapshot_download |
split_summary.json |
full split statistics (origins, per-split sample & trajectory counts, seed, input SHA) |
split_overlap_report.json |
origin-overlap audit — all zero (train/val/test are origin-disjoint) |
MANIFEST.sha256 |
SHA256 of train/val/test.list + input list, for downstream binding |
How this split was built
- Source set: the 116,147-pair training pool (
all.list, the authoritative SpatialAV2AV set — the same list the step_04000 weights trained on). - Ratios: 80 / 10 / 10 (train / val / test), seed 20260718 (frozen).
- Grouping: origin-disjoint by
video_id— one source video (and all 10 of its camera-trajectory variants) lands entirely in one split. This is what makes the test score a generalization measure, not a memorization one: ifpan_leftwere in train andpan_rightin test, the model would already have seen the same person/room/voice.
Numbers
| Split | origins | samples |
|---|---|---|
| train | 11,616 | 92,915 |
| val | 1,452 | 11,616 |
| test | 1,452 | 11,616 |
Test-set trajectory coverage (each of the 10 canonical trajectories present):
pan_left/right and rotate_left/right = 1,452 each, push_in/pull_out = 1,452 each,
fixed_* = 692–779 each. 1,452 origins ≫ the ≥100 needed for reliable origin-cluster
bootstrap CIs.
Validation (all PASS)
- Origin overlap — train∩val, train∩test, val∩test all 0 origins.
- Coverage — 92,915 + 11,616 + 11,616 = 116,147 = input (no sample lost).
- Trajectory presence — test contains all pan/rotate directions (I3 counterfactual pairs have data).
Note on how the manifest was generated
The split's deterministic core (random.Random(20260718) shuffle + greedy origin
allocation) was reproduced from the filenames because the source media filesystem was
temporarily unreachable for bulk access. origin_id == video_id == filename-stem-before-'+'
was verified identical to the JSON contents on a 200-sample check, and .resolve() is
idempotent on these paths — so the emitted lists are byte-equivalent to the official
SpatialAV2AV_build_splits.py output. Counterfactual pair manifests
(test_pairs.jsonl, needed only for I3 eval) are not included here; they require
decoding each clip's media and will be added separately.
Usage
from huggingface_hub import hf_hub_download
p = hf_hub_download("BingoG/SpatialAV2AV", "test_set/test.relative.list")
# point the evaluator's TEST_LIST at the resolved paths under a BingoG/LTX snapshot