Skip to main content

A png drawing to svg converter

Project description

sketch-vectorization

Goal

The goal of this project is to implement the following paper: https://www-sop.inria.fr/reves/Basilic/2016/FLB16/fidelity_simplicity.pdf

We also implemented several new ideas, such as a convolutional neural network with synthetic data augmentation for preprocessing.

Demo

Guess what: the entire library can run in your browser !

If you want a guided tour of how the library works, go here:

If you just want to test it for yourself, with your own drawings, go here:

Install

The library is also available as a pip package:

pip install "sketchy-svg[onnx]"
# or use uv: uv add "sketchy-svg[onnx]"

There is no command line interface. You can easily build your own, to get inspiration look at src/sketchy_svg/viz inside the class Demo

Use locally

To install the dependencies, install uv and run:

uv sync --extra onnx 

To launch the notebooks, run uv run marimo edit ., it should open the notebooks in your browser.

Train the CNN

The CNN denoiser can be trained from notebooks/cnn.py.

1. Install training dependencies

On a machine with a GPU (Linux, default CUDA torch):

uv sync --group train

On a CPU-only machine (e.g. your local machine):

uv sync --group train --extra cpu

2. Run the notebook

uv run marimo edit notebooks/cnn.py

Set USE_RAY = False to train locally, or USE_RAY = True to offload to a remote Ray cluster (set RAY_ADDRESS accordingly). The trained model is exported to src/sketchy_cnn/model.onnx at the end of the notebook.

How the SVG dataset is downloaded

data/svg_dataset.csv is tracked in git so no download is needed in most cases.

If you need to refresh it, the dataset comes from OmniSVG/MMSVG-Icon on HuggingFace. Create a token at https://huggingface.co/settings/tokens and add it to a .env file at the project root:

HF_TOKEN=hf_...

Then use the download button in notebooks/svg_dataset.py.

Documentation

If you want, you can read the Presentation

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

sketchy_svg-0.2.6.tar.gz (270.6 kB view details)

Uploaded Source

Built Distribution

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

sketchy_svg-0.2.6-py3-none-any.whl (272.0 kB view details)

Uploaded Python 3

File details

Details for the file sketchy_svg-0.2.6.tar.gz.

File metadata

  • Download URL: sketchy_svg-0.2.6.tar.gz
  • Upload date:
  • Size: 270.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sketchy_svg-0.2.6.tar.gz
Algorithm Hash digest
SHA256 1bce4f5c90886e79f9e488fd60d6137d077aa20f1faf1b55e8f30d7e482b9a7b
MD5 fd29cc16779352750ac0ed9a8bd3d6a7
BLAKE2b-256 0575196639784b13daefa6ba13c17b09f42f3c0c2433874f0acee838f4690307

See more details on using hashes here.

Provenance

The following attestation bundles were made for sketchy_svg-0.2.6.tar.gz:

Publisher: publish.yml on rambip/sketch-vectorization

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sketchy_svg-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: sketchy_svg-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 272.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sketchy_svg-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 264731973fa2a10ef0d2300da73cb979b5ab57b5e49cb870bbd9b9a28975c19f
MD5 014758a610c00a65d6e7bed90352f17f
BLAKE2b-256 a27818ef4b7b6dff5e640db741473f834e34db9dedf42a481303fc059ff72df0

See more details on using hashes here.

Provenance

The following attestation bundles were made for sketchy_svg-0.2.6-py3-none-any.whl:

Publisher: publish.yml on rambip/sketch-vectorization

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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