Fit Check
Inspiration
Ever since I saw the movie Clueless, the concept of an automated personal stylist like Cher's iconic computer-assisted closet, where she browses and previews her digital wardrobe, has always felt like a necessary part of my routine.
At the same time, shopping online and putting outfits together in real life has consistently been frustrating for me. Having specific body proportions means stock model photos rarely reflect how clothes will actually look on my frame. Guessing how different cuts, colors, and layers work together is practically impossible until I spend money, wait for delivery, and physically try everything on. I wanted to build a system that bridges this gap: a tool that digitizes your actual wardrobe, considers real-world context like the weather and occasion, and lets you see the completed look on your own photo before you ever put it on.
What it does
Fit Check is an AI-powered wardrobe assistant and virtual try-on studio. It allows users to:
- Digitize Their Closet: Upload everyday photos of clothes. The system extracts the garment, removes distracting backgrounds, and automatically tags it with metadata such as category, color, and seasonality.
- Context-Aware Outfit Planning: Recommends logical outfits based on selected occasions (casual, work, dinner, etc.) and real-time weather forecasts fetched directly from meteorological APIs.
- Realistic Virtual Try-On: Composites digital wardrobe items onto a consented reference photo of the user, generating a visual preview of what the full outfit looks like when worn.
- "I'm Feeling Lucky" Catalog: Stores previously generated previews in a visual gallery where users can hover over any look to see the exact clothing pieces that comprise it.
How I built it
The application is structured into a modular full-stack architecture consisting of four major components:
- AI Vision Extraction: A multimodal vision pipeline that parses user uploads, generates bounding boxes, removes background noise, and extracts structured garment attributes (tags, colors, categories).
- Context-Aware Stylist Engine: A backend recommendation service that pairs top, bottom, outerwear, and footwear items according to temperature, precipitation, and occasion rules, while introducing randomization to prevent repetitive suggestions.
- Virtual Try-On Engine: An orchestration pipeline utilizing Genblaze and GMI Cloud generative image models to realistically synthesize the user's reference photo wearing the planned clothing items.
- B2 Storage Architecture: A secure cloud storage layer built on Backblaze B2. Raw photos, isolated garment cutouts, and high-resolution generated renders are safely stored in private buckets and delivered via presigned URLs without exposing cloud credentials to the client.
The frontend is built with Next.js and TypeScript using clean Vanilla CSS for a responsive, bento-grid interface. The backend is powered by FastAPI, SQLAlchemy, and SQLite.
Challenges I ran into
- Multi-Item Compositing Quality: Getting generative models to accurately represent multiple distinct clothing items on a reference body without hallucinating extra details or altering key garment features was challenging. This required fine-tuning the prompt construction and ensuring source crops and cutouts were cleanly isolated.
- Background Removal Variances: High-contrast store photos are easy to isolate, but everyday phone photos often have shadows, wrinkles, and complex backgrounds. Balancing lightweight local processing with AI-driven extraction required careful handling of fallback states.
- Storage Sink and Pipeline Integration: Configuring the asynchronous pipeline between GMI Cloud's request queue, image generation, and Backblaze B2's S3-compatible API required debugging custom storage sinks, handling region-specific endpoints, and managing secure presigned upload workflows.
Accomplishments that I'm proud of
- Successfully orchestrating the end-to-end flow from a messy clothing photo upload all the way to a realistic virtual try-on on a specific user photo.
- Building a private and secure media pipeline where Backblaze B2 handles private storage, signed uploads, and provenance manifests without leaking credentials to the browser.
- Designing a fast, tactile web interface with custom hover overlays and interactive step cards that make browsing a digital closet intuitive.
What I learned
- Generative Media Pipelines: Gained deep practical experience integrating asynchronous image generation jobs, handling polling queues, and structuring metadata manifests for generated visual assets.
- Object Storage Architectures: Learned the nuances of building a secure, presigned-URL-first storage architecture with Backblaze B2 and S3-compatible interfaces.
- Prompt Engineering for Fashion Visuals: Discovered how to structure multi-modal try-on prompts to preserve reference garment colors, textures, and cut lines accurately.
What's next for Fit Check
- Enhanced Phone-Camera Segmentation: Integrating dedicated edge-detection segmentation models to cleanly extract clothes photographed directly against bedroom walls or closet hangers.
- Cost-Per-Wear Tracking: Expanding the wardrobe analytics to track wear frequency, item utilization, and estimated cost-per-wear over time.
- Packing & Trip Planner: Adding a multi-day trip feature that generates a minimal capsule wardrobe based on the destination's multi-day weather forecast.
Built With
- alembic
- backblaze-b2
- boto3
- docker
- gemini
- genblaze
- github
- gmi-cloud
- javascript
- node.js
- open-meteo
- pillow-pil
- python
- qwen-vision
- sqlalchemy
- uvicorn
- vercel
Log in or sign up for Devpost to join the conversation.