Skip to main content

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.

PyPI version License: MIT

✨ Features

  • Background Removal: AI-powered background removal using rembg with ONNX runtime.
  • Accurate SVG Conversion: High-quality vector tracing using potrace with 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 performance
  • REMBG_MODEL: Choose between u2net, 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

suresh_svg_converter-0.2.1.tar.gz (25.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

suresh_svg_converter-0.2.1-py3-none-any.whl (25.1 kB view details)

Uploaded Python 3

File details

Details for the file suresh_svg_converter-0.2.1.tar.gz.

File metadata

  • Download URL: suresh_svg_converter-0.2.1.tar.gz
  • Upload date:
  • Size: 25.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for suresh_svg_converter-0.2.1.tar.gz
Algorithm Hash digest
SHA256 029d0b0cca40e4d651316034252234102df66f9fd3cb34789b6b59cfca6094dc
MD5 d3080f5afe971d51abde6cfc279f7373
BLAKE2b-256 a6be10949f2807c5adf0928fd821ec1ae520fb02aae1385e6d450ff6a71b115d

See more details on using hashes here.

File details

Details for the file suresh_svg_converter-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for suresh_svg_converter-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 33b1a7c16123e0ffce123c423d183a5367dd8ef563bae95ca675be4337f490fd
MD5 171fbf3d2394eaf10f3d83918a176aa0
BLAKE2b-256 538847a5c7390cd091d2440be1118d5e14df3d720da51afbc308c2517edecf80

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page