AI PRODUCT · WEB DEV · Vibe Coding

Virtual Stylist

A photo-free AI styling experience helping users explore hairstyles with greater privacy, flexibility, and inclusivity.

Role: UX Designer & Developer
Timeline: 4 Weeks · 2024 · Revisited 2026
Project: Personal Project
Virtual Stylist interface

Problem & Objective

Existing AI styling apps often rely on user photos, raising privacy and inclusivity concerns related to gender and ethnicity. I wanted to create a gender-inclusive, photo-free styling experience that lets users explore hairstyles without compromising identity or personal data.

Privacy

Hairstyle visualization often requires users to upload personal photos before they can explore different looks.

Representation

Existing tools can reinforce narrow assumptions around gender, appearance, and who styling experiences are designed for.

Inspiration & Social Context

Digital Self-Representation

The article Life as a Trans Bitmoji inspired my exploration of digital self-representation. It shows how a virtual avatar can help someone express identity shifts before they happen in real life.

Similarly, anime fan art communities reveal the importance of visualization for people who rarely get to see themselves represented.

Solution

I built a photo-free system using HTML, CSS, JavaScript, and OpenAI APIs. Instead of uploading an image, users enter attributes such as age, gender identity, and style preferences to generate personalized hairstyle recommendations.

01 · Hairstyle Description

Generate detailed hairstyle recommendations based on the user's preferences and identity.

02 · AI Visualization

Translate the recommendation into an AI-generated preview without requiring a personal photo.

Virtual Stylist generated result

Key Design Decisions

Virtual Stylist key design decisions

Key Process Stages

Research

Created user personas and a journey map based on interviews and competitor analysis, particularly YouCam, focusing on pain points around gender inclusivity and data privacy.

Virtual Stylist persona and journey map

Coding & Prompting

Developed the app with HTML, CSS, JavaScript, a Deno backend, and OpenAI APIs. I iterated on prompts to improve the relevance and accuracy of generated results.

Virtual Stylist development and prompting process

Prototyping & Testing

Built and tested wireframes in Figma and functional prototypes in the browser.

Testing led me to support input rewriting and real-time regeneration, giving users more control over how they explored different styles.

Virtual Stylist prototyping and testing

Designing Around AI Bias

Testing revealed a limitation beyond the interface itself. When demographic details were underspecified, generated previews often defaulted toward young white women, exposing biases in the underlying model.

What I Observed

Even a seemingly neutral interface could produce narrow representations because generated results were shaped by biases beyond the UI.

How It Changed My Approach

I became more intentional about language, user control, and how inputs are framed rather than assuming a photo-free workflow alone would make the experience inclusive.

AI-Assisted Iteration

Further testing revealed three opportunities: reduce typing, save favorite looks for later reference, and consider users' existing hair when evaluating generated styles.

Selectable Preferences

Replace text-heavy inputs with quick, structured choices.

Saved Looks

Let users collect and revisit styles to share with their hairstylist.

Hair-Aware Guidance

Consider current hair texture, color, and treatment history to make recommendations more realistic.

I vibe coded with AI tools to rapidly explore and test these ideas. The generated prototypes, however, still revealed gender and ethnicity biases—making AI inclusivity an ongoing exploration in this project.

Figma Make

Claude Code

Lovable

Reflection

Inclusivity Goes Beyond Removing Photos

Virtual Stylist challenged my assumption that removing photos alone would make AI styling tools more inclusive. Testing showed that inclusivity is also shaped by how gender options are framed, which defaults appear first, and how prompts influence generated results.

Designing for Agency, Not Automation

This project reshaped how I approach AI-powered UX: not as the pursuit of seamless automation, but as a balance between user agency, system constraints, and ethical responsibility.

Back to top