Skip to content

The envelope table

Check 8 compares a graph’s parameters against a cited envelope table, per checkpoint loaded. Out of band is an ADVISORY, never a HALT. No entry for a checkpoint is NOT_APPLICABLE, naming the checkpoint it could not see.

Why it advises, and why that is a ruling rather than a softness

Section titled “Why it advises, and why that is a ruling rather than a softness”

The studio ran an out-of-band denoise deliberately, and the Director approved the register it produced. A documented band is documentation, not a gate. A check that halted on it would refuse correct work, and a gate that halts correct work gets disabled by the third person who hits it.

The advisory’s job is to make an out-of-band fact visible at the moment it is cheap — before the credits are spent — not to forbid it.

This is enforced rather than asserted: check 8 never raises, proven over all 70 recorded graphs, over a deliberately far-out-of-band mutation, and by an AST scan proving the module contains no PreflightHalt raise at all — because no finite set of inputs proves the absence of a branch.

The rule is each entry needs a measurement or a citation. Those are two routes to one standard, and the table makes the fork explicit so a reader can tell at a glance which route an entry took.

kindauthoritycarries
VENDORthe checkpoint’s publisher documents the bandsource_url + retrieved date + a quote of the card’s own words
STUDIO_MEASUREDthe publisher documents nothing and the studio measured ita record locator: experiment id, path, measured date, and the finding

The two are mutually exclusive by construction. An entry carrying both would look doubly-sourced while leaving a reader unable to tell which number came from where.

The constructor refuses to build an unjustified entry — the discipline made mechanical rather than documented, because a table whose citations are checked only by review acquires a recalled number the first time someone is in a hurry.

Parameter names are mapped, not matched. A card documents a library API argument (controlnet_conditioning_scale); a graph carries a node input (strength). The equivalence is declared in the entry, because a parameter matched by name alone would let a band judge a knob the card never governed.

Bands follow the checkpoint’s wires. Only nodes that actually read from that checkpoint’s loader are examined, so a graph carrying two control checkpoints does not have one entry’s band applied to the other’s apply node.

One parameter can have two authorities, and that is why the table is not keyed by checkpoint alone. The card documents no denoise band for the Qwen Union checkpoint, and the studio measured denoise on it. Both entries ship, on the same parameter, in their own voices.

Two entries of different kinds on one key is the ruled shape. Two of the same kind is a duplicate whose disagreement nothing could resolve for a caller, and the index refuses to build it rather than letting the later row win in silence.

Two checkpoints. Qwen-Image-InstantX-ControlNet-Union carries both authorities on one parameter; qwen-image-edit-2509 carries a second studio measurement under its own ruling.

checkpointparameterkindwhat it saysauthority
Unionstrength (the card’s controlnet_conditioning_scale)VENDORband [0.8, 1.0]the model card, retrieved 2026-08-14
UniondenoiseVENDORdeclared absence — the card publishes no rangethe same card, read at the same seat
UniondenoiseSTUDIO_MEASUREDfour measured rungs, belowexperiment E35, docs/experiments/E35-clean-twins-report.md § “2b — the denoise sweep”, measured 2026-08-14
edit-2509input image unique colour countSTUDIO_MEASUREDthree measured rungs, belowexperiment E35, E35-D1-report.md + E35-E-report.md §§ D1/E1/E2, ruled in at E35-ruling.md Rulings 9/11, measured 2026-08-15

The measured rungs — the register dies before the specks do

Section titled “The measured rungs — the register dies before the specks do”
denoiseregister C*reverted to initspeck census
0.92 (the recorded value, Director-ruled HOLD)23.770.50%16
0.8510.005.01%10
0.803.9136.66%12
0.721.8956.00%0 — census-0 by register destruction

Census-0 is not a win. The specks vanish at 0.72 because the paint vanishes: 56% of the figure has reverted toward the white-grey clay init. At this route’s recorded recipe, 0.92 is the measured register-safe point.

These rungs hold at one recipe and nowhere elsecn_strength 0.9, steps 20, cfg 2.5, euler/simple, shift 3.1, 352×1024, no LoRA — and the entry carries that validity envelope as required data. A sweep detached from its recipe is a recommendation wearing a number.

A measurement is not a recommendation, so this ladder has no “inside” to be silent about: a graph on this checkpoint gets the nearest measured rungs at whatever denoise it runs, including at 0.92. Nothing is interpolated between rungs, and a value off the end of the sweep is reported as the nearest reading with the fact that it is outside said plainly.

The consequence is deliberate: a graph on this checkpoint reaches ADVISORY, not PASS. ADVISORY exits 0, so nothing that was proceeding stops proceeding — the caller is simply told, before the spend, what happens to the register at the value they are about to run.

