Reference images and locking proportion
Hand the agent a reference photo and it will confidently describe a different object than the one in the image — agents narrate what they expect a "lamp" to be, not what they see, so proportion drifts toward the average of their training data.
Choose your track
Read this module through your lens
Why a reference image is not a constraint
It feels obvious: show the agent a photo and it will copy what it sees. But an image is not an instruction — it is evidence the agent interprets through its prior. Ask it to “model this lamp,” and it reads the photo as a label (“lamp”) and then builds the lamp it already believes in: the statistical average of every lamp in its training data.
That average is squat, symmetrical, and generic. Your specific reference — tall, slim, off-balance — gets flattened toward it. The photo provided category, not geometry.
The fix is to do the one thing the agent will not: extract the proportions yourself, and hand them over as numbers it is obligated to hit.
The case study: a desk lamp from a photo
You give the agent a reference — a slim articulated desk lamp, tall shade, narrow base.
”Model this desk lamp from the reference image.”
The result is a desk lamp — but a squat one. The shade is wide, the base is broad, the arm is short. The agent built the median lamp from its prior, using the reference only as a category label. None of the actual proportions survived.
”From the reference: total height 48 cm. Shade height : total height = 0.22. Base diameter : shade diameter = 0.6. Arm is two segments of equal length. Build to these ratios and report the achieved values.”
Now the silhouette reads correctly. The reported table shows base ratio at 0.71 — still off — so one targeted fix remains, but proportion is now a number you can chase rather than a vibe you keep re-describing.
How to extract ratios you can enforce
You do not need precise measurements off the photo — you need the three or four ratios that carry the object’s character. For a lamp that is the shade-to-total height, the base-to-shade width, and the arm proportion. For a chair it might be seat height to back height, and seat depth to width.
Pick ratios, not absolute sizes, because ratios survive scaling: the agent can place the lamp at any height and still keep its identity. Then add one absolute number — the real height — to fix the scale, exactly as you learned in the first module.
Finally, require the agent to report the ratios it actually achieved, not the ones it intended. The two diverge constantly. A silhouette glance confirms character; the ratio table confirms it numerically.
Hands-on exercise
Find a reference photo of a simple product. Before prompting, write down three or four ratios that define its character. Prompt once with just the image, capture the drift, then prompt again with your ratios and a request to report achieved values. Record both ratio tables side by side, and note which ratio drifted most toward “generic.”
Second case · a lounge chair
The same lesson, a different object
Model this reclined lounge chair from the reference.
A generic armchair: back too upright, seat too high. The reference's low seat and reclined back — the whole reason it is a lounge chair — have been averaged away.
Seat height 38 cm. Backrest reclined 30 degrees from vertical. Seat height : back height = 0.45. Build to these ratios and report the achieved values.
The recline and low stance return. Reported back angle is 26 degrees — close, one nudge — but the character is now a number you can chase, not a vibe.
Common failures · spot them fast
The failure gallery
Agent describes a generic version, not the actual reference
Proportions regress to a "typical" lamp/chair/etc.
Agent invents details absent from the reference
Reference used for vibe, ignored for measurement
Ratios reported as intended, not as actually built
Each of these is caught by a quality gate — keep the cheatsheet open while you work.
Worked example
See the journey
The pattern
Cheatsheet
Cheatsheet
Prompt skeleton
Match this reference: [describe / attach]. Hit these ratios exactly:
[height:width = X], [shade diameter : base diameter = Y].
Overall height [N cm]. Report the achieved ratios and dimensions.
Do not stylise beyond the reference.
Failure modes
- Agent describes a generic version, not the actual reference
- Proportions regress to a "typical" lamp/chair/etc.
- Agent invents details absent from the reference
- Reference used for vibe, ignored for measurement
- Ratios reported as intended, not as actually built
Key operations
- Extract key ratios from the reference by eye or measurement
- State ratios as hard constraints, not adjectives
- Ask the agent to measure and report achieved ratios
- Diff reported ratios against the reference
Quality gates
- Do the three or four key ratios match the reference within ~5%?
- Are invented details absent?
- Did the agent report measured (not intended) ratios?
- Does the silhouette read as the reference at thumbnail size?
Workflow steps
- Pick 3-4 load-bearing ratios from the reference
- Encode them as numeric constraints
- Run, then read achieved ratios
- Diff against reference, refine the off ratio
- Log the prompt and the ratio table
Next module
- product_materials_and_detail — materials, bevels, and making it read as real.
Reflection
Reflection card
Active retrieval — answer from memory before re-reading. Saved to this browser.
You've completed this module when…
- A documented case comparing reference ratios to the agent's reported ratios.
- At least one proportion-drift failure named with numbers.
- The fix prompt that pulled the off ratio back into range.
Next: product_materials_and_detail — materials, bevels, and making it read as real.
Finish — back to Product Design →