Skip to content

Vesta

Vesta is a virtual wardrobe you run on your own machine. You upload a full body photo, pick a garment from the wardrobe or photograph a new one, and a virtual try-on model renders that garment onto your photo. It also estimates your skin undertone and proposes a color palette. It was written by Eugenio Nerelli and Gianmattia Barone, and the README calls it vibe coded.

  • Try-on starting from a photo of the user.
  • Color analysis: skin undertone computed as ITA in CIELAB, plus a season and a palette.
  • A wardrobe filterable by type: tops, trousers, dresses.
  • Adding a garment from a photo, with background removal and category assignment done automatically.
  • Three generation modes: local on the Mac, a free cloud GPU, or Premium with paid models (OpenAI gpt-image-1 or Google gemini-2.5-flash-image) using your own API key entered from the Profile.
  • A responsive interface for desktop and phone, with light and dark theme following the system.
  • It does not run local generation outside Apple Silicon. On other systems only the cloud mode is available.
  • It does not guarantee the cloud mode will be there. The cloud path uses a free Hugging Face GPU with a limited quota, and when the quota runs out the app falls back to local generation.
  • It does not come with a commercial license for the models. CatVTON and IDM-VTON are released under non commercial licenses. The repository code is MIT. Premium mode is the path with commercial API terms.
  • It does not ship API keys. Premium mode works only with a key you supply yourself.
  • It does not tell you whether a garment fits you. The output is a generated image, and the README claims no measurement, sizing or fit accuracy.
  • It publishes no benchmark. There are no quality numbers for the try-on or for the color analysis, so treat the output as a preview.

A Mac with Apple Silicon and Python 3.11 for local generation.

Terminal window
cd backend
python3.11 -m venv .venv
.venv/bin/pip install -r ../requirements.txt
git clone https://github.com/Zheng-Chong/CatVTON
.venv/bin/python download_weights.py
.venv/bin/python prep_wardrobe.py
.venv/bin/python -m uvicorn server:app --host 0.0.0.0 --port 8770

Then open http://127.0.0.1:8770, or http://IP-OF-THE-MAC:8770 from a phone on the same network.

The frontend is Preact, served by the backend, with no build step. The backend is FastAPI running on Apple Silicon through Metal and MPS. Try-on uses CatVTON locally and IDM-VTON via cloud. Segmentation uses segformer and rembg.

The ios/ folder holds a SwiftUI scaffold, a WKWebView pointed at the server.

From the Profile you enter an OpenAI or Google Gemini API key, and generation switches to the paid models. Keys are stored in backend/.keys.json, which is excluded from git, or read from the OPENAI_API_KEY and GEMINI_API_KEY environment variables. The README states they are never exposed through the APIs. The plan for App Store distribution and subscriptions is kept in PIANO.md in the repository.

The repository ships a README, an MIT license and a description. It has no contributing guide, no code of conduct and no issue or pull request templates, which puts its GitHub community health score at 42 percent. The synced data records zero stars and zero open issues.

This tool carries no check of its own. Nothing in the repository verifies that a try-on came out right. The images demonstrate that the pipeline runs end to end. Their quality is left to your eye.