Projects

UniBooth

An AI headshot generator that produced batches of professional profile photos from a few reference images.Founder & Developer · Deprecated · October 15, 2024
SvelteKit
Python
Image generation
The UniBooth interface showing a batch of generated headshots in different poses and backgrounds.
UniBooth was an AI headshot generation platform built to help users quickly generate professional profile photos without a photographer. Users authenticated, uploaded reference images, selected attributes like gender and background style, and received batches of AI-generated headshots with different poses and compositions. The product is now deprecated. Building and operating it gave me experience with image-generation workflows, request tracking, and recovery from failed jobs.
  • Batch Headshot Generation
    Users could generate multiple headshots at once, each with different pose variations, compositions, and framing, optimized for professional use cases.
  • Attribute-Based Customization
    Generation was conditioned on selected attributes such as gender and background style to improve realism and consistency across outputs.
  • Authenticated User Flow
    Users were required to log in before generating images, enabling request tracking, quota control, and abuse prevention.
  • Request Tracking and Recovery
    The system tracked generation requests that succeeded, failed, or timed out, allowing incomplete jobs to be handled gracefully.
  • SvelteKit
    Used for the frontend and application routing, handling authenticated flows and UI state.
  • Tailwind CSS
    Provided a clean, responsive interface optimized for previewing and comparing generated images.
  • Supabase
    Managed authentication, image storage, request metadata, and validation of generation jobs.
  • Custom AI Backend (Express.js + Google Cloud Run)
    A custom image generation backend was built using Express.js, deployed on Google Cloud Run, to orchestrate the full generation workflow and handle scaling.
  • Flux + LoRA Models
    Headshots were generated using Flux with LoRA fine-tuning to achieve consistent, professional portrait styles rather than generic image outputs.
  • Stripe
    Integrated to support paid usage tiers and generation limits.
The primary challenge was reliability. AI image generation is inherently asynchronous and failure-prone, especially at scale. Designing a system that could validate inputs, queue requests, handle partial failures, and reconcile storage state with user-visible results required careful backend design. I also learned how model quality, generation time, and hosting costs affect one another, and how those tradeoffs shape the product experience. UniBooth gave me practical experience taking an AI product from development through deployment and supporting it in use.