My friend Tanmay is an engineer with a date coming up. He can track down a memory leak at 2 AM, but "does this outfit work?" is a much harder problem for him. So I built him a judge.
It's called FitCheck. You upload a photo of an outfit and it gives you a score out of 10, a one-line tagline, what looks good, and one thing to change. Every verdict is written by Google Gemma 3, an open-weight model from Google, running on my laptop. The laptop has 8 GB of RAM and no GPU, and the whole thing works with the Wi-Fi off.
How it works
It's two steps. A small vision model looks at the photo and lists the clothes and accessories, and nothing else. Then Google Gemma 3 (the 1B version) reads that list and writes the score, tagline, and tips. A small web page ties it together and shows a guide to what each score means, from 1-3 "Change the clothes" all the way up to 9-10 "Greek god / goddess."
The judge also has three personalities: hype bestie, brutally honest, and fashion critic. They're just text prompts. To change how Gemma behaves, I edit a sentence. No retraining, no account, no asking anyone's permission.
Why I wanted open models
It runs offline. I turned Wi-Fi off, started the app, and rated a photo. Once the weights are downloaded, nothing in it needs the internet.
The photo stays on my laptop. It's a picture of my friend, so that mattered. The page only listens on my own machine, with no share link and analytics turned off.
I could change the plan when the first one failed. That turned out to matter most, so here's what happened.
The version that was too slow
My first attempt used Gemma 3 4B on its own, because it can look at the photo itself. It worked, but one rating took about 4.5 minutes on my laptop. Nobody is waiting that long to find out if their shirt works.
Gemma 3 1B can't see images, but it's much lighter. So I split the job: the small vision model describes the clothes, then Gemma 1B only has to write the verdict. I also made each model unload right after it runs, so only one is in memory at a time. Now a rating takes about 72 seconds. That's still slow, so the page shows progress steps and little messages while you wait, which is better than staring at a spinner.
Going from 4.5 minutes to 72 seconds was mostly a one-line model swap plus some rearranging. With a hosted API, I'd have been stuck with whatever the vendor offered.
What Tanmay said
Tanmay tried it before his date. He told me it worked, and he got a compliment on his outfit. Here's our chat:
What's still not great
- A minute per photo is slow.
- The vision step is thin. It can miss details like accessories, and Gemma can only judge what it's told.
- Small models are generous with scores.
Prize category
I'm entering this for Best Use of Gemma. Google Gemma 3 writes every score, tagline, and tip in FitCheck, and it runs locally on a CPU-only laptop. The 4B-versus-1B decision above is the real engineering choice behind it.
Try it
The code is here: https://github.com/Saurabh16-s/Fit-check
The README has the setup: Ollama, two model downloads, and python app.py. It's tested on Windows with 8 GB of RAM.
Wish Tanmay luck.




Top comments (0)