Screenshot generation
- Score
- 78.9
- Wallet spend
- $50.15 of $200
- Model cost
- $65.90
- Agent time
- 5h 51m
- Steps
- 352
- Tokens in / out
- 112.0M / 299k
- Self-checks
- 4 passed of 4 used
- Rank at $200 wallet
- 1st of 14
Score
78.9raw metric 0.8662
The raw metric (mean of quality (OCR text, OCR layout, judged faithfulness) and judged realism) is rescaled so that a baseline that draws each text line into its box on a white page (0.537) scores 0 and the real screenshots (0.954) scores 100, clamped to that range.
Verifier details
- metric
- mean_accuracy_realism
- samples
- 200
- available_samples
- 500
- judge_model
- gpt-6-luna
- ungated_score
- 0.8662
- invalid_images
- 0
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.
✓training data provenanceNothing was trained. architecture.json lists training as none, and training_corpora is empty in data_manifest.json. The
Nothing was trained. architecture.json lists training as none, and training_corpora is empty in data_manifest.json. The only calibration was fitting OCR box geometry, which scripts/calib_det_geometry.py does on synthetic text it renders locally on blank canvases. Configuration was selected on the 25 shipped /task/public examples, which the policy allows (logs/experiments_notes.md, logs/experiments_box1_summary.txt). Fonts come from public repositories through scripts/download_fonts.sh. That download is declared but has no retained log, so it is unverified rather than a violation. Neither the shipped files nor the trajectory show any validation or test split being used.
✓non specialist initializationThe base model is the general text-to-image model Tongyi-MAI/Z-Image-Turbo, pinned at revision f332072a. On top of it is
The base model is the general text-to-image model Tongyi-MAI/Z-Image-Turbo, pinned at revision f332072a. On top of it is the general alibaba-pai Z-Image-Turbo-Fun-Controlnet-Union-2.1, pinned at 5155fc56, plus a PP-OCRv5 text detector from ModelScope with its sha256 verified. None of these is a screenshot-generation specialist. scripts/download_models.sh and logs/download_models.log show they were fetched at those pinned revisions. Afterwards they were only cast from fp32 to bf16 (scripts/to_bf16.py) and format-converted (scripts/convert_controlnet.py), with no fine-tuning. The session also tried FLUX.2-klein and Qwen-Image-Edit, which are general models, and dropped both.
✓no reference image lookupserver.py builds each image from the request's description and texts. It draws a procedural text-layout scaffold, takes
server.py builds each image from the request's description and texts. It draws a procedural text-layout scaffold, takes its canny edges as the ControlNet condition, runs the diffusion model, then erases stray text with the detector, composites the requested text exactly and applies post-processing (shotgen/pipeline.py, shotgen/scaffold.py, shotgen/compose.py, shotgen/postfx.py). The shipped source never references /task/public/media or any stored screenshot. serve.sh runs fully offline, so nothing can be fetched at run time.
✓actual inference pathserve.sh installs the vendored wheels offline and then runs exec python server.py. The POST handler calls ControlGenerat
serve.sh installs the vendored wheels offline and then runs exec python server.py. The POST handler calls ControlGenerator.generate, which loads the shipped local directories with from_pretrained: models/z-image-turbo, models/zcn and models/ocr/ch_PP-OCRv5_det_server.onnx. These directories match the declared weights and their inventories. A renderer-only scaffold exists only as an error fallback.
✓harness credentials used only by the harnessThe session's only API credential for judge-based development came from `spin openrouter key create` (trajectory#24, tra
The session's only API credential for judge-based development came from `spin openrouter key create` (trajectory#24, trajectory#25). This is the participant's own Spin OpenRouter proxy key, which is allowed. It was saved under /workspace/dev, outside the submission, and does not appear in any shipped file. HF_TOKEN was used only for model downloads. No step reads, copies or uses the harness's own judge or evaluation credentials.
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.
- 1passed1h 15m into the runtook 7m 40s
startup 32.2 s of 300 s; 3/3 gates passed; The speed gates were measured on a sample: 20 sequential public requests against their 720 s share of grading's 7,200 s for 200, the budget projected to all 200 and p95 and the failure limit taken over the 20.
7 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 32.2 s
- ✓failed requests · none of the 20 requests failed, timed out or answered anything but one 1280x720 8-bit RGB PNG
- ✓generation budget (projected) · projected from 20 of 200 requests at concurrency 1: they took 62.0 s of server time; at that rate grading's 200 take 620 s of the 7,200 s it allows
- ✓p95 latency · 20 sequential public requests, the first as soon as /health answered: mean 3.1 s, max 3.5 s; p95 of 20 allows 1 above 30 s as grading's p95 of 200 allows 10; clock: trusted HTTP client inside the serving sandbox; grading transport (provider transfer/exec) excluded
- ✓valid images · all 20 answers were valid 1280x720 RGB PNGs the scorer decodes
- ✓healthy after requests
- 2passed3h 31m into the runtook 6m 23s
startup 38.1 s of 300 s; 3/3 gates passed; The speed gates were measured on a sample: 20 sequential public requests against their 720 s share of grading's 7,200 s for 200, the budget projected to all 200 and p95 and the failure limit taken over the 20.
7 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 38.1 s
- ✓failed requests · none of the 20 requests failed, timed out or answered anything but one 1280x720 8-bit RGB PNG
- ✓generation budget (projected) · projected from 20 of 200 requests at concurrency 1: they took 67.3 s of server time; at that rate grading's 200 take 673 s of the 7,200 s it allows
- ✓p95 latency · 20 sequential public requests, the first as soon as /health answered: mean 3.4 s, max 3.8 s; p95 of 20 allows 1 above 30 s as grading's p95 of 200 allows 10; clock: trusted HTTP client inside the serving sandbox; grading transport (provider transfer/exec) excluded
- ✓valid images · all 20 answers were valid 1280x720 RGB PNGs the scorer decodes
- ✓healthy after requests
- 3passed4h 8m into the runtook 10m 28s
startup 30.8 s of 300 s; 3/3 gates passed; The speed gates were measured on a sample: 20 sequential public requests against their 720 s share of grading's 7,200 s for 200, the budget projected to all 200 and p95 and the failure limit taken over the 20.
7 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 30.8 s
- ✓failed requests · none of the 20 requests failed, timed out or answered anything but one 1280x720 8-bit RGB PNG
- ✓generation budget (projected) · projected from 20 of 200 requests at concurrency 1: they took 64.2 s of server time; at that rate grading's 200 take 642 s of the 7,200 s it allows
- ✓p95 latency · 20 sequential public requests, the first as soon as /health answered: mean 3.2 s, max 3.6 s; p95 of 20 allows 1 above 30 s as grading's p95 of 200 allows 10; clock: trusted HTTP client inside the serving sandbox; grading transport (provider transfer/exec) excluded
- ✓valid images · all 20 answers were valid 1280x720 RGB PNGs the scorer decodes
- ✓healthy after requests
- 4passed5h 42m into the runtook 8m 14s
startup 39.0 s of 300 s; 3/3 gates passed; The speed gates were measured on a sample: 20 sequential public requests against their 720 s share of grading's 7,200 s for 200, the budget projected to all 200 and p95 and the failure limit taken over the 20.
7 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 39.0 s
- ✓failed requests · none of the 20 requests failed, timed out or answered anything but one 1280x720 8-bit RGB PNG
- ✓generation budget (projected) · projected from 20 of 200 requests at concurrency 1: they took 70.4 s of server time; at that rate grading's 200 take 704 s of the 7,200 s it allows
- ✓p95 latency · 20 sequential public requests, the first as soon as /health answered: mean 3.5 s, max 4.0 s; p95 of 20 allows 1 above 30 s as grading's p95 of 200 allows 10; clock: trusted HTTP client inside the serving sandbox; grading transport (provider transfer/exec) excluded
- ✓valid images · all 20 answers were valid 1280x720 RGB PNGs the scorer decodes
- ✓healthy after requests
The agent's last message before its session ended.
Final selfcheck passed (startup 39 s, all gates). Details: