Imover is a powerful, intuitive web application that allows you to effortlessly remove backgrounds from your images and apply a wide range of professional edits. Built with a modern tech stack, it provides a seamless user experience for batch processing and creative image manipulation.

- Advanced Background Removal: Utilizes the powerful
rembglibrary to accurately remove backgrounds from any image. - Multiple Background Options:
- Transparent: Keep the background transparent (PNG).
- Solid Colors: Choose from a palette of solid colors.
- Gradients: Apply beautiful linear gradients.
- Custom Image: Upload your own image to use as a new background.
- Professional Editing Tools:
- Drop Shadow: Add depth with a customizable drop shadow (blur, offset, and color).
- Image Adjustments: Fine-tune your images with brightness, contrast, and saturation controls.
- Batch Processing: Upload and process multiple images at once with the smart image queue.
- Interactive Compare Mode: Use the draggable slider to instantly compare the original and processed images.
- Flexible Download Options: Download a single processed image or get all of them in a convenient ZIP file.
- Modern & Responsive UI: A sleek, dark-themed interface built with Material-UI, featuring a drag-and-drop zone for easy uploads.
| Area | Technology |
|---|---|
| Frontend | React, Vite, Material-UI (MUI) |
| Backend | FastAPI (Python), Pillow (PIL) |
| Core AI | rembg for background subtraction |
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
git clone https://github.com/your-username/imover.git
cd imoverNavigate to the backend directory, create a virtual environment, and install the required Python packages.
# Navigate to the backend folder
cd backend
# Create and activate a virtual environment
# On Windows:
python -m venv venv
venv\Scripts\activate
# On macOS/Linux:
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txtIn a new terminal, navigate to the frontend directory and install the required Node.js packages.
# Navigate to the frontend folder from the root directory
cd frontend
# Install dependencies
npm installYou need to have both the backend and frontend servers running simultaneously.
-
Start the Backend Server: In your terminal with the
backenddirectory active:uvicorn main:app --reload
The API will be running at
http://127.0.0.1:8000. -
Start the Frontend Server: In your terminal with the
frontenddirectory active:npm run dev
The application will be accessible at
http://localhost:5173(or another port if 5173 is busy).
Now, you can open your browser and start using Imover!
- Upload Images: Drag and drop your image files onto the main panel or click the "Upload" button.
- Select an Image: Your images will appear in the queue at the bottom. Click on an image to select it for editing and preview.
- Use the Tools Panel: On the right, configure your desired settings:
- Choose a background (transparent, color, gradient, or custom image).
- Add and adjust a drop shadow.
- Fine-tune brightness, contrast, and saturation.
- Process Images: Click the "Process Queue" button. The application will process all images that have not yet been processed.
- Compare & Download:
- Once an image is processed, an interactive slider will appear. Drag it to compare the before and after.
- Click "Download" to save the currently selected image.
- Click "Download All" to get a ZIP file containing all the successfully processed images from the queue.
The backend exposes a single primary endpoint for all image processing tasks.
This endpoint accepts multipart/form-data with the following fields:
file: The image file to be processed.background_type: ('color','gradient','image')background_value: The value for the background (e.g.,'#FFFFFF','linear-gradient(...)', or the filename of the custom background image).custom_background_image: (Optional) The custom background image file, required ifbackground_typeis'image'.shadow_blur: (Integer) The blur radius for the drop shadow.shadow_offset_x: (Integer) The horizontal offset for the shadow.shadow_offset_y: (Integer) The vertical offset for the shadow.shadow_color: (String) The hex color code for the shadow (e.g.,'#000000').brightness: (Float) Brightness enhancement factor (1.0 is original).contrast: (Float) Contrast enhancement factor (1.0 is original).saturation: (Float) Saturation enhancement factor (1.0 is original).
It returns the processed image as a PNG file.