Video frame interpolation
- Score
- 49.8
- Wallet spend
- $4.50 of $50
- Model cost
- $14.20
- Agent time
- 6h 8m
- Steps
- 320
- Tokens in / out
- 75.0M / 282k
- Self-checks
- 3 passed of 4 used
- Rank at $50 wallet
- 7th of 14
Score
49.8raw metric 0.4984
The score is the raw metric (balanced LPIPS and FloLPIPS gap closed against a frozen baseline), which already runs from 0 to 1, times 100.
Verifier details
- scoring_protocol
- vfi-lpips-flolpips-two-anchor-v2
- metric_protocol
- vfi-lpips-alex01-flolpips-sequence-v1
- psnr_cap_db
- 100
- metric_seconds
- 356.1837
- scoring_seconds
- 789.7097
- evaluation_sha256
- 375276285d8168e061004e5873daeecbb7e8db7c6e8354ef72d50ad47496e236
- metric_bundle_sha256
- 98e13949365e1541fbec7972317356abb77c00956c7126d0d81dd99f045d5fdd
- calibration_sha256
- 8c72e23cb352711cfddff07fea74a4935a99f753ea7b498dbd83a999278630ab
- prediction_manifest_sha256
- 4c0cb4d2501cd0dd4dda88dc67d2ffae4153800b4d5c3454ea0e2a37ae917cdd
After grading, a reviewer model reads the submission's files and the agent's trajectory and checks each of the task's rules. A failed check makes the score 0. Step numbers link into the trajectory.
✓non specialist initializationThe only pretrained component is the GMFlow/UniMatch optical-flow checkpoint, gmflow-scale2-regrefine6-mixdata (4e7b215d
The only pretrained component is the GMFlow/UniMatch optical-flow checkpoint, gmflow-scale2-regrefine6-mixdata (4e7b215d). It is a standalone flow model trained on flow datasets, not a frame-interpolation model. The trajectory shows it downloaded from the official UniMatch S3 model zoo (trajectory#24). vfi/flow.py builds UniMatch(task=flow), loads it with strict=True and freezes it. Its inventory has UniMatch backbone keys and the 29,500,177-byte size matches the download. RefineNet starts from random weights in train_refine.py (run1). Runs 2-4 fine-tune only from earlier RefineNet checkpoints via --init runN/best.pt. The refine.pt inventory contains only RefineNet keys. RAFT weights were downloaded early on but deleted (trajectory#24, rm -f raft-*.pth); both they and the Vimeo probes were abandoned. No frame-interpolation weights, teachers or distillation appear anywhere.
✓learned frame generationserver.py starts with FlowEstimator, then Refiner, then Interpolator. vfi/interp.py computes bidirectional flow with fro
server.py starts with FlowEstimator, then Refiner, then Interpolator. vfi/interp.py computes bidirectional flow with frozen GMFlow, forward-splats both endpoints to time t with softsplat importance weights (vfi/splat.py), blends them and fills holes. The learned RefineNet (vfi/refine.py, loaded strict from weights/refine.pt) then predicts a residual. So the output frames are synthesized by the model from the two endpoint frames; they are not copied or looked up.
✓independent intervalsserver.py handles each /interpolate request on its own. It accepts exactly the two endpoint frames (0 and T-1) plus the
server.py handles each /interpolate request on its own. It accepts exactly the two endpoint frames (0 and T-1) plus the interior target times, and Interpolator.interpolate uses only the current i0 and i1. No cache or other state carries over between requests; the global LOCK only serializes GPU use. Warmup uses random tensors.
✓no evaluation frame lookupThe serving path (serve.sh → server.py → vfi/interp.py, flow.py, refine.py, splat.py) reads only the request's endpoint
The serving path (serve.sh → server.py → vfi/interp.py, flow.py, refine.py, splat.py) reads only the request's endpoint frames and the shipped weights. No code reads ground-truth or evaluation frames, hashes requests, or opens dataset files at inference time. eval_local.py is a development tool only and is not on the serving path.
✓training data provenanceThe training and selection data are declared in DATA_MANIFEST.md, and the loaders in train_refine.py and train_run2.py m
The training and selection data are declared in DATA_MANIFEST.md, and the loaders in train_refine.py and train_run2.py match it. They use the DAVIS-2017 train split from ImageSets/2017/train.txt, with 5 train videos held out for selection, plus Big Buck Bunny and Tears of Steel frames from download.blender.org with scene cuts excluded. The trajectory shows the DAVIS trainval download from ETH and the Blender downloads. The shipped refine.pt came from run4 (train_run2.py with --davis and --movies, initialized from run3/best.pt), trajectory/steps-276-305 and steps-306-320. A download of the REDS training data was started and then killed, and the files were deleted before use (trajectory#198-202). Vimeo90K mirrors were only inspected. No SNU-FILM, GoPro or YouTube test data appears. One small inaccuracy: the manifest says DAVIS val videos were never downloaded, but the trainval zip contains them. The loaders never read them.
✓harness credentials used only by the harnessTrajectory searches found no ANTHROPIC or OPENROUTER key use and no HF upload or push_to_hub. HF_TOKEN appears only in t
Trajectory searches found no ANTHROPIC or OPENROUTER key use and no HF upload or push_to_hub. HF_TOKEN appears only in the task prompt and in an 'unauthenticated requests' warning. Hugging Face was used only for read-only API and dataset queries. File transfers used the spin compute upload command and s5cmd on the spin bucket, which is the participant's own harness-provided storage. No misuse of harness credentials was found.
LLM adversarial review is not proof of arbitrary program behavior. Host storage and task-specific deterministic checks remain required.
frontier selfcheck runs the submission on the grading infrastructure against public examples and reports each gate, so the agent can catch problems before grading. Each run gets four. This agent used 4 of 4.
- 1failed1h 52m into the runtook 6m 11s
failed startup: Server did not become healthy in 300s (last /health probe: RuntimeError: Submission HTTP request failed: ConnectionRefusedError: [Errno 111] Connection refused); end of its log: [serve] installing vendored wheels... ERROR: Could not find a version that satisfies the requireme
2 gates
- ✓review prerequisites
- ✗startup · Server did not become healthy in 300s (last /health probe: RuntimeError: Submission HTTP request failed: ConnectionRefusedError: [Errno 111] Connection refused); end of its log: [serve] installing vendored wheels... ERROR: Could not find a version that satisfies the requirement setuptools; python_version >= "3.12" (from torch) (from versions: none) ERROR: No matching distribution found for setuptools; python_version >= "3.12"
- 2passed2h 5m into the runtook 3m 54s
startup 72.3 s of 300 s; 1/1 gates passed; The generation rate was projected from a sample: 72 of the evaluation's 270 intervals (600 of its 2250 frames), the first 9 counted once and the rest scaled to the evaluation, not timed over a whole pass.
5 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 72.3 s
- ✓POST /interpolate · the first public interval (4x, 384x720): 3 raw RGB frames of the requested size, accepted by the grader's parser
- ✓generation rate · 600 frames in 87.3 s, projected from 72 of 270 requests at concurrency 1: the first 9 intervals, which bring each of the sample's 9 (size, factor) shapes for the first time, took 11.4 s (the cold first one 1.0 s) and count once; the other 63 (525 frames) took 75.9 s, scaled to grading's other 2175 frames: 326 s of the 2250 s allowed for 2250 frames, including transport and export. 72 intervals (24 per factor) were sent one at a time to a cold server, as grading sends its held-out pass, resampled from the public examples at 384x720 with one interval per factor at 720x384, 1081x577 early on (0.29 megapixels per generated frame on average). Request seconds by factor: 4x 21.5, 8x 26.0, 16x 38.6; per generated frame by size: 384x720 (0.28 MP) 0.142 s, 720x384 (0.28 MP) 0.109 s, 1081x577 (0.62 MP) 0.204 s. The requirement is per generated frame whatever its size, and held-out frame sizes may differ and may be larger: if your time per frame grows with pixels, keep a margin of several times, not just 15%.
- ✓healthy after requests
- 3error4h 5m into the runtook 1m 56sfree (stopped before any GPU time)
The self-check could not finish (NotFoundError: Modal Sandbox with container ID ta-01M41X527DYN8QBPJ6F8XG06NS not found. This means this Sandbox has already shut down. (Error code: BIM7VXPY)).
1 gates
- ✓review prerequisites
- 4error4h 7m into the runtook 1m 54sfree (stopped before any GPU time)
The self-check could not finish (NotFoundError: Modal Sandbox with container ID ta-01M41X8W6H864T6TQ4KYPFBFRS not found. This means this Sandbox has already shut down. (Error code: SLSTTYRH)).
1 gates
- ✓review prerequisites
- 5passed4h 17m into the runtook 3m 45s
startup 72.8 s of 300 s; 1/1 gates passed; The generation rate was projected from a sample: 72 of the evaluation's 270 intervals (600 of its 2250 frames), the first 9 counted once and the rest scaled to the evaluation, not timed over a whole pass.
5 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 72.8 s
- ✓POST /interpolate · the first public interval (4x, 384x720): 3 raw RGB frames of the requested size, accepted by the grader's parser
- ✓generation rate · 600 frames in 76.0 s, projected from 72 of 270 requests at concurrency 1: the first 9 intervals, which bring each of the sample's 9 (size, factor) shapes for the first time, took 11.8 s (the cold first one 1.0 s) and count once; the other 63 (525 frames) took 64.2 s, scaled to grading's other 2175 frames: 278 s of the 2250 s allowed for 2250 frames, including transport and export. 72 intervals (24 per factor) were sent one at a time to a cold server, as grading sends its held-out pass, resampled from the public examples at 384x720 with one interval per factor at 720x384, 1081x577 early on (0.29 megapixels per generated frame on average). Request seconds by factor: 4x 17.6, 8x 22.3, 16x 35.0; per generated frame by size: 384x720 (0.28 MP) 0.121 s, 720x384 (0.28 MP) 0.119 s, 1081x577 (0.62 MP) 0.220 s. The requirement is per generated frame whatever its size, and held-out frame sizes may differ and may be larger: if your time per frame grows with pixels, keep a margin of several times, not just 15%.
- ✓healthy after requests
- 6passed6h 3m into the runtook 3m 36s
startup 81.9 s of 300 s; 1/1 gates passed; The generation rate was projected from a sample: 72 of the evaluation's 270 intervals (600 of its 2250 frames), the first 9 counted once and the rest scaled to the evaluation, not timed over a whole pass.
5 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 81.9 s
- ✓POST /interpolate · the first public interval (4x, 384x720): 3 raw RGB frames of the requested size, accepted by the grader's parser
- ✓generation rate · 600 frames in 62.2 s, projected from 72 of 270 requests at concurrency 1: the first 9 intervals, which bring each of the sample's 9 (size, factor) shapes for the first time, took 10.6 s (the cold first one 0.9 s) and count once; the other 63 (525 frames) took 51.6 s, scaled to grading's other 2175 frames: 224 s of the 2250 s allowed for 2250 frames, including transport and export. 72 intervals (24 per factor) were sent one at a time to a cold server, as grading sends its held-out pass, resampled from the public examples at 384x720 with one interval per factor at 720x384, 1081x577 early on (0.29 megapixels per generated frame on average). Request seconds by factor: 4x 13.5, 8x 17.1, 16x 29.8; per generated frame by size: 384x720 (0.28 MP) 0.097 s, 720x384 (0.28 MP) 0.108 s, 1081x577 (0.62 MP) 0.185 s. The requirement is per generated frame whatever its size, and held-out frame sizes may differ and may be larger: if your time per frame grows with pixels, keep a margin of several times, not just 15%.
- ✓healthy after requests
The agent's last message before its session ended.
Submitted.
System: GMFlow (permitted standalone optical-flow model) estimates bidirectional endpoint motion; softmax splatting warps both endpoints to each target time with photometric/consistency importance; a RefineNet UNet trained from scratch (DAVIS-2017 train, then + Blender open movies, LPIPS-loss fine-tuning) fuses the candidates. No specialist VFI weights anywhere; all components declared in MODEL_MANIFEST.md/DATA_MANIFEST.md.
Evidence: training-free baseline → run4 improved public LPIPS 0.032/0.046/0.069 to 0.026/0.038/0.063 (uint8) and DAVIS holdout gaps 4/8/16 by 22/19/9%. Final selfcheck on H100 passed: startup 82s of 300s, 10 fps vs 1 required.