Video frame interpolation
- Score
- 45.7
- Wallet spend
- $7.81 of $50
- Model cost
- $35.58
- Agent time
- 8h 41m
- Steps
- 492
- Tokens in / out
- 47.8M / 357k
- Self-checks
- 1 passed of 1 used
- Rank at $50 wallet
- 9th of 14
Score
45.7raw metric 0.4569
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
- 361.0855
- scoring_seconds
- 1431.5983
- evaluation_sha256
- 375276285d8168e061004e5873daeecbb7e8db7c6e8354ef72d50ad47496e236
- metric_bundle_sha256
- 98e13949365e1541fbec7972317356abb77c00956c7126d0d81dd99f045d5fdd
- calibration_sha256
- 8c72e23cb352711cfddff07fea74a4935a99f753ea7b498dbd83a999278630ab
- prediction_manifest_sha256
- e30009d24d8c33b645cd9b9562159662271cec6e6af71076fd837a020ff715c1
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 component is a frozen SEA-RAFT M optical-flow model, which is a permitted standalone flow model. cod
The only pretrained component is a frozen SEA-RAFT M optical-flow model, which is a permitted standalone flow model. code/vfi/searaft.py loads it in strict mode (only upsample_weight.2.weight is tolerated as missing or unexpected). The trainable Refiner UNet is created fresh with Refiner() in training/train.py, with a zero-initialized output layer. It loads from no VFI checkpoint, and --resume only reloads its own run checkpoints. architecture.json declares no teacher and no specialist VFI model. Searches of the trajectory found no RIFE, FILM or GIMM weights being fetched. Two provenance points are unverified but not violations. First, the SEA-RAFT checkpoint was actually downloaded from the HF mirror Yarimasune/SEA-RAFT (trajectory#66), while architecture.json declares the GitHub release URL. Second, its sha256 was computed (trajectory#253) but not checked against an official checksum. The unimatch flow/stereo/depth zip downloaded during exploration is not VFI and is not used by serving.
✓learned frame generationserve.sh runs server.py. For each target, server.py computes bidirectional SEA-RAFT flows, builds time-scaled flows and
serve.sh runs server.py. For each target, server.py computes bidirectional SEA-RAFT flows, builds time-scaled flows and backward-warps both endpoints (code/vfi/warp.py). make_features then forms 19-channel features plus a blend base, and the trained Refiner predicts a residual (code/vfi/model.py). The output comes from this learned network plus deterministic swap/flip TTA, not from copying a frame or a plain blend.
✓independent intervalsserver.py handles each request on its own: it sorts the supplied frames by index, requires exactly two endpoints, and ge
server.py handles each request on its own: it sorts the supplied frames by index, requires exactly two endpoints, and generates the targets from only those endpoints. No state persists between requests (warmup uses zero tensors), so nothing carries across intervals.
✓no evaluation frame lookupThe serving path holds no image database, hash table or remote calls. Predictions depend only on the request's endpoint
The serving path holds no image database, hash table or remote calls. Predictions depend only on the request's endpoint frames and the model weights (server.py, code/vfi/model.py). architecture.json declares no remote calls.
✓training data provenanceThe training corpora are declared in data_provenance.json and match the code. They are REDS train_sharp (snah/REDS, stre
The training corpora are declared in data_provenance.json and match the code. They are REDS train_sharp (snah/REDS, streamed with training/prep/stream_zip.py) and the Vimeo-90k-medium train-* shards (bijinc/vimeo-90k-medium, via training/prep/vimeo_parquet.py). evidence/vimeo_prep.log shows 25 train shards and 25656 triplets, matching the train log's 'vimeo triplets: 25656'. The Vimeo test parquet is used only as an ID blocklist (excluded=0) and is never trained on. The nasim69 septuplet download was only a speed test and is referenced nowhere in the shipped code. Checkpoints were selected (training/select.py) on task /public examples, which is allowed, and on held-out REDS training clips. SNU-FILM and other public val/test splits are never used. The downloads match the logs and trajectory but are otherwise unverified.
✓harness credentials used only by the harnessTrajectory searches found no use of ANTHROPIC or OPENAI API keys, no harness base URL, no 'claude -p' or codex calls, an
Trajectory searches found no use of ANTHROPIC or OPENAI API keys, no harness base URL, no 'claude -p' or codex calls, and no credential-file copies. The only BASE_URL match is SPIN_BASE_URL in contract documentation. Only HF_TOKEN was used, for Hugging Face downloads, which is permitted.
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.
- 1passed8h 37m into the runtook 4m 57s
startup 64.3 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 64.3 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 59.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 10.0 s (the cold first one 0.8 s) and count once; the other 63 (525 frames) took 49.6 s, scaled to grading's other 2175 frames: 215 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.1, 8x 19.0, 16x 25.2; per generated frame by size: 384x720 (0.28 MP) 0.093 s, 720x384 (0.28 MP) 0.096 s, 1081x577 (0.62 MP) 0.189 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.
Submitted at 02:30 UTC — 3h18m ahead of the deadline. Final summary:
Final submission
Method: frozen SEA-RAFT optical flow → fixed-point time-consistent backward warps → analytic warp blend → 9.08M-param UNet residual refiner trained from scratch, plus deterministic TTA at inference (endpoint-swap always, horizontal-flip for factor ≤ 8 at ≤ 1.2MP).
Final quality (public examples, exact serving path, H100):
| factor | LPIPS | blend baseline |
|---|---|---|
| 4x | 0.02735 | 0.02790 |
| 8x | 0.03985 | 0.04222 |
| 16x | 0.06475 | 0.07462 |
Session highlights since the training fix:
- Freed the 99%-full VM disk minutes before a checkpoint save would have crashed training
- Ran the inference-ablation suite: delta shrinkage (rejected — α=1 optimal), 16-iter flow (wash), unsharp masking (hurts), flip-TTA (adopted for 4x/8x: −0.0015/−0.0019 on public, correctly skipped at 16x and on large motion), weight soup (no gain over best single)
- Trained v3 to step 16.3k, selection sweep over 9 checkpoints → ckpt_step15500 (best public mean and best REDS dev)
- Updated architecture.json/README to accurately describe the final loss, TTA, and evidence files
Verification before submit: GPU server test (quality matches offline eval, 0.5s/request), local CPU test (all wire formats), checksums consistent, and frontier selfcheck PASSED — startup 64.3s of 300, all 63 interface checks, 10.4 frames/s (10× the gate, 215s projected for the full 2250-frame pass).
Projected score if the held-out set behaves like the public examples: roughly 0.6 per LPIPS component, with FloLPIPS expected similar or better given the flow-coherent construction.