Video frame interpolation
- Score
- 0.0
- Wallet spend
- $1.35 of $10
- Model cost
- $13.29
- Agent time
- 1h 12m
- Steps
- 171
- Tokens in / out
- 20.9M / 76k
- Self-checks
- 2 passed of 2 used
- Rank at $10 wallet
- 11th of 14
Score
0.0raw metric 0
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
- 393.2408
- scoring_seconds
- 826.7862
- evaluation_sha256
- 375276285d8168e061004e5873daeecbb7e8db7c6e8354ef72d50ad47496e236
- metric_bundle_sha256
- 98e13949365e1541fbec7972317356abb77c00956c7126d0d81dd99f045d5fdd
- calibration_sha256
- 8c72e23cb352711cfddff07fea74a4935a99f753ea7b498dbd83a999278630ab
- prediction_manifest_sha256
- 1e073669bf3655184224a1a26f24dddd5f3c973ff411b5e6032ac24eb53c9322
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 weights the server loads are torchvision RAFT-large C_T_SKHT_V2, which is a general optical-flow mod
The only pretrained weights the server loads are torchvision RAFT-large C_T_SKHT_V2, which is a general optical-flow model and not a specialist VFI model. server.py builds raft_large(weights=None) and then loads weights/raft_large_C_T_SKHT_V2-ff5fadd5.pth with torch.load(weights_only=True). The weight inventory for that file shows only standard RAFT tensor names (feature_encoder, context_encoder, update_block, mask_predictor). In trajectory#141 the participant downloaded the file from the official download.pytorch.org URL. The printed sha256 (ff5fadd5...) matches architecture.json, and trajectory#143 shows it being copied into the output. architecture.json lists no teachers and no fallbacks. No RIFE, FILM or GIMM-VFI weights or teachers appear anywhere.
✓learned frame generationserve.sh installs offline wheels and runs server.py. For each requested time t, server.py estimates bidirectional flow w
serve.sh installs offline wheels and runs server.py. For each requested time t, server.py estimates bidirectional flow with the learned RAFT network. It forward-splats that flow to time t, backward-warps both endpoint frames, and blends them by t. The output frames therefore come from learned motion estimation applied to the current inputs, not from copying or a lookup table.
✓independent intervalsThe /interpolate handler uses only the first and last frames of the current request and computes times as index/(count-1
The /interpolate handler uses only the first and last frames of the current request and computes times as index/(count-1). It keeps no state between requests: no caches keyed on content and no history of earlier intervals. The model is frozen in eval mode, and the startup warmup uses a blank image.
✓no evaluation frame lookupserver.py does no hashing, lookup tables, dataset access or remote calls. It loads only the local RAFT weights, and its
server.py does no hashing, lookup tables, dataset access or remote calls. It loads only the local RAFT weights, and its outputs are computed from the two endpoint frames in the request. No evaluation frames or stored targets are shipped in weights/ or logs/.
✓training data provenanceNo weights were fit for the shipped model. Method and threshold selection used only the mteb/HMDB51 train split, which a
No weights were fit for the shipped model. Method and threshold selection used only the mteb/HMDB51 train split, which architecture.json declares together with its download command. logs/hmdb51_download.txt and trajectory#93-94 show that only the three train parquets were downloaded; the test parquet was listed but never fetched. The gate sweeps (trajectory#126-140) used HMDB51 train parquets and the task's shipped public example sequence, which the task allows. Vimeo-90K was found only through web search and never downloaded. An experimental refiner was trained on HMDB51 train only, and it is not shipped or loaded. No public val/test split and no SNU-FILM, GoPro or YouTube test footage was used.
✓harness credentials used only by the harnessThe participant only checked that HF_TOKEN was present and then used it for the HMDB51 dataset download, which policy al
The participant only checked that HF_TOKEN was present and then used it for the HMDB51 dataset download, which policy allows. The other tools used were the Spin compute CLI and the frontier selfcheck/submit commands. Searches of the trajectory for API keys, base URLs, printenv and model-API use found no participant code that read, echoed or used harness credentials, and server.py makes no remote calls.
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 2 of 4.
- 1passed1h 0m into the runtook 2m 26s
startup 54.0 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 54.0 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 35.1 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 6.1 s (the cold first one 0.5 s) and count once; the other 63 (525 frames) took 29.0 s, scaled to grading's other 2175 frames: 126 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 8.0, 8x 8.3, 16x 17.6; per generated frame by size: 384x720 (0.28 MP) 0.054 s, 720x384 (0.28 MP) 0.059 s, 1081x577 (0.62 MP) 0.102 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
- 2passed1h 9m into the runtook 2m 20s
startup 55.2 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 55.2 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 32.6 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 5.6 s (the cold first one 0.4 s) and count once; the other 63 (525 frames) took 27.0 s, scaled to grading's other 2175 frames: 118 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 6.2, 8x 8.3, 16x 16.2; per generated frame by size: 384x720 (0.28 MP) 0.049 s, 720x384 (0.28 MP) 0.053 s, 1081x577 (0.62 MP) 0.099 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.
The interpolation server is submitted. It predicts interior frames from the two endpoints with bidirectional optical flow and serves them as raw RGB.
The only pretrained component is torchvision RAFT-large (Raft_Large_Weights.C_T_SKHT_V2, SHA-256 ff5fadd56d26b40647388883af1547351ea17868b765c05b27231e72dd16a322). Those weights estimate motion between observed frames. They are not a frame-interpolation model. No RIFE, FILM, or GIMM-VFI weights are loaded.
On an H100 self-check the server became healthy in 55 seconds and generated frames at about 19 per second, above the 1 frame-per-second requirement. The self-check does not report a quality score.