Dreamint is a browser-based workspace for generating and editing images with OpenAI image models. It focuses on quick prompts, format/quality tweaks, cost visibility, and lightweight history so you can experiment without extra setup.
WARNING: YOU USE THIS AT YOUR OWN RISK. YOU ARE RESPONSIBLE FOR ANY API COSTS, ERRORS, OR MISBEHAVIOR.
- Prompt composer with aspect presets, quality levels (1K/2K/4K), and output format selection (PNG/JPEG/WEBP).
- Up to eight reference images for edits; drag-and-drop, paste, or file picker.
- Batch generation (1–4 images) with local gallery, metadata chips, and one-click “Use prompt” restore.
- Lightbox with keyboard/scroll navigation, download in your selected format, and edit-from-image shortcut.
- Interrupted request recovery: pending jobs saved locally are marked “Interrupted” after reload/close with Retry/Delete options; placeholders show an interrupted state.
- Local-first state: prompts/settings in
localStorage; gallery and pending items in IndexedDB vialocalforage. API keys stay in the browser only.
- Node.js 18+
- OpenAI API key. It is supplied in-app and stays in your browser; it is not stored on the server.
npm install- Start dev server:
npm run dev- Open http://localhost:3000
- Add your OpenAI API key in the in-app Settings. It persists in your browser storage only.
- Set
ACCESS_PASSWORDin your deploy environment to require a one-time password on first visit. - Successful unlock sets a signed, HttpOnly session cookie (30-day TTL, auto-refresh) and enforces a 5-try lockout (10 minutes) on failures.
- If
ACCESS_PASSWORDis unset, the gate is disabled.
- Choose aspect, quality, and Output Format from the control bar.
- Add reference images (max 8). If the first image has clear dimensions, the aspect auto-adjusts to match.
- Click Generate or press Enter in the prompt box. While running, a stopwatch shows elapsed time.
- If you close or reload mid-run, the pending items reappear as Interrupted with Retry/Delete buttons and non-animated placeholders.
- Switch between Create and Gallery via the floating pill at the top; it stays visible when scrolling.
- OpenAI: Uses
gpt-image-2and shows estimated and real token-based cost details in the UI when usage data is available.
- Everything is client-initiated; server jobs are not durable. Closing the page interrupts in-flight requests.
- Image generation runs fully in the browser with your own API keys; the host just serves the site (and optional password gate).
- Attachment, gallery, and API key state are stored locally in your browser; clear your browser storage to wipe state.
- Max four outputs per request; max eight input images (UI cap; model accepts more).
npm run dev— start Next.js with Turbopacknpm run build— production buildnpm run lint— ESLint