Video frame interpolation
- Score
- 84.6
- Wallet spend
- $143.31 of $200
- Model cost
- $276.33
- Agent time
- 11h 27m
- Steps
- 1,157
- Tokens in / out
- 156.9M / 1.4M
- Self-checks
- 3 passed of 4 used
- Rank at $200 wallet
- 4th of 14
Score
84.6raw metric 0.8458
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
- 441.5819
- scoring_seconds
- 647.6822
- evaluation_sha256
- 375276285d8168e061004e5873daeecbb7e8db7c6e8354ef72d50ad47496e236
- metric_bundle_sha256
- 98e13949365e1541fbec7972317356abb77c00956c7126d0d81dd99f045d5fdd
- calibration_sha256
- 8c72e23cb352711cfddff07fea74a4935a99f753ea7b498dbd83a999278630ab
- prediction_manifest_sha256
- 63db02d8797b624daa64b7304dd6c5625b6d878c9b1225ad3f37a2ee986f9ca4
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 served chain loads four kinds of weights: (1) the SEA-RAFT-M optical-flow model, fine-tuned during the task (train9_
The served chain loads four kinds of weights: (1) the SEA-RAFT-M optical-flow model, fine-tuned during the task (train9_flow_020000.safetensors); (2) WAFT-a2 DAv2 Spring, also fine-tuned during the task (train19_flow_008000.pth); (3) Depth Anything V2 Small; and (4) two context U-Net refiners (train24_195000.pth and train31_208000.pth). The refiners' lineage starts from a random train1 run, recorded in development/refiner_initial_lineage.json and development/task_adapted_flow_manifest.json. SEA-RAFT and WAFT are standalone optical-flow models and Depth Anything is a general depth/DINOv2 model. Both are permitted. The trajectory shows downloads only of the SEA-RAFT HF repo, the WAFT flow checkpoints via gdown (trajectory#46 region and the step 85-98 a2.zip download), the Depth Anything V2 Small weights, and IFRNet source code. IFRNet was an architecture-only experiment with random initialization and is not served. There are no RIFE/FILM/GIMM checkpoint downloads, no flownet.pkl, and no VFI teacher. The weight inventories match flow/refiner/depth key structures, and every load uses strict=True.
✓learned frame generationserver.py calls the model built by factory.py from config.json. The chain is: Depth Anything depth priorities, then lear
server.py calls the model built by factory.py from config.json. The chain is: Depth Anything depth priorities, then learned SEA-RAFT and WAFT flows (flow-reflection TTA and a confidence-gated flow choice), then forward splatting, then learned ContextRefineNet refiners. Their outputs are summed using refiner_weights, and the result is returned as the frame. The learned flow and refiner weights are loaded strictly and used on every request. There are no remote calls, and no path exists that serves only copying or non-learned output.
✓independent intervalsserver.py decodes each request's frames, computes times from target_indices/(frame_count-1) and calls the model once per
server.py decodes each request's frames, computes times from target_indices/(frame_count-1) and calls the model once per request. interpolator.py's prepare_refinement returns a request-local dict, with an explicit comment that nothing is assigned to the model. Depth, flow and TTA are all computed per request. No state carries across requests.
✓no evaluation frame lookupNeither the serving code (server.py, factory.py, depth_interpolator.py, interpolator.py, waft_interpolator.py, flow_tta.
Neither the serving code (server.py, factory.py, depth_interpolator.py, interpolator.py, waft_interpolator.py, flow_tta.py, context_refine.py) nor the shipped weight files contain any input hashing, fingerprinting, or lookup tables of stored evaluation frames. Outputs are generated by the flow and refiner networks.
✓training data provenancearchitecture.json and development/data_usage_audit.json declare every corpus. (1) Vimeo-90K: the bijinc medium mirror, i
architecture.json and development/data_usage_audit.json declare every corpus. (1) Vimeo-90K: the bijinc medium mirror, intersected with the official toflow train lists. evidence/data/vimeo/original_split_audit.json records zero overlap with tri/sep test lists. (2) GoPro Large: train/ entries only, extracted via byte ranges. download_gopro.py asserts startswith('train/') (trajectory#47), and the selection holdout comes from reserved training sequences. (3) DAVIS 2017: the 60 train sequences. (4) Adobe240/DVD: the training-list intersection. (5) LAVIB: train-only originals, excluding 15290 val/test IDs. (6) /task/public validation: permitted. Test-split HF repos were only listed in search results and never downloaded. The flow-supervision teacher is a standalone WAFT run on observed real frames, which is allowed.
✓harness credentials used only by the harnesstrajectory#7 printed environment variable names only; no values were read or used. No calls to api.openai.com, codex/cla
trajectory#7 printed environment variable names only; no values were read or used. No calls to api.openai.com, codex/claude CLI workers or Anthropic keys were found. transfer.json holds R2 transfer credentials issued by the sanctioned Spin CLI ('spin transfer credentials') and used for Spin-managed transfers. Shipped scripts only reference its path, and no secret values appear in the output. HF_TOKEN use for downloads 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 4 of 4.
- 1failed7m 58s into the runtook 8m 56s
failed startup: Server did not become healthy in 300s (last /health probe: RuntimeError: Submission HTTP request failed: ConnectionRefusedError: [Errno 111] Connection refused); end of its log: Traceback (most recent call last): File "/submission/server.py", line 11, in <module> from i
2 gates
- ✓review prerequisites
- ✗startup · Server did not become healthy in 300s (last /health probe: RuntimeError: Submission HTTP request failed: ConnectionRefusedError: [Errno 111] Connection refused); end of its log: Traceback (most recent call last): File "/submission/server.py", line 11, in <module> from interpolator import Interpolator File "/submission/interpolator.py", line 8, in <module> from safetensors.torch import load_file File "/tmp/vfi-deps/safetensors/torch.py", line 5, in <module> from packaging.version import Version ModuleNotFoundError: No module named 'packaging'
- 2passed18m 33s into the runtook 2m 56s
startup 69.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 69.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 36.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 7.6 s (the cold first one 1.5 s) and count once; the other 63 (525 frames) took 28.4 s, scaled to grading's other 2175 frames: 125 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 9.1, 8x 8.4, 16x 17.2; per generated frame by size: 384x720 (0.28 MP) 0.055 s, 720x384 (0.28 MP) 0.069 s, 1081x577 (0.62 MP) 0.121 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
- 3passed7h 44m into the runtook 5m 15s
startup 78.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 78.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 146.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 34.0 s (the cold first one 3.7 s) and count once; the other 63 (525 frames) took 112.2 s, scaled to grading's other 2175 frames: 499 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.6, 8x 43.6, 16x 66.8; per generated frame by size: 384x720 (0.28 MP) 0.224 s, 720x384 (0.28 MP) 0.307 s, 1081x577 (0.62 MP) 0.564 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
- 4error11h 18m into the runtook 1m 27sfree (stopped before any GPU time)
The self-check could not finish (NotFoundError: Modal Sandbox with container ID ta-01M46JG9DEGG70X0M45W8SYNDS not found. This means this Sandbox has already shut down. (Error code: NY6RTESJ)).
1 gates
- ✓review prerequisites
- 5error11h 20m into the runtook 1m 35sfree (stopped before any GPU time)
The self-check could not finish (NotFoundError: Modal Sandbox with container ID ta-01M46JKXVAY9K1YN4SMQVB815S not found. This means this Sandbox has already shut down. (Error code: CGXWU4SP)).
1 gates
- ✓review prerequisites
- 6passed11h 22m into the runtook 5m 6s
startup 76.0 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 76.0 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 147.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 31.6 s (the cold first one 4.2 s) and count once; the other 63 (525 frames) took 116.2 s, scaled to grading's other 2175 frames: 513 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 36.5, 8x 44.5, 16x 65.7; per generated frame by size: 384x720 (0.28 MP) 0.231 s, 720x384 (0.28 MP) 0.301 s, 1081x577 (0.62 MP) 0.478 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 /workspace/output/.
Offline self-check passed: 76-second startup and 4.38 fps projected throughput. Pretrained origins and training provenance are declared in architecture.json. No prohibited VFI checkpoints were used.