What it was
A two-day prototype from June 2025 for a virtual hair try-on. The front end, in React and TypeScript with Vite, Tailwind CSS and Framer Motion, takes your photo, a photo with the hairstyle you want and an optional colour reference by drag and drop, shows a processing screen, and returns the result beside the original with a before-and-after slider and a download button. Behind it is a FastAPI endpoint with input validation and a health check, packaged as a Docker image for Hugging Face Spaces.
The model step is a placeholder: it resizes the two photos and blends them, so the output is not a real hairstyle transfer. HairFastGAN, the open research model the API is shaped around, is not wired in yet. The front end is deployed on Vercel; the API Space is offline, so the live front end cannot process images.
What I learned
Shaping the API around the model's interface paid off: the endpoint takes the same three images as HairFastGAN's swap step, a face, a hairstyle shape and a colour reference, so the real model can replace the placeholder without changes to the front end. What is missing is the model itself: its pretrained weights and the compute to serve them.