A responsive, full-featured photo editing application with both quick-action tools and AI-powered capabilities for advanced image manipulation.
Note - Currently not ready, some functions not working. See also: replit.md
- Sharpen - Enhance image details with adjustable amount and radius
- Denoise - Reduce noise while preserving fine details
- Contrast - Adjust image contrast from -100 to 100
- Exposure - Control overall exposure, highlights, and shadows
- Color Correction - Temperature, tint, and saturation adjustments
- Red Eye Removal - Automatically detect and reduce red-eye effects
- Auto Enhance - One-click enhancement with preset optimizations
- Object Removal - Intelligent removal using AI inpainting
- Background Change - AI-powered background replacement
- Chat Assistant - Natural language interface for editing commands
- Undo/Redo - Full history tracking for all edits
- Image Canvas - High-performance rendering with zoom and pan
- Before/After Comparison - Toggle view to see editing results
- Tool Settings - Slider controls for precise parameter adjustments
- Chat Panel - AI assistant for editing guidance and commands
- Export Dialog - Multiple format support (PNG, JPEG, WebP)
- Settings Panel - API key configuration and local model setup
- Frontend: React 18 with TypeScript
- Styling: Tailwind CSS with shadcn/ui components
- Backend: Express.js with Node.js
- Image Processing: Canvas API (client-side)
- State Management: React Hooks with localStorage
- APIs: OpenAI Vision API (optional for AI features)
- Local Models Support: GFPGAN, Real-ESRGAN, REMBG, ONNX Runtime
npm install
npm run devThe application will start on http://localhost:5000
-
For AI Features: Configure your OpenAI API key in Settings
- Get an API key at https://platform.openai.com/api-keys
- Settings are stored securely in localStorage
-
For Local Models: Configure model paths in Settings
- Supported: GFPGAN, Real-ESRGAN, REMBG, ONNX models
- Models run locally without internet connection
├── client/
│ └── src/
│ ├── pages/
│ │ └── photo-editor.tsx # Main editor page
│ ├── components/
│ │ └── editor/
│ │ ├── ImageCanvas.tsx # Image display and interaction
│ │ ├── ToolsSidebar.tsx # Tool selection
│ │ ├── ToolSettings.tsx # Parameter adjustments
│ │ ├── ChatPanel.tsx # AI chat interface
│ │ ├── TopBar.tsx # Header with controls
│ │ ├── ExportDialog.tsx # Export options
│ │ ├── SettingsDialog.tsx # Configuration
│ │ ├── UploadZone.tsx # Image upload
│ │ └── ThemeToggle.tsx # Dark mode toggle
│ └── lib/
│ ├── image-processing.ts # Canvas-based processing
│ └── openai-client.ts # OpenAI API integration
├── server/
│ ├── routes.ts # API endpoints
│ ├── image-processor.ts # Backend processing utilities
│ └── storage.ts # Data storage interface
├── shared/
│ └── schema.ts # Shared data types and schemas
GET /api/health- Health checkPOST /api/process-image- Client-side image processingPOST /api/process-ai- AI-powered image editing (requires API key)POST /api/chat- Chat interface for natural language commandsGET /api/capabilities- List available processing capabilities
- User uploads image → Canvas rendering at native resolution
- Selects tool → Configures parameters with real-time preview
- Applies effect → Client-side Canvas API processing
- Auto-save to history → Enables undo/redo functionality
- Exports result → Multiple format support (PNG, JPEG, WebP)
Describe edits in natural language:
- "Remove the background"
- "Make the colors more vibrant"
- "Enhance this portrait"
The AI assistant understands intent and suggests appropriate editing operations.
Toggle between original and edited versions to verify changes.
Full history tracking allows reverting to any previous state.
- Canvas-based client-side processing (no server round-trips)
- Lazy loading for images
- Efficient state management with React hooks
- LocalStorage for settings persistence
- Optimized bundle with tree-shaking
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
- Object removal and background changes require OpenAI API key
- Local model processing requires TensorFlow.js or compatible ONNX runtime
- Image processing is limited to client capabilities on older browsers
- Undo history is session-based (not persisted)
- Database storage for editing history
- Batch processing for multiple images
- Custom filter support
- Mobile app with offline capabilities
- Real-time collaboration
- GPU acceleration with WebGL
npm run buildRun component examples:
npm run devNavigate to component examples in the UI.
MIT
For issues, feature requests, or questions, please contact support.
Built with:
- Radix UI & shadcn/ui for accessible components
- Lucide React for icons
- TailwindCSS for styling
- Canvas API for image processing