A desktop app for generating product catalog images using AI.
Batch-generate image variants from a source photo and text prompts. Pick a model provider (Gemini), configure your API key, upload a product shot, write prompts — Baim handles the rest asynchronously.
- Upload & manage source images in a local library
- Batch generation — one source image × many prompts, each becomes its own job
npm install
npx tauri devSet a Gemini API key in Settings → API Keys, upload an image, write a prompt, and generate.
| Command | What it does |
|---|---|
npm run dev |
Vite dev server (port 5173) |
npm run build |
Typecheck + Vite build |
npm run lint |
oxlint |
npx tauri dev |
Full desktop app |
npx tauri build |
Production bundle |
cargo check -p baim |
Check shared crate only |
- Rust (edition 2021)
- Node.js 20+
- Tauri v2 system dependencies
- Gemini API key from Google AI Studio
baim/
├── src/ React 19 + react-router v8 frontend
├── baim/ Shared Rust crate (ImageProvider trait + GoogleProvider)
└── src-tauri/ Tauri v2 backend (Rust, SQLite)
The frontend communicates with the Rust backend via Tauri invoke(). Image generation goes through the ImageProvider trait — providers register themselves in all_providers() and are driven from the settings UI. The active provider and API keys are stored in SQLite; the frontend never sees the key value.