NewThe detectors that scored perfect collapsed the hardest under attack.
Data cardsynthetic-face-v1 · v2026.1Available · v1

Synthetic Face
Social-Media Benchmark

Does your detector still catch an AI-generated face after it has been through a social feed, compressed, resized, and re-encoded, rather than arriving as a clean studio render?

6,650
Real references
19,842
Synthetic faces
17
Conditions
12
Demographic cells
SDXL + InstantID
Generator
Read the benchmarkSee how other models performed
Generatedlight · female
An SDXL synthetic face, light female cell
ModalityStill images, single frontal face per image
Demographic axis6 skin tones x 2 genders = 12 cells
ClassesSDXL synthetic faces plus matched real references
ConditionsClean plus platform re-encode (compression, blur, noise, resize, pipelines)
LabelingPerceptual demographic labels by multi-model consensus, not biometric ground truth
Format.jpg, per-item demographic and condition labels
01 / The gap

Clean-render accuracy is not field accuracy.

Detectors that score well on clean synthetic faces often degrade sharply once an image has been through a platform's upload and re-encode pipeline. This benchmark isolates that gap.

02 / Coverage

Every item is labeled on a two-part axis, so performance can be read per cell rather than as a single average.

Twelve cells, read as a grid.

Skin tone
female
male
very_light
very_light · femaleITA greater than 55
very_light · maleITA greater than 55
light
light · femaleITA 41 to 55
light · maleITA 41 to 55
intermediate
intermediate · femaleITA 28 to 41
intermediate · maleITA 28 to 41
tan
tan · femaleITA 10 to 28
tan · maleITA 10 to 28
brown
brown · femaleITA -30 to 10
brown · maleITA -30 to 10
dark
dark · femaleITA less than -30
dark · maleITA less than -30

Skin tone uses a 6-band ordinal scale reconciled against Individual Typology Angle, so cells stay comparable across items. Swatches are indicative of the band, not a measured value.

03 / Conditions

Each condition emulates a platform pipeline.

Applied identically to reals and fakes. Facebook, Instagram, TikTok, and X pipelines plus a compression, blur, noise, and resize sweep.

00 · baselinecleanThe generated face with no re-encoding.
01 · compressionjpeg_q70JPEG re-encoded to quality 70.
02 · resizeresize_0.5Downscaled to half resolution.
03 · noisenoise_10Additive sensor-style noise.
04 · platformig_pipelineA full social-platform upload and re-encode.
04 / Method

How the corpus is built and labeled.

01Generated in houseSDXL + InstantID, identity-conditioned
02Consensus labelingMulti-annotator consensus
03Emulated re-encodeDesigned to match social-media conditions
ProvenanceReal reference faces are licensed from commercial stock-media providers; synthetic faces are generated in house. Each delivered item is licensed for your evaluation use.
05 / Annotation

Every item names its attack with a TTP tag.

A pass or fail count does not tell you what to fix. Each item carries a Tactic, Technique, and Procedure tag: the tactic is synthetic impersonation, the technique is identity-conditioned synthesis, and the procedure is the specific generator. Group misses by any of the three to target a fix.

TTactic, the goal (impersonation)TTechnique, the method (identity-conditioned synthesis)PProcedure, the generator (SDXL + InstantID)
Group misses by any row
06 / Use and limits

What it is for, and what it is not.

Use it for
  • Detector evaluation and robustness testing
  • Locating where a detector breaks, by cell and by condition
  • Training and fine-tuning as the corpus grows
Honest limits
  • One synthesis family (SDXL + InstantID); more generators on the roadmap
  • Frontal face crops; not a census of the attack surface
  • Demographic labels are perceptual consensus review, not biometric ground truth
07 / Samples

Synthetic faces, one per cell.

SDXL synthetic attack face, clean, light · femaleSDXL
cleanlight · female
SDXL synthetic attack face, clean, tan · maleSDXL
cleantan · male
SDXL synthetic attack face, clean, light · maleSDXL
cleanlight · male
SDXL synthetic attack face, clean, brown · femaleSDXL
cleanbrown · female
SDXL synthetic attack face, clean, very_light · femaleSDXL
cleanvery_light · female
SDXL synthetic attack face, clean, intermediate · maleSDXL
cleanintermediate · male
SDXL synthetic attack face, clean, very_light · maleSDXL
cleanvery_light · male
SDXL synthetic attack face, clean, dark · femaleSDXL
cleandark · female
SDXL synthetic attack face, clean, dark · maleSDXL
cleandark · male
SDXL synthetic attack face, clean, light · femaleSDXL
cleanlight · female
SDXL synthetic attack face, clean, tan · maleSDXL
cleantan · male
SDXL synthetic attack face, clean, light · maleSDXL
cleanlight · male
SDXL synthetic attack face, clean, brown · femaleSDXL
cleanbrown · female
SDXL synthetic attack face, clean, very_light · femaleSDXL
cleanvery_light · female
SDXL synthetic attack face, clean, intermediate · maleSDXL
cleanintermediate · male
SDXL synthetic attack face, clean, very_light · maleSDXL
cleanvery_light · male
SDXL synthetic attack face, clean, dark · femaleSDXL
cleandark · female
SDXL synthetic attack face, clean, dark · maleSDXL
cleandark · male
SDXL synthetic attack face, clean, light · femaleSDXL
cleanlight · female
SDXL synthetic attack face, clean, tan · maleSDXL
cleantan · male
SDXL synthetic attack face, clean, light · maleSDXL
cleanlight · male
SDXL synthetic attack face, clean, brown · femaleSDXL
cleanbrown · female
SDXL synthetic attack face, clean, very_light · femaleSDXL
cleanvery_light · female
SDXL synthetic attack face, clean, intermediate · maleSDXL
cleanintermediate · male
SDXL synthetic attack face, clean, very_light · maleSDXL
cleanvery_light · male
SDXL synthetic attack face, clean, dark · femaleSDXL
cleandark · female
SDXL synthetic attack face, clean, dark · maleSDXL
cleandark · male
08 / Query

Query the corpus the way you would query a database.

Every dimension is a filter. Compose them, read a live .total, then pull only what you need.

kind
fakereal
skin_tone × gender
very_lightlightintermediate · femaletanbrowndark
condition
cleanjpeg_q70ig_pipelineresize_0.5
generator
sdxl_instantid
Live count
.total
returned for your exact filter
request
GET /v1/items
  ?benchmark=synthetic-face-v1
  &kind=fake
  &skin_tone=intermediate
  &gender=female
  &condition=clean
Built forDeepfake-detection companiesTrust and safety teamsIdentity-verification and KYC providers

Pull it and score your detector.

Access is via the Margen platform. Generate an API key, then follow the API docs to pull the catalog and measure per cell and per condition.