
Photo-Shot
A mobile-first, installable (PWA) AI image studio: edit photos across many image models, or copy EXIF metadata between images - all from one small self-hosted app. Free and open source (GPLv3).

One studio, many models
- Multi-provider editing: one UI in front of Gemini (direct), WaveSpeed, and OpenRouter, with 14+ image models (Nano Banana 2 / Pro, Seedream, GPT Image, Grok, …).
- Model-aware controls: each model exposes only its real aspect ratios, resolutions (2K/4K), multi-image limits and extras - with a live per-image price estimate.
- Text-to-image, image-to-image and re-edit: up to 5 reference images, prompt templates, and a one-tap "edit this result again" loop.
- Cost tracking: lifetime, monthly and daily spend with a per-provider and per-model breakdown.
- History across devices: generated images are kept on your server for 90 days, with per-image delete.
EXIF metadata copier
Copy full EXIF, GPS only, GPS + time, or a custom field set from a source JPEG onto a target image - with optional pre-clear and PNG-to-JPEG conversion. Useful when an edited or AI-generated image should keep the original photo's location and timestamp.
Private by architecture
The browser never calls the AI providers directly. A small server-side reverse proxy (nginx) injects the provider API keys, so the keys live only on your server and never reach the browser. Every API request must carry the unlock password, which nginx verifies - without it, neither the models nor the keys are reachable.
Deployment is a single docker compose up: nginx serves the static PWA bundle and the API proxy, with an optional Cloudflare tunnel. Built with React 19, TypeScript, Tailwind CSS v4 (local build, no CDN), and vite-plugin-pwa for the installable, offline-capable app shell.
Get Photo-Shot
Free software under the GPLv3 - self-host it with Docker in minutes.