Video frame interpolation
- Score
- 0.0
- Wallet spend
- $64.80 of $200
- Model cost
- $17.37
- Agent time
- 9h 17m
- Steps
- 274
- Tokens in / out
- 28.3M / 194k
- Self-checks
- 1 passed of 1 used
- Rank at $200 wallet
- 12th 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
- 389.2971
- scoring_seconds
- 582.7264
- evaluation_sha256
- 375276285d8168e061004e5873daeecbb7e8db7c6e8354ef72d50ad47496e236
- metric_bundle_sha256
- 98e13949365e1541fbec7972317356abb77c00956c7126d0d81dd99f045d5fdd
- calibration_sha256
- 8c72e23cb352711cfddff07fea74a4935a99f753ea7b498dbd83a999278630ab
- prediction_manifest_sha256
- a31cb9f1c90237008b74476b1b85679bbc03a6126f113af67fe36743f935aea2
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 initializationtrain_code/train.py builds IFNet from random initialisation (seed 7) and keeps an EMA copy. The optional --resume flag w
train_code/train.py builds IFNet from random initialisation (seed 7) and keeps an EMA copy. The optional --resume flag was never passed. The final launch (trajectory#152) was a plain torchrun with no resume and restarted from scratch at step 100 with lr 1.01e-05. The earlier run on the abandoned mirror was killed before it saved any checkpoint, and /data/ckpt was wiped (trajectory#123). No RIFE or flownet pretrained weights were downloaded: searches found no flownet.pkl or Practical-RIFE weight download. The served weights/ifnet.safetensors is the step-40000 EMA of this from-scratch run, copied in at trajectory#263, and its tensor names match model.py. VGG16/LPIPS weights are used only inside the training loss and are declared in architecture.json.
✓learned frame generationserver.py loads weights/ifnet.safetensors into the IFNet defined in model.py with load_state_dict. Every output frame co
server.py loads weights/ifnet.safetensors into the IFNet defined in model.py with load_state_dict. Every output frame comes from one learned forward pass: predicted flows and a mask, grid_sample warping and a sigmoid blend, from the two endpoint frames and time t. The weight inventory matches the model's parameter names. There is no copying, fallback or retrieval path.
✓independent intervalsserver.py handles each request on its own. It uses only frames[0] and frames[-1] of that request with t = idx/(frame_cou
server.py handles each request on its own. It uses only frames[0] and frames[-1] of that request with t = idx/(frame_count-1). Warmup uses zero frames only, and no cache or state carries over between requests.
✓no evaluation frame lookupNeither server.py nor serve.sh does any network access, hash lookup or reading of stored evaluation frames. serve.sh ins
Neither server.py nor serve.sh does any network access, hash lookup or reading of stored evaluation frames. serve.sh installs torch from local wheels with --no-index and runs server.py. The only file the server loads is the weight file.
✓training data provenanceThe training corpora are declared in architecture.json and data_manifest.json: Vimeo-90K triplet train shards from bijin
The training corpora are declared in architecture.json and data_manifest.json: Vimeo-90K triplet train shards from bijinc/vimeo-90k-medium, read by train_code/prep_bijinc.py, and the public Xiph derf clips with sunflower and riverbed held out. Official Vimeo test IDs were fetched as IDs only (train_code/fetch_test_ids.py) and used purely for exclusion. The fingerprint overlap check (train_code/overlap_check.py) found 39 matching sequences, which were purged before the final run (trajectory#144, trajectory#151). The participant abandoned the danjacobellis mirror after finding it contained test footage. That run was killed before any checkpoint was saved and its data and checkpoints were deleted (trajectory#117, trajectory#123), so nothing trained on it survives. Selection used the dev slice of the train split, the Xiph dev clips and the task-provided public intervals (train_code/eval_dev.py, trajectory#262-263). No SNU-FILM or other benchmark test or validation split was used. Download logs for the public sources are retained in logs, but those sources were not independently verified here.
✓harness credentials used only by the harnessThe trajectory shows only the participant's own Spin CLI and broker session, used for compute and s5cmd transfers (traje
The trajectory shows only the participant's own Spin CLI and broker session, used for compute and s5cmd transfers (trajectory#79, trajectory#262-263). The judge key (MLE_JUDGE_API_KEY) appears only in grep output of the validate.py argument list (trajectory#62). No validate.py run with --judge-base-url and no use of harness API keys appears anywhere in the session or the shipped code.
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 1 of 4.
- 1passed9h 14m into the runtook 2m 52s
startup 46.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 46.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 63.9 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.7 s) and count once; the other 63 (525 frames) took 55.1 s, scaled to grading's other 2175 frames: 237 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.4, 8x 18.5, 16x 29.8; per generated frame by size: 384x720 (0.28 MP) 0.103 s, 720x384 (0.28 MP) 0.088 s, 1081x577 (0.62 MP) 0.159 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.
Everything verified. Submitting (stage 1, then confirm):