Video frame interpolation
- Score
- 81.8
- Wallet spend
- $47.70 of $50
- Model cost
- $119.28
- Agent time
- 6h 40m
- Steps
- 174
- Tokens in / out
- 31.7M / 185k
- Self-checks
- 3 passed of 3 used
- Rank at $50 wallet
- 4th of 14
Score
81.8raw metric 0.8184
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
- 375.2946
- scoring_seconds
- 561.0662
- evaluation_sha256
- 375276285d8168e061004e5873daeecbb7e8db7c6e8354ef72d50ad47496e236
- metric_bundle_sha256
- 98e13949365e1541fbec7972317356abb77c00956c7126d0d81dd99f045d5fdd
- calibration_sha256
- 8c72e23cb352711cfddff07fea74a4935a99f753ea7b498dbd83a999278630ab
- prediction_manifest_sha256
- cc988e519504de6b4bb14915976990523e9bc7e1de1dca1ddbbe887aba6d255a
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 initializationOnly one pretrained component is shipped: the stock torchvision RAFT-large optical-flow checkpoint (C_T_SKHT_V2). It com
Only one pretrained component is shipped: the stock torchvision RAFT-large optical-flow checkpoint (C_T_SKHT_V2). It comes from download.pytorch.org (around trajectory#68) and its sha256 is declared in architecture.json. code/flow.py builds raft_large(weights=None), loads this file and freezes it. That makes it a standalone flow estimator, not a frame-interpolation specialist. The SynthNet synthesis networks start from a seeded random init in code/train.py and resume only from their own earlier runs. Their checkpoint inventories hold SynthNet tensors (model.ctx.*, model.alpha). No teacher is declared or used. LPIPS is used only as a training loss.
✓learned frame generationserve.sh runs code/server.py. It loads code/infer.py's Interpolator, which uses the frozen RAFT flows and an ensemble of
serve.sh runs code/server.py. It loads code/infer.py's Interpolator, which uses the frozen RAFT flows and an ensemble of the two trained SynthNets in weights/synth_r2bft.pt and weights/synth_r3ft.pt. SynthNet (code/model.py) warps both frames along the flow, then a U-Net predicts blend weights and a residual for each output frame, so the frames are generated by learned models. A plain linear blend is used only as a fallback when an exception occurs.
✓independent intervalsserver.py's run_request decodes only the first and last frames of the current request and computes times as idx/(T-1). I
server.py's run_request decodes only the first and last frames of the current request and computes times as idx/(T-1). Interpolator computes flows and context per call and keeps no cache across requests. The only shared server state is the lock and timing counters used to choose the amount of test-time augmentation, and these hold no frame content.
✓no evaluation frame lookupServing does no hashing or fingerprinting of inputs and stores no reference frames or lookup tables. It makes no remote
Serving does no hashing or fingerprinting of inputs and stores no reference frames or lookup tables. It makes no remote calls; the stdlib HTTP server only runs model inference on the request's two endpoint frames. The shipped weights are network tensors only.
✓training data provenanceDATA_MANIFEST.json and architecture.json declare three public training sources: the Vimeo-90K train split (HF mirror bij
DATA_MANIFEST.json and architecture.json declare three public training sources: the Vimeo-90K train split (HF mirror bijinc/vimeo-90k-medium, train parquets 00–24 only), OpenVid-1M part0 and DAVIS 2017 train.txt sequences. prep_sequences.py filters DAVIS to ImageSets/2017/train.txt. The trajectory shows the train parquets being downloaded (trajectory#49, trajectory#50); the Vimeo test parquets were only listed, never downloaded. The train.py commands in the trajectory use only the vimeo_train memmap, the OpenVid train index and the DAVIS train index. Checkpoint selection used the task's public examples and held-out OpenVid windows (logs/experiments.md).
✓harness credentials used only by the harnessThe trajectory shows no use of any harness API credential: the only token in use is HF_TOKEN for public dataset download
The trajectory shows no use of any harness API credential: the only token in use is HF_TOKEN for public dataset downloads (trajectory#48, trajectory#50). The serving code makes no remote API 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 3 of 4.
- 1passed49m 40s into the runtook 3m
startup 50.1 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 50.1 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 65.4 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.7 s (the cold first one 0.7 s) and count once; the other 63 (525 frames) took 53.7 s, scaled to grading's other 2175 frames: 234 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 14.8, 8x 18.6, 16x 30.3; per generated frame by size: 384x720 (0.28 MP) 0.100 s, 720x384 (0.28 MP) 0.104 s, 1081x577 (0.62 MP) 0.241 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
- 2passed5h 2m into the runtook 3m 7s
startup 56.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 56.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 62.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 8.8 s (the cold first one 0.6 s) and count once; the other 63 (525 frames) took 53.2 s, scaled to grading's other 2175 frames: 229 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.3, 8x 17.6, 16x 30.1; per generated frame by size: 384x720 (0.28 MP) 0.100 s, 720x384 (0.28 MP) 0.102 s, 1081x577 (0.62 MP) 0.141 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
- 3passed6h 36m into the runtook 3m 14s
startup 50.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 50.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 83.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.7 s (the cold first one 0.8 s) and count once; the other 63 (525 frames) took 71.6 s, scaled to grading's other 2175 frames: 308 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 16.2, 8x 23.5, 16x 42.5; per generated frame by size: 384x720 (0.28 MP) 0.135 s, 720x384 (0.28 MP) 0.136 s, 1081x577 (0.62 MP) 0.181 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.
Final selfcheck passed (startup 50 s, 7.3 frames/s with the 2-model, 8-way-TTA ensemble, 630% margin) and both GPU leases are stopped. Submitting now.