Back to Portfolio

Retrova: AI Photo Style

An Android app that turns a portrait into dozens of styles — 80s photos, anime, action figures — by tapping one card instead of writing a prompt, and the face stays yours.

No account · Free credits every day · Rated 13+

AndroidKotlinJetpack ComposeRetrofitPlay BillingAdMob
Studio screen: a grid of style cards with example results, category filters, and the credit balance in the top corner.

Problem

AI-styled photos are already free from any chatbot, but three things stop ordinary people from getting them: they don't know what prompt to write, the flow takes far too many steps for something they only want to post to a WhatsApp Status, and two runs of the same prompt often hand back somebody else's face. What's missing isn't the capability — it's the distance between a photo in the gallery and a result ready to share.

Solution

Built an Android app with no prompt field anywhere: pick a style card, pick a photo, done. The prompts and workflows are tuned behind the scenes with a face-preservation pass, the style catalogue is served from the backend so new trends ship without an app update, and generation runs on my own GPU through a queue on a VPS — so closing the app doesn't cancel the work, and the cost per image stays low enough to fund free daily credits.

A look at the app

The Play Store set, captured from the running app rather than mocked up.

Swipe to see more screens →

What you can do with it

Six things, all aimed at the same goal: shortening the distance between a photo in your gallery and a result you can post.

🎴

Pick a style, not a prompt

There is no prompt field anywhere. The catalogue is served from the backend — 80s studio portraits, vintage Polaroid, Y2K, anime, black-and-white manga, 3D cartoon, action figures, neon cyberpunk — so new trends arrive without an app update.

🙂

The face stays yours

Each style is hand-tuned with an identity-preservation pass so your face, expression, and hair shape stay recognisable. Only the look and the mood change.

☁️

Processed on the server

Jobs queue on the server rather than the phone, so you can close the app: the result waits in History and a notification arrives when it's ready.

🔍

Before/after and upscaling

A slider to compare the original with the result, plus an upscale to 4096 px if you want to print it. Results keep the shape of the original photo — nothing is cropped.

🎟️

Credits, no subscription

One image costs one credit, and credits are only charged when the result is actually created. Top up by watching ads or buying a one-time pack — credits never expire.

🔒

No account

No sign-up, email, or login. You're identified only by a random per-device code, and all of that data can be erased from Settings.

The numbers the app runs on

Four rules baked into the code and visible on screen.

Cost per image

1credit

Charged only when the image is created, not when you tap the button.

Maximum upscale

4096px

On the long side, enough to print. The original aspect ratio is kept.

Original photo deleted

1day

The photo you upload is removed from the server automatically once it's processed.

Results kept

30days

So History still opens if you lose your device or reinstall the app.

Your photos are used for nothing but your results

Photos do have to reach the server — that's the only way the image can be made. What I can promise is what happens after that.

  • No account, no login. No name, email, or phone number; just a random per-device code.
  • Original photos are deleted automatically. Within a day of being processed, without you having to ask.
  • Never used to train models. And never shared with anyone beyond the infrastructure providers that process the image.
  • Photos come through Android's own picker. The app only receives the file you chose — it never asks for access to your whole gallery.
  • All data can be erased from inside the app. Settings → Delete account and all data, or through the data deletion page.
Read the full privacy policy →

Worth knowing

Please read this before using the app.

Results are generated by an AI model, so no two runs come out identical. Face preservation is tuned as far as each style allows, but it still depends on the photo you pick — a dark shot, a small face, or several people in one frame all make the result worse.

The app needs an internet connection, contains ads, and offers in-app purchases in the form of credit packs. There is no subscription.

It is intended for ages 13 and up and is not directed at children. Please don't upload photos of other people without their permission.

Retrova is really three things released on separate cycles: the Android app, a backend on a VPS that holds the credit ledger and the job queue, and a ComfyUI worker running on a home GPU over Tailscale. That split is what lets the style catalogue grow without waiting on Play Store review — adding a style means adding a workflow on the worker, not shipping a new version.

The hardest part isn’t the Android code, it’s tuning a workflow per style so the face stays recognisable across skin tones, ages, glasses, and headscarves — plus moderating both input and output, which had to ship in version one because generation runs self-hosted, with no API provider filtering anything on the way through.

The app’s privacy policy lives on its own page.