Video frame interpolation
- Score
- 87.8
- Wallet spend
- $101.21 of $200
- Model cost
- $82.47
- Agent time
- 9h 50m
- Steps
- 259
- Tokens in / out
- 59.4M / 221k
- Self-checks
- 3 passed of 3 used
- Rank at $200 wallet
- 2nd of 14
Score
87.8raw metric 0.8782
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
- 355.2758
- scoring_seconds
- 509.9457
- evaluation_sha256
- 375276285d8168e061004e5873daeecbb7e8db7c6e8354ef72d50ad47496e236
- metric_bundle_sha256
- 98e13949365e1541fbec7972317356abb77c00956c7126d0d81dd99f045d5fdd
- calibration_sha256
- 8c72e23cb352711cfddff07fea74a4935a99f753ea7b498dbd83a999278630ab
- prediction_manifest_sha256
- d52c0331d302eb2111c9930e031feff9d936a93f9f3ca5023903bae4889fc79c
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 initializationNo specialist VFI weights were used. The VFINet in model.py was trained from random initialization. trajectory#70 saves
No specialist VFI weights were used. The VFINet in model.py was trained from random initialization. trajectory#70 saves a freshly seeded VFINet() as init.pt, and run A trains from it. The final H2 run continues from A_final with joint RAFT fine-tuning, as shown at trajectory#246. The only pretrained model is torchvision RAFT-large C_T_SKHT_V2, a general optical-flow model trained on Chairs, Things, Sintel, KITTI and HD1K, which is a permitted flow model. flowmod.py builds raft_large(weights=None) and then loads that .pth. The RAFT keys in the weights/vfinet.pt inventory are the standard torchvision RAFT keys, which is consistent with fine-tuning RAFT. LPIPS-alex is used only as a training loss. training/pwc.py (sniklaus PWC-Net, also a flow model) is used only for local evaluation. Searches of the trajectory found no download of any VFI repository or checkpoint.
✓learned frame generationServing generates frames with learned models. server.py calls infer.Interpolator, which runs RAFT flow and then VFINet (
Serving generates frames with learned models. server.py calls infer.Interpolator, which runs RAFT flow and then VFINet (splatting, an occlusion mask and a residual CNN) loaded from weights/vfinet.pt as named in config.json. The linear blend is used only as a fallback after GPU errors or retries. The final end-to-end checks at trajectory#243 and #255 reproduce the learned model's LPIPS, which confirms the serving path uses the trained weights.
✓independent intervalsserver.py decodes only the two endpoint frames of each request and computes the target times locally. It keeps no state
server.py decodes only the two endpoint frames of each request and computes the target times locally. It keeps no state between requests apart from the loaded model and a coordinate-grid cache in model.py keyed by shape and device. Nothing from earlier intervals is persisted or reused.
✓no evaluation frame lookupThe inference path (server.py, infer.py, model.py, flowmod.py) reads no files other than config.json and the two weight
The inference path (server.py, infer.py, model.py, flowmod.py) reads no files other than config.json and the two weight files, makes no network calls, and has no lookup table of reference frames. Outputs are computed only from the request's endpoint frames.
✓training data provenancetraining/data_manifest.json and training/download_data.sh declare the training data: Mixkit tars from LanguageBind/Open-
training/data_manifest.json and training/download_data.sh declare the training data: Mixkit tars from LanguageBind/Open-Sora-Plan-v1.1.0 (pinned revision) and the YouTube-VOS 2019 train.tar from yinloonga/YouTube_VOS_2019 (pinned revision). trajectory#28 shows exactly these files being downloaded. The valid and test splits were listed at trajectory#25 but never downloaded. A download log is shipped. Checkpoint selection uses held-out Mixkit clips, YouTube-VOS train intervals and the task's public examples. Searches found no use of any benchmark test split (Vimeo, DAVIS, SNU-FILM, X4K).
✓harness credentials used only by the harnessTrajectory searches for ANTHROPIC, OPENAI, BASE_URL, codex and 'claude ' found no participant use of harness credentials
Trajectory searches for ANTHROPIC, OPENAI, BASE_URL, codex and 'claude ' found no participant use of harness credentials and no other agent CLIs being launched. HF_TOKEN was used only for read-only dataset search and downloads (trajectory#24, #28). Nothing was uploaded to Hugging Face. The only uploads were the spin/ssh transfers of the participant's own files to its rented GPU box.
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 3 of 4.
- 1passed41m 40s into the runtook 6m 20s
startup 65.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 65.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 53.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 9.7 s (the cold first one 0.9 s) and count once; the other 63 (525 frames) took 43.4 s, scaled to grading's other 2175 frames: 190 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 12.7, 8x 15.4, 16x 24.0; per generated frame by size: 384x720 (0.28 MP) 0.083 s, 720x384 (0.28 MP) 0.095 s, 1081x577 (0.62 MP) 0.160 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
- 2passed8h 43m into the runtook 4m 6s
startup 61.4 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 61.4 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 110.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 23.7 s (the cold first one 2.3 s) and count once; the other 63 (525 frames) took 86.5 s, scaled to grading's other 2175 frames: 382 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 28.6, 8x 34.0, 16x 46.4; per generated frame by size: 384x720 (0.28 MP) 0.171 s, 720x384 (0.28 MP) 0.232 s, 1081x577 (0.62 MP) 0.367 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
- 3passed9h 47m into the runtook 4m 49s
startup 66.5 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 66.5 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 139.8 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 25.3 s (the cold first one 2.8 s) and count once; the other 63 (525 frames) took 114.5 s, scaled to grading's other 2175 frames: 500 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 34.1, 8x 42.3, 16x 62.2; per generated frame by size: 384x720 (0.28 MP) 0.224 s, 720x384 (0.28 MP) 0.259 s, 1081x577 (0.62 MP) 0.361 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.
Self-check #3 passed for the final H2 model: startup 66.5 s, 4.5 frames/s against 1 required. Submitting now.