Loomi is a modern, dark-themed image toolkit built with a scalable full-stack architecture.
It is designed as a structured, professional-grade image processing platform providing a growing suite of high-performance image tools including conversion, compression, resizing, cropping, metadata removal, and ML-powered background removal.
Currently in active development.
- PNG, JPEG, WebP, AVIF, GIF, TIFF support
- Size comparison (before vs after)
- Memory-based processing
- Strict validation
- Quality-based compression
- Compression savings percentage
- Real-time processing feedback
- Crop images to custom dimensions
- Fast in-memory processing using Sharp
- Instant download of cropped image
- Resize images to custom width and height
- Maintains high-quality output
- Supports multiple image formats
- Removes EXIF metadata from images
- Protects privacy (GPS, camera info, timestamps)
- Instant metadata-free image download
- AI-based subject extraction
- Transparent PNG output
- Python FastAPI microservice
- Node β ML service communication
- Process multiple images simultaneously
- Supports compress, resize, convert, and metadata stripping
- Multi-file drag & drop upload
- Dynamic operation controls
- Downloads processed images as a ZIP archive
- Converts images into ASCII art
- Python-powered processing via FastAPI ML service
- Adjustable ASCII density and contrast mapping
- Copy ASCII output directly to clipboard
- Apply blur effects to selected regions
- Simple brush-based interaction
- Ideal for redacting sensitive information
- Apply visual filters to images
- Real-time preview
- Fast processing using Sharp
- Convert uploaded images into shareable QR codes
- Images are securely stored via Cloudinary
- QR links allow instant access to the uploaded image
- Download generated QR codes directly
- Next.js (App Router)
- TypeScript
- Tailwind CSS
- Framer Motion
- Modular tool-based UI architecture
- Express
- TypeScript
- Sharp (image processing engine)
- Multer (memory-based file handling)
- Cloudinary (image storage and public URL hosting)
- Layered architecture (routes β controllers β services β middleware)
- Axios (internal ML service communication)
- FastAPI
- Python
- Background removal model
- Isolated microservice architecture
- ASCII image generation service
Loomi/
βββ backend/
β βββ src/
β β βββ routes/
β β β βββ convert.routes.ts
β β β βββ compress.routes.ts
β β β βββ crop.routes.ts
β β β βββ resize.routes.ts
β β β βββ stripMetadata.routes.ts
β β β βββ background.routes.ts
β β β βββ bulk.routes.ts
β β β βββ blur.routes.ts
β β β βββ ascii.routes.ts
β β β βββ filters.routes.ts
β β β
β β βββ controllers/
β β β βββ convert.controller.ts
β β β βββ compress.controller.ts
β β β βββ crop.controller.ts
β β β βββ resize.controller.ts
β β β βββ stripMetadata.controller.ts
β β β βββ background.controller.ts
β β β βββ bulk.controller.ts
β β β βββ blur.controller.ts
β β β βββ ascii.controller.ts
β β β βββ filters.controller.ts
β β β
β β βββ services/
β β β βββ convert.service.ts
β β β βββ compress.service.ts
β β β βββ crop.service.ts
β β β βββ resize.service.ts
β β β βββ stripMetadata.service.ts
β β β βββ background.service.ts
β β β βββ bulk.service.ts
β β β βββ blur.service.ts
β β β βββ ascii.service.ts
β β β βββ filters.service.ts
β β β
β β βββ middleware/
β β β βββ upload.middleware.ts
β β βββ lib/
β β β βββ cloudinary.ts
β β β
β β βββ app.ts
β β βββ server.ts
β β
β βββ package.json
β
βββ frontend/
β βββ src/
β β βββ app/
β β β βββ tools/
β β β βββ converter/
β β β βββ compressor/
β β β βββ crop/
β β β βββ resize/
β β β βββ strip-metadata/
β β β βββ background-removal/
β β β βββ bulk/
β β β βββ ascii/
β β β βββ blur/
β β β βββ filters/
β β β
β β βββ components/
β β β βββ tools/
β β β β βββ ConverterTool.tsx
β β β β βββ CompressorTool.tsx
β β β β βββ CropTool.tsx
β β β β βββ ResizeTool.tsx
β β β β βββ MetadataStripperTool.tsx
β β β β βββ BackgroundRemovalTool.tsx
β β β β βββ BulkTool.tsx
β β β β βββ AsciiTool.tsx
β β β β βββ BlurTool.tsx
β β β β βββ FilterTool.tsx
β β β β
β β β βββ ui/
β β β
β β βββ lib/
β β
β βββ package.json
β
βββ ml-service/
βββ app.py
βββ requirements.txt
The backend follows a scalable layered architecture to allow future expansion .
Loomi uses a microservice architecture. You must run three services in separate terminals.
Create a .env file inside the backend folder.
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
cd ml-service
# create virtual environment (first time only)
python -m venv venv
# activate environment
# macOS / Linux:
source venv/bin/activate
# Windows:
venv\Scripts\activate
# install dependencies
pip install -r requirements.txt
# start FastAPI server
uvicorn app:app --reload --port 8000Runs on:
http://localhost:8000
Swagger docs:
http://localhost:8000/docs
cd backend
npm install
npm run devRuns on:
http://localhost:5000
cd frontend
npm install
npm run devRuns on:
http://localhost:3000
Start services in this order:
- ML service
- Backend
- Frontend
If the ML service is not running, background removal & image to ascii will return a 500 error.
Loomi is being developed as a growing collection of high-performance image tools.
The goal is to continuously expand the platform with new utilities for developers, creators, and everyday users.
- Image Converter
- Image Compressor
- Image Cropper
- Image Resizer
- Metadata Stripper
- Background Remover (ML Powered)
- Bulk Image Processing
- Image β ASCII Generator
- Image Blur Tool
- Image Filter Tool
- Image β QR Generator
- Palette Extractor
- Batch Format Conversion
- Image Watermarking
- Image Format Optimizer
- Image Color Adjustments
- EXIF Metadata Viewer
- Smart Image Upscaling (AI)
- Drag & Drop multi-file processing
- Public Loomi deployment
- Developer API
- CLI interface
- Plugin-based tool architecture
Loomi aims to become a modern, developer-grade image toolkit with:
- Clean architecture
- Strong validation
- Performance-focused processing
- ML-powered extensibility
- Microservice-ready backend
- Premium UI experience
This is not just an image tool β it is a modular image processing platform.
MIT
