StyleMyCrown Identity Preservation

Identity Preservation Engine · Commerce layer

The product changes. The shopper doesn’t.

A try-on layer any store can plug in between recommendation and checkout. Makeup, lashes and hair colour are painted only inside the product’s own area, then checked for region, skin tone and identity before the shopper sees the result. Hairstyles run on our hair engine behind the same identity and skin-tone gates. Built for deep skin tones first, and run here across all 10 shades in our swatch.

BeforeAfter
Preview on
Runs on this device. Your photo is not uploaded.
Look

What happened to that preview

One pass through the pipeline

Every preview above went through these five steps. The numbers are measured on this preview, live, in your browser.

  1. 1 Map the face

    68 facial landmarks and a cheek skin measurement in CIELAB. Model photos are mapped ahead of time; your photo is mapped on your device.

    —

  2. 2 Mask the product

    Lips, lids, lash line and cheek apples are cut from the landmarks. Everything outside them is locked.

    —

  3. 3 Render inside the mask

    The shade replaces colour while the skin’s own texture stays. Pigment is calibrated to skin depth so colour reads true on deep skin, not grey.

    —

  4. 4 Validate

    Three independent checks, each with a fixed threshold. A single failure withholds the result.

  5. 5 Deliver, flag or withhold

    The store receives the outcome with the numbers, so a flagged or withheld preview is never shown as if it were fine.

    —

Linen to Cocoa

The same look on all 10 shades

Model 1 in each shade of the StyleMyCrown swatch. Only her skin colour differs, so any change in fidelity would come from the engine, not the person.

Straight to coily, braids to locs

Hairstyles on the hair engine

Ten catalog styles on Model 1, from silk press to goddess locs. A hairstyle can’t be painted inside a mask: the hair is generated on our servers, then each result goes through the same checks a StyleMyCrown customer gets. Those checks are face distance against the original, skin-tone ΔE on the cheeks, and an evaluator face check, followed by alignment to the original framing. These were made ahead of time, and the numbers are the ones recorded then. On a shopper’s own photo the style runs on stylemycrown.com.

Try them on in the sample store

For partners

Drop it into any storefront

The layer ships as one element. The store passes the product’s shade; the engine handles the face, the mask, the render and the checks, and reports the outcome back.

Product page
<script type="module"
  src="/embed/smc-tryon.js"></script>

<smc-try-on layer="lip" shade="#b3132f"
  finish="satin" label="Hibiscus Red"></smc-try-on>

<smc-try-on layer="hair" shade="#b4522a"
  label="Burnt Sienna"></smc-try-on>

<smc-try-on hairstyle="box-braids"></smc-try-on>

<script>
  document.addEventListener('smc:result', (e) => {
    // { outcome, identityDistance, skinDeltaE,
    //   changedOutsideProduct, tone, subject, label }
    analytics.track('try_on', e.detail);
  });
</script>
  • Any catalog. A product is a layer and a shade: lip, blush, shadow, liner, lashes or hair colour, with a hex colour and finish. No retraining per product.
  • Any stack. Plain HTML element, no framework. Works on hosted platforms and headless storefronts.
  • Private by design. Makeup, lashes and hair colour run on the shopper’s device. Photos are not uploaded.
  • Honest outcomes. Every preview reports its checks. Flagged and withheld results are visible to the store.
  • Hairstyles and wigs. Run on the StyleMyCrown hair engine (generative, on our servers) behind its gates: face distance, skin-tone ΔE and an evaluator face check. In the store they show as results made ahead on Model 1; a shopper’s own photo goes to stylemycrown.com ↗.

See it in a sample store