Identity & naturalness audit · Fable-verified

Only the hair changes. The face stays the person.

Two synthetic portraits — one man, one woman — were run through the live HairMirror AI generation pipeline across a range of unique haircuts. Every result was then independently audited by Fable (a separate vision model, not the generator) against one strict rule: the person's identity — eyes, nose, jaw, skin, expression, background — must be untouched, and the haircut must look like a real salon result, not a wig or a filter.

Cuts published11
Fable identity PASS11 / 11
Avg. naturalness8.4/10
Face features altered0

The gentleman

6 cuts · short-hair input

A short-hair source composites cleanly. Every barber cut below kept the exact same face, stubble, and skin texture — Fable rated the set 8–9 / 10 for realism.

The lady

5 cuts · long-hair input

From a long-hair source, the pipeline is at its best restructuring length — bobs and lobs. Identity is held perfectly and the cuts read natural.

What the audit caught

honest findings

The audit isn't a highlight reel — it's a gate. On the long-hair source, styles that keep full length and only change texture (beach waves, voluminous curls, shags) exposed a real defect: translucent "ghost-hair" halos composited into the background, faint rectangular blend seams, and the requested texture often not applied. Fable flagged these; they are shown here as evidence, not product.

Findings & fixes

  • Identity preservation is solid. Across every generation — passing or failing — the locked-identity prompt held: not one facial feature was beautified, slimmed, de-aged, or swapped.
  • Short-hair inputs are production-ready. 6/6 male cuts passed at 8–9/10.
  • Long-hair inputs: reduce, don't just re-texture. Length-reducing cuts (bobs/lobs) composite cleanly (5/5 passed); keeping full length while changing texture triggers ghost-halo artifacts → backend fix: long-hair segmentation/compositing.
  • QA-gate blind spot. The pipeline's own quality gate correctly rejects dramatic identity-breaking transforms, but passed the ghost-halo cases → add a background-artifact / halo check to the gate.