A lightweight, fully serverless, single-file image transformation web tool. Upload a photo, choose an artistic or photographic style, and generate a restyled image instantly β powered by Googleβs Gemini image generation model.
No backend server, no deployment pipeline, no installation. Just open the HTML file and go.
π Live Demo β https://aurashift.github.io/AURA/image-transformer.html
| Workspace Interface | Transformation Result |
|---|---|
| Property | Detail |
|---|---|
| Deployment | Single .html file β zero server required |
| AI Model | Google Gemini image generation (auto-discovered) |
| SDK | @google/genai v2.5.0 bundled inline (no CDN) |
| Transport | Google GenAI SDK β CORS-compatible, works from file:// |
| API Key | Runtime input only β never hardcoded or stored |
| Timeout | 90 seconds hard cutoff per request |
| Model Discovery | Dynamic ListModels call β always uses best available model |
| Tier | Images/Day | Images/Min | Cost |
|---|---|---|---|
| Free | ~50 (resets midnight PT) | 2 RPM | $0 |
| Paid | Unlimited | 15 RPM | ~$0.04/image (~βΉ3.30) |
Note: As of December 2025, the free tier has
limit: 0for image generation by default. You must enable billing to use the API reliably.
India-specific: If you see error
OR_BACR2_44, your card type may be unsupported. Use a Visa/Mastercard international credit card, or a virtual card from Wise as a reliable workaround. Indian debit cards and some domestic credit cards are blocked by Googleβs billing system.
AURA uses dynamic model discovery β on first generate, it calls ListModels with your API key and automatically selects the best available image generation model.
1. gemini-2.5-flash-image β fastest, preferred (~5β15s)
2. gemini-3.1-flash-image β fallback
3. gemini-2.0-flash-exp-image-generation β legacy fallback
If none of the preferred models are available, AURA picks any model whose name contains "image" and supports generateContent. The resolved model name is logged to the browser console as [AURA] Using model: ....
Model names change frequently as Google releases and deprecates versions. Dynamic discovery ensures the app never breaks due to a renamed model.
Your Browser β Google Gemini API (direct)
The request goes directly from your browser to Googleβs servers. No intermediate server touches your image or key.
If you host AURA on a public website, do not hardcode your API key in the HTML. Anyone can view page source and steal it. For public deployments, implement a backend proxy:
Your Browser β Your Server (holds API key securely) β Google Gemini API
Example proxy stack: Node.js + Express, Python + FastAPI, or Next.js API routes.
| Scenario | Expected Time |
|---|---|
| Normal (paid tier, gemini-2.5-flash-image) | 5β20 seconds |
| Busy server | 20β60 seconds |
| Timeout cutoff | 90 seconds |
AURA enforces a 90-second hard timeout using AbortController. If the API doesnβt respond within 90 seconds, the request is cancelled and a clear error is shown. This prevents the UI from hanging indefinitely.
The loading screen shows:
23s)Newly upgraded accounts (free β paid) may experience 60β150s response times for the first few hours due to a known Google quota propagation delay. This resolves itself automatically.
| Style | Description | |β|β| | Soft Focus | Gently blurs the background while keeping the subject pin-sharp with backlighting. Pristine clarity, no grain. | | Dark Stage | Places the subject against a solid black studio wall with intense flash and sharp, well-defined shadows. | | Studio Dark | Deep muted gradient backdrop with powerful flash and a glowing rim light around the subject. |
| Style | Description | |β|β| | Outline Glow | Adds a subtle white-stroke digital glow radiating off the subjectβs outline. Background stays photorealistic. | | Sparkle Aura | Traces the subjectβs silhouette with sparkling glitter and light particles. Background stays photorealistic. |
| Style | Description | |β|β| | Lofi Dusk | Night-flash aesthetic with a deep grainy background, rim light, and warm peachy skin tones. | | Dreamy Film | Soft nostalgic focus with golden-hour warmth, film grain, and an earthy organic palette. | | Red Glow | 35mm tungsten film look with split-tone cyan/amber, organic grain, and red-orange halation blooms. | | 90s Summer | Classic editorial with warm analog film grading and high contrast between peachy skin and cool blue tones. |
| Style | Description | |β|β| | Seasonal Grid | 4-panel edge-to-edge grid of the same image with hand-drawn crayon seasonal overlays: βοΈ Winter Β· πΈ Spring Β· π₯ Summer Β· π Autumn |
git clone https://github.com/aurashift/AURA.git
cd AURA
open image-transformer.html # macOS
# or double-click the file in Windows/Linux
The bundled SDK handles all networking β no local server needed.
The repo is configured to serve via GitHub Pages. Any push to main automatically updates the live site.
Drop image-transformer.html onto Netlify, Vercel, Cloudflare Pages, or any static host. No build step required.
| Error | Cause | Fix |
|---|---|---|
429 Quota exceeded |
Daily or per-minute limit hit | Wait for reset, or create a new API key |
OR_BACR2_44 |
Indian billing account blocked | Use a Wise virtual Visa card |
Failed to fetch |
Opening file from file:// with old version |
Use current version β SDK is bundled inline |
No image model found |
Key has no image model access | Enable billing on your Google Cloud project |
Request timed out after 90s |
Server overloaded or slow | Retry in 30s; check status.cloud.google.com |
No image returned |
Model blocked the prompt | Try a different style |
| Dependency | Version | How included |
|---|---|---|
@google/genai |
2.5.0 | Bundled inline via esbuild IIFE β no CDN required |
| Google Fonts (Syne, DM Mono) | β | Loaded from CDN (requires internet) |
No npm install, no node_modules, no build step.
MIT β free to use, modify, and distribute.