open-standards/wai/live-conformance/upscale/README.md
Transaction Science df1004f187 Merge origin/main into wai/exact-upscale (wai-mark:tent64, contribution, settlement, access, ad presentation, exploration, shared lists)
Resolved by meaning: synthesis::Case holds both the priors (exact-upscale) and the unmarked
frames (§7.6); synthesis §11.1 lists both inputs and the three policy members; the
synthesis-mark corpus's cases hold no prior; exact-upscale passes synthesis's second_layer
policy through; the live-conformance table gains the upscale row in its generator column; both
CI steps and both CHANGELOG entries are kept. Generated files are main's here and are
regenerated in the next commit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 03:02:57 -04:00

48 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# live-conformance/upscale — exact upscale
The corpus of [`extensions/exact-upscale.md`](../../extensions/exact-upscale.md) §9:
`vectors.json`, the priors it names in `priors/`, and `sha256.json`.
A vector holds its `policy` (`dual_layer`, `assistive` and `second_layer`, synthesis §11.1's,
and `upscale`);
its records as JSON texts, list by list: `claims` (origin claims of synthesis §3.1), `upscales`
(upscale records, §4.2) and `presentations` (presentation statements, §6.2); the `objects` it
holds, each a `WAI1` envelope in hexadecimal; the `decoded` samples it holds, each the content
hash of the `object` decoded and its `RGB8` `samples` in hexadecimal; the `priors` it holds, each
the name of a file of `priors/`; and the `residuals` and `targets` it holds, each in hexadecimal.
`vectors.json` also lists every file of `priors/` with its SHA-256.
**Exact-upscale equivalence.** For each vector, a conforming verifier reaches the outcome it
states:
- `refuse`: the `reason` and where, `at`: `["upscale", i]`, `["presentation", i]`,
`["presentation", i, "frame", j]`, or `["synthesis", …]` with synthesis's own place;
- `accept`: the `statements` of §7.3: `claims`, each its `link`, `class` and `assistive`
(`proved`, `not-recomputed`, `asserted`, or `null`); `upscales`, each its `link`, `status`
(`proved` or `not-recomputed`) and `max_difference` (or `null`); `presentations`, each its
`link` and `totals`.
`sha256.json` gives, for each upscale record of an accepted vector, the SHA-256 of the picture
a sink presents (its `output`): the `RGB8` buffer of SPEC §7 *Digests*, rows top to bottom.
A verifier that reaches another outcome, reason, place or statement does not conform.
**Provenance.** `wai_upscale_vectors gen` writes `vectors.json`, `sha256.json`,
`priors/seeded.wsr` and `priors/unreadable.wsr` from records authored in code: every key is
SHA-256 of the corpus's label and an index; every picture is an integer function of a label
(a gradient, a rectangle and diagonal lines, `corpus::picture`), and a full-resolution target's
low-resolution picture is its 2 × 2 means; every envelope payload, and the samples of the
generated and float-upscaled frames, are SHA-256 output of a label; the seeded prior is drawn
from SHA-256 of a label (`int_sr::seeded_prior`) and trained on nothing; every time is a
constant, and Ed25519 signing is deterministic. `priors/generic.wsr` and `priors/title.wsr` are
read, not written, each pinned by its SHA-256 in `corpus::INPUT_PRIORS`:
`tools/wai_int_sr_train.py` (seed 20261021, `--width 16`, its defaults otherwise; the run also took `--source` for the measurement, which adds a title and changes neither prior)
trained `generic.wsr` on pictures it generates from a seeded formula (filled shapes, strokes,
gratings), and `title.wsr` by fine-tuning it on the eight frames of its generated title
`title-mixed`. No picture, recording or footage from outside this repository is in the corpus or
in the training. The training is in floating point and is not claimed to regenerate the same
bytes on another machine; the priors' bytes are what is pinned.
```
python3 -I ../upscale_verify.py .
```