A professional Image to SVG converter with background removal and multi-color support.
Project description
title: Suresh SVG Converter emoji: 🖼️ colorFrom: blue colorTo: indigo sdk: docker app_port: 7860
🖼️ Suresh SVG Converter
A professional, production-ready Python package for removing backgrounds from images and converting them to high-quality multi-color SVG format.
✨ Features
- Background Removal: AI-powered background removal using
rembgwith ONNX runtime. - Accurate SVG Conversion: High-quality vector tracing using
potracewith multi-color support. - Color Quantization: Automatically detects dominant colors and creates stratified SVG layers.
- Dual Interface: Full-featured Command Line Interface (CLI) and a beautiful FastAPI web UI.
- CPU Optimized: Runs entirely on CPU with no GPU dependency.
- Fast Performance: Optimized for speed with lazy model loading and K-Means quantization.
- Batch Processing: Process multiple images at once via CLI.
📋 Requirements
- Python 3.9+
- 2GB+ RAM recommended for high-resolution processing.
🚀 Installation
Install the package directly from PyPI:
pip install suresh-svg-converter
🖥️ Usage
Command Line Interface (CLI)
Once installed, use the suresh-svg-converter command anywhere:
Basic usage:
suresh-svg-converter input.jpg
With options:
# Convert with 16 colors and remove background
suresh-svg-converter input.png --remove-bg --colors 16
# Custom output directory
suresh-svg-converter *.png -o ./results
# Batch process multiple files
suresh-svg-converter img1.jpg img2.webp img3.png
CLI Options:
--remove-bg, -r: Remove background (default: enabled)--colors, -c: Number of colors for SVG tracing (default: 8)--output-dir, -o: Custom output directory--max-dim: Maximum image dimension for processing (default: 4096)--verbose, -v: Enable verbose logging
Web Interface
Launch the interactive web UI to drag and drop images:
python -m suresh_svg_converter.main
Or use uvicorn directly:
# Locally
uvicorn suresh_svg_converter.main:app --host 0.0.0.0 --port 8000
# On Hugging Face (Port 7860)
uvicorn suresh_svg_converter.main:app --host 0.0.0.0 --port 7860
Then open http://localhost:8000 in your browser.
Programmatic API
Use the converter in your own Python projects:
from suresh_svg_converter.services.svg_convert import SVGConverter
from suresh_svg_converter.services.bg_remove import BackgroundRemover
from PIL import Image
# Load image
img = Image.open("photo.jpg")
# Remove background
remover = BackgroundRemover()
img_no_bg = remover.remove_background(img)
# Convert to SVG with 12 colors
converter = SVGConverter()
svg_path = converter.convert(img_no_bg, "output.svg", num_colors=12)
print(f"Vector saved to: {svg_path}")
📁 Project Structure
suresh_svg_converter/
├── cli.py # Main CLI entry point
├── main.py # FastAPI web application
├── config.py # Configuration settings
├── services/
│ ├── bg_remove.py # Background removal service
│ ├── svg_convert.py # Multi-color SVG conversion
│ └── image_utils.py # Image preprocessing
├── routes/
│ └── upload.py # API routes
└── models/
└── image_models.py # Data schemas
⚙️ Configuration
You can customize the default behavior in suresh_svg_converter/config.py:
SVG_DEFAULT_COLORS: Default number of color layers (default: 8)MAX_IMAGE_DIMENSION: Resize limit for performanceREMBG_MODEL: Choose betweenu2net,u2netp, etc.
📝 License
MIT License - See LICENSE file for details.
🙏 Acknowledgments
Built with ❤️ for the developer community.
s u r e s h - s v g - c o n v e r t e r
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file suresh_svg_converter-0.2.0.tar.gz.
File metadata
- Download URL: suresh_svg_converter-0.2.0.tar.gz
- Upload date:
- Size: 25.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fc5d244ef4a1088c1e305518e35e110fca47c9c2809a5a474bc7ca141d3f47c
|
|
| MD5 |
148737e3ced0352467ad7d50b94a8789
|
|
| BLAKE2b-256 |
6b071bb160280d801cb67c97e6809876919761c274c1b88a4ea5c71cf5b2964e
|
File details
Details for the file suresh_svg_converter-0.2.0-py3-none-any.whl.
File metadata
- Download URL: suresh_svg_converter-0.2.0-py3-none-any.whl
- Upload date:
- Size: 24.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6da6c5f5594b3b921b5acbfee64b26e37feae09e1a587530ad56671595aea98
|
|
| MD5 |
bb7a1ff2aa7efa91ab501fd3718dc722
|
|
| BLAKE2b-256 |
d39eb60ff7b397bc7d77dca887b248f772c4c9802427f3e0501ab3f6c4920521
|