Colour could move the score, and we had promised it could not
The problem
The client asked directly whether recolouring a façade would defeat detection, and was told matching runs on structure, not colour. The first engine did not actually honour that: recolouring a render moved the similarity score.
What we did
We rebuilt the engine colour-blind. Images are reduced to luma before the vision model ever sees them, so colour cannot contribute to the visual score at all. Colour did not disappear from the product: it survives as a separate RAL colour-code layer resolved in a fixed precedence order, manual override, then the PDF's text layer, then OCR of the façade images, so a reviewer still sees colour agreement without colour inflating the match. The preprocessing is pinned corpus-wide, because changing it invalidates every stored embedding.
The outcome
A promise made to the client in writing became a property of the code rather than a hope, and the product still answers whether two designs use the same palette as a separate question.















