YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

πŸ–ΌοΈ 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:

uvicorn suresh_svg_converter.main:app --host 0.0.0.0 --port 8000

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. # suresh-svg-converter

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support