Refuse centering measurement on die-cut/clear-window cards

Same failure family as the edge-whitening fix: centering_profile assumed a
uniform printed border, so on an E-X/SPx-style die-cut the side midpoint
samples landed on clear acetate and the border-width walk measured two
different materials, producing a confident 70/30 the model then treated as
authoritative. Now the four side samples must read as the same material or
the measurement refuses with the reason; the prompt tells the model to judge
die-cut centering as design-to-cut registration instead.
This commit is contained in:
Barely Removable 2026-08-22 11:34:36 -07:00
parent bb5d50502c
commit fa5467e55d
3 changed files with 81 additions and 6 deletions

View file

@ -264,6 +264,14 @@ leniently, 75/25 for a 10 and 90/10 from 9 downwards):
Note that centering is a manufacturing trait, not damage: a badly centred \
card can still be pristine, and PSA may grade it strongly with an OC \
(off-centre) qualifier rather than a low number.
DIE-CUT and clear-window cards (SPx, E-X Century, jersey- or \
shape-die-cuts) have no uniform rectangular border, so border-width ratios \
mostly do not apply to them. Judge centering there as the printed design's \
registration to the die-cut shape and the card's physical edges — that is \
what PSA keys off for these issues and do not reconstruct a border ratio \
by eye on a card that has no border. If a MEASURED CENTERING block was \
supplied anyway on such a card, distrust it outright: the measurement \
assumes a uniform printed border this card does not have.
- CORNERS: look for whitening, fraying, softness, or blunting at each of the \
four corners. Sharp corners on all four is 9-10 territory; slight whitening \
visible under magnification but not to the eye is 8-9; obvious whitening or \
@ -646,7 +654,20 @@ def grade_card(images, api_key=None, model=None, effort=None, zoom_details=True)
aspect = cardimage.aspect_profile(images[0][0]) if can_measure else None
prompt_parts = []
if centering:
if centering and centering.get("reliable") is False:
prompt_parts.append(
"CENTERING COULD NOT BE MEASURED on this card, because {}. "
"You are getting no border-width numbers, and on a card like "
"this a border-width ratio is the wrong tool anyway: judge "
"centering by eye as the printed design's alignment relative to "
"the die-cut shape and the card's physical edges — that is what "
"PSA actually keys off for die-cut issues. Do not reconstruct a "
"left/right border ratio visually on a card with no uniform "
"border; describe what you can genuinely see about the cut's "
"registration to the printed pattern, and widen the range if "
"the photo doesn't settle it.".format(
centering.get("reason", "of its cut")))
elif centering:
prompt_parts.append(
"MEASURED CENTERING — computed from the pixels by finding the "
"border on each side of the card:\n"