SFHQ-VirtualID — Synthetic Identity Datasets for Machine Unlearning

SFHQ-VirtualID is a reproducible pipeline that generates synthetic, identity-conditioned face clusters, released as a benchmark dataset for machine unlearning. Building identities from CC0 source images sidesteps the ethical and privacy barriers that make real human face photographs difficult to use in deletion research — there is no real person whose consent has to be withdrawn.
The design decision
Most face datasets treat images as independent samples. Here, an entire identity cluster is a single deletion unit — which is what a real GDPR “right to be forgotten” request actually looks like: a person, not a class, and not a folder of pictures.
That one choice is what makes the benchmark falsifiable. Each identity_id maps to exactly one split (675 retain / 75 forget, on a 15-step deletion protocol), and every identity contributes both training and held-out images. So “the model forgot the person” is finally separable from “the model forgot the pictures”.

The pipeline

State-of-the-art generative tools — InstantID, Juggernaut-XL-v9 and ControlNet — produce consistent identities across diverse rendering conditions (pose, lighting and expression), while MTCNN and ArcFace handle detection, alignment and identity embeddings:
- Seed diversity selection — 750 CC0 seeds picked via ArcFace embeddings + KMeans for demographic spread
- Generation — 100 candidates per identity (75,000 × 1024² portraits, ~120 GPU-hours)
- Alignment + quality gate — MUFAC-standard 224×224 crops; detection + Laplacian sharpness ≥ 80 enforced
- Identity-level splits — uniform and seeded-Poisson forget schedules, plus a 5:1 long-tail popularity gradient
- Release — manifest, schema and SHA-256 checksums, published to Hugging Face and Zenodo
The end-to-end pipeline runs as a 15-shard Slurm array on the University of Leeds’ Aire HPC, handling generation, extraction, alignment and packaging in a single reproducible pass.
What I deliberately did not do
I did not filter candidates on identity similarity. The ArcFace thresholds (0.40/0.45) ship as recorded confound columns — arcface_similarity, laplacian_variance, detection_confidence — rather than as filters, because quietly discarding borderline-similar candidates hides the very confound that could otherwise explain a model’s apparent unlearning.
Failures aren’t hidden either: the 123 candidates rejected by the quality gate are documented in RELEASE_MANIFEST.json, alongside the pinned environment (torch 2.6+cu124, diffusers 0.39.0, insightface 1.0.1, the exact antelopev2 revision) and provenance dates.
The releases
Two citable releases, both public:
- SFHQ-VirtualID-Bench — 67,500 balanced + 36,064 imbalanced 224×224 aligned crops; the primary unlearning benchmark, with uniform and Poisson forget schedules and the long-tail variant. → Hugging Face · DOI 10.5281/zenodo.21877893
- SFHQ-VirtualID-Raw — 75,000 × 1024² portraits (100 per identity) with full per-candidate prompt metadata. → Hugging Face · DOI 10.5281/zenodo.21879130
Released under a non-commercial research licence; no model weights redistributed. The paired evaluation framework — a pre-registered protocol with erasure gates and a composite unlearning metric — lives in msc-project-core-implementation.