FitRoom AI is a minimal Chrome extension + local backend + web dashboard that lets you:
- Upload a face photo once on a dashboard
- Right-click a model image on any shopping site
- Generate an edited image via Gemini image editing (Nano Banana image models)
- Replace the clicked image in-page
- Browse all your past try-ons in a clean dashboard
banana-backend: Node/Express backend that calls Gemini image editing.banana-extension: Chrome extension (Manifest V3).
- Node.js 20+
- A Gemini API key from Google AI Studio
- Go to
https://aistudio.google.com/apikey. - Sign in with your Google account.
- Click Create API key (or reuse an existing one) for the Gemini API.
- Copy the key – it will look like
AIza.... - Note: for image models like
gemini-3.1-flash-image-previewyou may need to:- Attach a billing account to the project, and
- Ensure you have quota for that model (free tier for images is often 0).
In banana-backend, create a .env file (this file is gitignored) with:
GEMINI_API_KEY=YOUR_REAL_KEY_HERE
GEMINI_IMAGE_MODEL=gemini-3.1-flash-image-preview
PORT=8787You can swap GEMINI_IMAGE_MODEL for another image-capable model from your
/v1beta/models list (e.g. gemini-2.5-flash-image), as long as it supports
generateContent with image outputs.
cd "/Users/kids/Documents/Projects/AI Try On/banana-backend"
npm install
# load .env into your shell (zsh/bash)
set -a
source .env
set +a
npm run devBackend health check: http://localhost:8787/health
- Open
chrome://extensions - Enable Developer mode
- Click Load unpacked
- Select this folder:
The backend hosts a small dashboard that owns all settings and history.
- With the backend running, open:
http://localhost:8787/dashboard - In the Settings card on the left:
- Backend URL: usually
http://localhost:8787 - Face image: upload a clear headshot (frontal, good lighting)
- Backend URL: usually
- Click Save settings
- The current backend URL and current face image are shown so you can always tell what’s in use.
- Go to a product page with a model wearing clothing
- Right-click on the model image
- Click Try on with my face (Banana 2)
If the page has multiple similar images, the extension will try to replace the best matching <img> element.
- Filters: filter history by store (hostname) or by part of the product URL.
- Settings:
- Change backend URL used by the extension.
- Change the face image (preview shows the image currently in use).
- History grid:
- Shows all past try-ons with:
- Generated image
- Store
- Product URL
- Timestamp
- Each card has an Open product button that re-opens the original product page.
- Shows all past try-ons with:
- This is an MVP. It works best on standard
<img>elements, not CSSbackground-imagegalleries. - Some sites block direct image downloads (“hotlink” restrictions). In those cases, the backend may fail to fetch the target image URL.
- Gemini image models require sufficient quota; if you see
RESOURCE_EXHAUSTEDerrors, check your usage and billing for the selected model.# FitRoom-AI