New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Process and convert .svg files in Image
#6500
Conversation
🪼 branch checks and previews
Install Gradio from this PR pip install https://gradio-builds.s3.amazonaws.com/b8d34e0af2b3987bc232adebed82b8ab4158a6ef/gradio-4.5.0-py3-none-any.whl Install Gradio Python Client from this PR pip install "gradio-client @ git+https://github.com/gradio-app/gradio@b8d34e0af2b3987bc232adebed82b8ab4158a6ef#subdirectory=client/python" |
🦄 change detectedThis Pull Request includes changes to the following packages.
With the following changelog entry.
Maintainers or the PR author can modify the PR title to modify this entry.
|
Thanks @hannahblair for taking this on. We've been very careful about adding more Python dependencies (actually trying to cut down on our existing ones). This use case is a little too niche to add the
|
@abidlabs! Ok good to know! I wasn't 100% if this was the right way to go. I'll consider both options and make the changes! |
There are some ML models whose I/O format is SVG, not raster images, such as arXiv:2306.06094, so allowing passing SVG files directly would be an option which helps such use cases. |
In light of this, I've removed the svg to png conversion and tweaked the logic just to return the SVG file path. You can upload an SVG and it will retain that format in the output. WDYT? |
Works great! Thanks so much @hannahblair |
Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
Description
We were using PIL to process images in gr.Image() but PIL doesn't support svg files. I've added a lib called cairosvg to allow us to process svg files and it converts the file to png in the preprocess method.
Closes: #6489
🎯 PRs Should Target Issues
Before your create a PR, please check to see if there is an existing issue for this change. If not, please create an issue before you create this PR, unless the fix is very small.
Not adhering to this guideline will result in the PR being closed.
Tests
PRs will only be merged if tests pass on CI. To run the tests locally, please set up your Gradio environment locally and run the tests:
bash scripts/run_all_tests.sh
You may need to run the linters:
bash scripts/format_backend.sh
andbash scripts/format_frontend.sh