Inspiration

Makeup is supposed to be empowering, but nowadays, it can just feel overwhelming. There is such an extreme amount of tutorial videos online that it is hard to parse through everything. We do not have the spare time to spend hours searching for a routine that works for our personal needs. We wanted to create a product that can turn makeup into something that is more approachable so that more people can enjoy it.

What it does

HeyPretty creates a personalized makeup tutorial for the user. All we ask you for is your desired color palette, occasion, available makeup products, and the overall vibe of the look. Then we will output an easy-to-follow tutorial for a makeup look that is exactly what you are going for. Think of us as your digital makeup artist. In case you are still confused by the tutorial, Ari, our AI voice companion feature, is here to help. Ari can walk you through the steps and answer any questions that you have. You are also able to take a selfie to see what the final product should look like.

How we built it

We started by doing research into how people actually learn makeup online and realized most spend hours trapped in tutorial hell, watching long videos and pausing with messy hands. To fix that, we built a deep search pipeline so users never have to dig through content themselves.

Our system uses multi-phase deep search, first decomposing the user’s query into subtopics (occasion, product type, etc), then running parallel searches across beauty blogs, forums, videos, and finally using Gemini 2.5 Flash to summarize and ground the results into verified, step-by-step routines.

We then integrated ElevenLabs as our voice agent, so users can talk naturally ask follow-up questions or request a live walkthrough of their personalized routine.

Finally we used Google’s Nano Banana to generate realistic before-and-after visuals, letting users preview the full makeup look that the voice assistant guides them through.

Challenges we ran into

We first used Canvas with Gemini and MediaPipe Face Mesh to detect facial landmarks and apply makeup overlays step by step. But the results weren’t accurate colors often went outside the intended regions. We then tried Hugging Face diffusion models, but they were slow and most needed GPU deployment. Finally, we switched to Google’s Nano Banana, which gave fast and realistic results.

Accomplishments that we're proud of

One of our biggest achievements was integrating different models into our product. We used ElevenLabs’ conversational voice agent with the Gemini-powered tutorial generator to create an interactive makeup experience. Unlike a static guide, HeyPretty can now talk back, answering follow-up questions like “What brush should I use?” or “Can you repeat that last step?” in real time while the user is applying their makeup. We’re also proud of how fast we were able to get realistic visual previews using Google’s NanoBanana image model. Within seconds, users can see a before-and-after transformation that mirrors their selected makeup routine.

What we learned

We learned how to make an AI assistant feel human. Fine-tuning prompts for Gemini 2.5 Flash and ElevenLabs conversational agent API helped us make the Human-Computer Interaction natural. We also got hands-on with tools we hadn’t used before, like Playwright MCP servers, which we used for automated website testing and crawling beauty tutorial content. Debugging these pipelines gave us first-hand experience with multi-modal system deployment.

What's next for HeyPretty

We would love to bring HeyPretty to app form. This way, users can create an account and provide feedback on past generated tutorials so that the AI can learn their personal preferences and provide more tailored results in the future. Additionally, users could save past tutorials so that they don’t lose their favorite looks.

Built With

  • copilot
  • elevenlabs-conversational-api
  • elevenlabs-music-api
  • fast-api
  • google-cloud
  • google-cloud-run
  • google-gemini-2.0-flash
  • google-gemini-2.5-flash
  • google-gemini-2.5-flash-image
  • lovable
  • playwright-mcp
  • python
  • radix-ui
  • react
  • react-query
  • shadcn/ui
  • tailwindcss
  • typescript
Share this project:

Updates