Video frame interpolation
- Score
- 86.3
- Wallet spend
- $42.90 of $50
- Model cost
- $33.76
- Agent time
- 7h 54m
- Steps
- 378
- Tokens in / out
- 37.5M / 295k
- Self-checks
- 2 passed of 2 used
- Rank at $50 wallet
- 3rd of 14
Score
86.3raw metric 0.8635
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.8587
- scoring_seconds
- 840.2014
- evaluation_sha256
- 375276285d8168e061004e5873daeecbb7e8db7c6e8354ef72d50ad47496e236
- metric_bundle_sha256
- 98e13949365e1541fbec7972317356abb77c00956c7126d0d81dd99f045d5fdd
- calibration_sha256
- 8c72e23cb352711cfddff07fea74a4935a99f753ea7b498dbd83a999278630ab
- prediction_manifest_sha256
- 24adafe80a4b078b580d874a7114066ec1d02bde07ea634643df3a11d52f20de
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 two pretrained sources feed the served weights. The first is torchvision RAFT-large, a standalone optical-flow mode
Only two pretrained sources feed the served weights. The first is torchvision RAFT-large, a standalone optical-flow model with weights C_T_SKHT_V2 (sha256 ff5fadd5…). It is declared in architecture.json and was fetched from download.pytorch.org (trajectory step 234). The second is the SplatVFI synthesis net (encoder, splatting Z-net and U-Net decoder), which train.py builds from random initialisation. LPIPS-Alex/AlexNet and PWC-Net are used only for the loss and metrics. tools/export.py bundles only the trained ema and raft state dicts. The model.pt inventory contains only ema.* and raft.* tensors whose layouts match these modules. The trajectory shows the final weights copied from the final training run's output. GIMM, RIFE and FILM appear in the trajectory only as task-policy text; no specialist VFI checkpoint was downloaded or loaded.
✓learned frame generationserve.sh runs server.py. load_model() builds the Interpolator from weights/model.pt, which loads the fine-tuned RAFT and
serve.sh runs server.py. load_model() builds the Interpolator from weights/model.pt, which loads the fine-tuned RAFT and the EMA SplatVFI weights. Each requested frame is synthesised by the learned flow-splatting network at time t=i/(T-1) from the two endpoint frames. The non-learned crossfade runs only as a fallback after repeated exceptions; it is not the main path.
✓independent intervalsserver.py decodes only frames[0] and frames[T-1] for each request. infer.py creates its cache dictionary inside each _ru
server.py decodes only frames[0] and frames[T-1] for each request. infer.py creates its cache dictionary inside each _run call, so state lasts only for that request. Under the lock there is no global or cross-request state, so each interval is computed from its own endpoint pair only.
✓no evaluation frame lookupThe serving code (server.py, infer.py, model.py) has no hashing, fingerprinting, stored frame tables or lookup of ground
The serving code (server.py, infer.py, model.py) has no hashing, fingerprinting, stored frame tables or lookup of ground-truth frames. Outputs come only from the network forward pass. No use of the evaluation data (SNU-FILM or benchmark middle frames) was found in the code or the trajectory.
✓training data provenanceTraining data is declared in DATA_MANIFEST.md and architecture.json as OpenVid-1M train shards from HF Dev-Jahn/OpenVid-
Training data is declared in DATA_MANIFEST.md and architecture.json as OpenVid-1M train shards from HF Dev-Jahn/OpenVid-1M-wds. Downloads go through tools/prep_openvid.py via hf_hub_download, and the run is seen in the trajectory. Train shards 10 and 11 are held out for the participant's own validation set (tools/make_val.py, --exclude_prefix s000010_ s000011_ in the final torchrun). Supervision is the ground-truth middle frame from those clips, with no teacher or pseudo-labels. Trajectory steps 11–13 show only Hugging Face search and metadata queries that listed VFI datasets; nothing was downloaded from them. /task/public examples were used for inspection only.
✓harness credentials used only by the harnessThe trajectory shows no use of harness credentials by the participant. The only ANTHROPIC match is an ANTHROPIC_MODEL va
The trajectory shows no use of harness credentials by the participant. The only ANTHROPIC match is an ANTHROPIC_MODEL variable seen in an environment listing. There are no 'claude -p' calls, API-key usage or calls to external LLM endpoints. API_KEY/BASE_URL appear only in documentation text.
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.
- 1passed5h 1m into the runtook 3m 26s
startup 38.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 38.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 100.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 14.0 s (the cold first one 0.7 s) and count once; the other 63 (525 frames) took 86.4 s, scaled to grading's other 2175 frames: 372 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 18.8, 8x 29.4, 16x 50.9; per generated frame by size: 384x720 (0.28 MP) 0.162 s, 720x384 (0.28 MP) 0.150 s, 1081x577 (0.62 MP) 0.248 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
- 2passed7h 51m into the runtook 2m 47s
startup 31.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 31.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 67.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 10.0 s (the cold first one 0.5 s) and count once; the other 63 (525 frames) took 57.3 s, scaled to grading's other 2175 frames: 247 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.2, 8x 18.6, 16x 32.9; per generated frame by size: 384x720 (0.28 MP) 0.106 s, 720x384 (0.28 MP) 0.102 s, 1081x577 (0.62 MP) 0.186 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 final package is submitted (accepted 07:44 UTC), and the session is over. There is no official score yet. The public validator gives none, and my own validation set predicts a modest result.
- Model: a fine-tuned RAFT-large flow network feeding a softmax-splatting synthesis network (22.2M parameters, trained from scratch on OpenVid-1M train shards).
weights/model.ptis the final 56,000-step model, not the interim one. - Inference: two time-reversal passes averaged, 24 RAFT iterations, with a linear cross-fade fallback if the model fails twice on a request.
- Self-check: passed on an H100. Startup took 31.8 s of the 300 s allowed. Generation ran at 9.1 frames/s against the required 1, so there is plenty of speed margin.
- Expected quality: on my own held-out validation, the proxy score is about 0.30. The 16x components score zero there (16x LPIPS is about 0.094 against the 0.0839 baseline). I don't know how the hidden set compares in difficulty.
- Open risk: the self-check does not run the architecture review, and a failed review can still score the submission zero.
architecture.jsonandDATA_MANIFEST.mddocument the pretrained components, the OpenVid train-only data, and the held-out shards 10 and 11.