Create AI-generated artwork inspired by songs and musical artists. This app uses OpenAI's GPT and DALL-E to generate unique visual interpretations of music.
- Generate AI artwork from any song or artist name
- View gallery of previously generated images
- Share generated images via URL
- Responsive design that works on mobile and desktop
- Automatic image optimization and caching
- Enter a song or artist name
- GPT generates a detailed visual description based on the music
- DALL-E creates artwork from that description
- Image is optimized and stored for sharing
- Frontend: React
- Backend: Node.js + Express
- AI: OpenAI (GPT-3.5 + DALL-E 3)
- Storage:
- Images: Vercel Blob Storage
- Metadata: Vercel KV (Redis)
- Deployment: Vercel
-
Clone the repository:
git clone https://github.com/bobbrose/sketchy.git cd sketchy -
Install dependencies:
npm run install-all
-
Create
.envfiles:In
/server/.env:OPENAI_API_KEY=your_openai_api_key USE_OPENAI_API=true # Set to false to use mock API ADMIN_API_KEY=your_admin_key # For protected endpoints
For production features (optional):
BLOB_READ_WRITE_TOKEN=your_blob_token KV_REST_API_URL=your_kv_url KV_REST_API_TOKEN=your_kv_token
-
Start development servers:
# Terminal 1 - Backend (http://localhost:3001) npm run server # Terminal 2 - Frontend (http://localhost:3000) npm run client
| Variable | Purpose | Required |
|---|---|---|
OPENAI_API_KEY |
OpenAI API authentication | Yes |
USE_OPENAI_API |
Enable real API vs mock | No (defaults false) |
ADMIN_API_KEY |
Protect admin endpoints | Yes for admin features |
BLOB_READ_WRITE_TOKEN |
Vercel Blob Storage access | Production only |
KV_REST_API_TOKEN |
Vercel KV access | Production only |
POST /api/generate-image- Generate new artworkGET /api/gallery- Retrieve gallery imagesDELETE /api/clear-gallery- Admin: Clear galleryDELETE /api/remove-image- Admin: Remove specific imagePOST /api/reduce-gallery- Admin: Reduce gallery size
This project is open source under the MIT License. See LICENSE for details.
- Created by Bob Rose
- Developed with assistance from Augment Code
- For issues and feature requests, please open an issue
- Try it out and let me know what you think!
- Share your favorite generated images on LinkedIn and tag Bob Rose
- Star ⭐ the repo if you found it interesting