SFHQ-VirtualID is public: 750 synthetic identities, each one a deletion unit
The embargo lifted today. SFHQ-VirtualID is officially public.
This marks the culmination of the last stretch of my MSc: a massive, synthetic face dataset family designed from the ground up for machine unlearning research. It is now live on Hugging Face, with Zenodo DOIs ready for citation.
- Bench — Hugging Face · DOI 10.5281/zenodo.21877893
- Raw — Hugging Face · DOI 10.5281/zenodo.21879130
Why I Built This
When I started my research into machine unlearning (specifically testing models against GDPR-style “Right to be Forgotten” requests), I hit a major roadblock: existing datasets were fundamentally broken for this use case.
In most benchmark datasets, “forgetting a person” is indistinguishable from “forgetting some images” because the identities are smeared across splits. Furthermore, using real human faces in deletion research creates ethical paradoxes—you are researching privacy using data from people whose consent you cannot guarantee.
So, I built a reproducible generative pipeline to solve this. SFHQ-VirtualID provides 750 completely synthetic, identity-conditioned face clusters. Every identity_id maps to exactly one split, meaning the model has to forget the person, not just the pictures.
The Scope of the Release
It took ~120 GPU-hours on the University of Leeds HPC (Aire) running a custom Slurm array to generate the dataset. The result is two releases:
- Raw: 75,000 high-res portraits (100 per identity) with full prompt metadata.
- Bench: Over 100k MUFAC-aligned crops specifically balanced across a 15-step deletion protocol for unlearning evaluations.
I didn’t artificially hide failures either. Borderline-similar candidates aren’t silently dropped; their ArcFace similarity scores are shipped as recorded confound columns so researchers can actually see what’s happening under the hood.
If you’re working on unlearning, machine unprotection, or generative-data governance and want to poke at it—check out the full technical case study in my portfolio, or open an issue on the GitHub repo.
This was the dataset I wanted to exist when I started. It feels incredible to finally ship it.