The second measurement — the 2509 quantisation trigger

Section titled “The second measurement — the 2509 quantisation trigger”

Ruled in by E35 Ruling 11, on a different checkpoint and under its own ruling. The measured quantity is the unique-colour count of the input image.

unique coloursinputresult
2,620the native Workbench renderedit encode CORRUPT — at A3a/A3b/A3c and D1, four times
5,046the recorded 352 clay, resized locally, node no-opsclean — killed traversal
5,336the native render, lanczos round-tripped, node no-opsclean — killed framing

The fault is deterministic, not a platform lottery. D1 re-submitted verbatim and came back pixel-identical to A3c — 0 differing pixels of 1,053,696 — while the two files’ sha256 differ. The three distinct earlier signatures came from three distinct configs, not from nondeterminism.

One lanczos round-trip at native framing repairs it. Framing, traversal, alpha, bit depth, colour type, seed and the turbo switch are each exonerated by their own measurement.

This is a trigger, not a mechanism. Why quantisation degenerates the latent is not established, and the entry does not upgrade it. No threshold is stated between 2,620 and 5,046 — where the boundary lies was never measured, and this table does not invent one.

⚠ No check reads this, and the entry ships anyway

Section titled “⚠ No check reads this, and the entry ships anyway”

Every shape the schema offers resolves against a graph input, read by node class. This measurement’s operand is a property of the referenced image file, and no ComfyUI node carries it as an input. comfy-preflight also does not decode images — dimensions in, verdict out, so it grows no image dependency to satisfy a check.

So check 8 declines on this ladder, by construction and on every graph:

declined envelope_measured.input image unique colour count:
qwen_image_edit_2509_fp8_e4m3fn.safetensors carries a studio measurement of
'input image unique colour count' on ['LoadImage'], but the graph has no such node
carrying that input. The rungs were reported against nothing rather than against a
guess. Source: studio measurement E35 [...]

That is the honest report, and the entry still ships, because the table is documentation before it is a lookup. The measurement is knowable at submit time and now written down where a reader of this checkpoint’s envelope will find it.

The named future shape, if a seat is ever ruled to build it, is check 5’s: an injected input_unique_colours parameter on the submit path where the image is in hand, degrading to NOT_APPLICABLE in the standalone CLI. That is a check, and no ruling has commissioned it.

This check was commissioned to carry that checkpoint’s img2img denoise band of ~0.10–0.50, attributed to the model card by a research grounding.

Verified against the live card at build time, 2026-08-14, by two independent fetches — the rendered model page and raw/main/README.md — and that band is not on it. The card documents controlnet_conditioning_scale in [0.8, 1.0] for each of its four control types, and shows true_cfg_scale=4.0 / num_inference_steps=30 as example values in an inference snippet. It publishes no img2img denoise or strength range at all. (A third independent fetch at a later seat agreed.)

So the denoise band does not ship. The table’s own discipline decides it: an entry populated from memory is worse than a missing one, and a band this check cannot retrieve is one it must not judge against.

What ships instead is a declared absence, so a run on a real graph reports:

declined envelope_bands.denoise:
this graph runs denoise at node 13 = 0.92, and this check CANNOT say whether that is in
or out of band for Qwen-Image-InstantX-ControlNet-Union.safetensors: the card documents
NO img2img denoise or strength range. [...] Source consulted:
https://huggingface.co/InstantX/Qwen-Image-ControlNet-Union (retrieved 2026-08-14)

Reporting the value it cannot judge is the honest half of the finding. Inventing a band to judge it against would be the dishonest half. The 0.92 still reaches the caller at the moment it is cheap — as a named blind spot rather than as a verdict.

And that absence STAYS, now that the studio’s measurement ships beside it. The card still publishes nothing, and that stays true no matter what the studio measures in its own kitchen — so the measured entry answers the absence rather than erasing it, and a run reports both: the vendor cannot judge this, and here is what was measured at it.

true_cfg_scale=4.0 and num_inference_steps=30 are recorded as notes, not bands. An example is one point, and inferring a range around it would be inventing the measurement this table exists to avoid.

Open the live card. Read it. Then add a row carrying its parameter, band, source URL, retrieval date and a quote of what it actually said — or, if the vendor documents nothing, a STUDIO_MEASURED entry pointing at the experiment record that measured it.

A measured entry needs a ruling, not just a record. The measured kind is a capability gated as data: an experiment produces numbers, and a named seat rules a specific measurement in before it reaches a caller. One ruling per entry, always.

Do not add a row from memory, from a summary, or from a research report. A citation that becomes load-bearing is resolved against its live source at the moment it lands — that is the law this table earned, one seat late.