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]>
48 lines
3.1 KiB
Markdown
48 lines
3.1 KiB
Markdown
# 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 .
|
||
```
|