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.7.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.7-py3-none-any.whl (272.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sketchy_svg-0.2.7.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.7.tar.gz
Algorithm Hash digest
SHA256 31bf9c8315fdeb938c70f61cb3e223dc9d1a87a99a0f8834f9d8fe94b6a77361
MD5 d9c2f0065a0ad97fa58d78960b24e31a
BLAKE2b-256 b3c2ecb04ac4acfa012b7eaf1973370096544c7a496cd7dfe967c37c11367169

See more details on using hashes here.

Provenance

The following attestation bundles were made for sketchy_svg-0.2.7.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.7-py3-none-any.whl.

File metadata

  • Download URL: sketchy_svg-0.2.7-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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 e79d3977c930bba83c106498d9512cef6dc45ad0513eac49bf66f408753d2948
MD5 21d7d1b6c106649442d26ac412167e21
BLAKE2b-256 44299515aed51a3b3761c1a991c3bd2e517f0bba0388aef2b313592d93631c72

See more details on using hashes here.

Provenance

The following attestation bundles were made for sketchy_svg-0.2.7-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