Transform any logo or image into a glittering disco ball version using AI.
Discomorphism is a one-click AI image transformer built on OpenAI's gpt-image-1 model. Upload your image, it comes back wrapped in mirrored facets, specular highlights, and full disco energy.
Riding the Spotify 20th anniversary "Discomorphism" wave, the internet-wide trend of reimagining logos and photos as disco ball art.
Live demo: discomorphism.vercel.app/
- You upload a PNG, JPG, or SVG (max 5 MB).
- The image is sent to OpenAI's
gpt-image-1model using the images.edit endpoint. - gpt-image-1 applies the disco ball style prompt, tiling the surface with mirror segments while preserving the original shape and colours.
- Vercel KV tracks total free uses; once the free tier cap is hit, visitors are invited to self-host.
| Service | Purpose | Sign-up |
|---|---|---|
| OpenAI | Image generation | platform.openai.com/api-keys |
| Vercel | Hosting + KV store | vercel.com |
git clone https://github.com/MaartenKesters/Discomorphism.git
cd discomorphism
npm installCopy .env.example → .env.local and fill in your keys:
cp .env.example .env.localOPENAI_API_KEY=your_openai_api_key_here
KV_REST_API_URL=your_vercel_kv_rest_url
KV_REST_API_TOKEN=your_vercel_kv_rest_token
MAX_USES=300Getting the Vercel KV credentials:
- Go to your Vercel project → Storage → Create Database → KV.
- In the KV dashboard, click
.env.localto copy the credentials.
npm run devnpx vercel --prodMake sure to add the environment variables in the Vercel project settings (Settings → Environment Variables) before deploying.
- Next.js 14 (App Router, TypeScript)
- OpenAI
gpt-image-1— images.edit endpoint - Vercel KV — usage counter (Redis)
- Tailwind CSS — styling
app/
api/
transform/route.ts ← img2img pipeline + KV gate
stats/route.ts ← usage counter endpoint
globals.css
layout.tsx
page.tsx ← drag-and-drop UI
.env.example
MIT
Built by Maarten Kesters