OmniSVG
[NeurIPS 2025] OmniSVG is the first family of end-to-end multimodal SVG generators that leverage pre-trained Vision-Language Models (VLMs), capable of generating complex and detailed SVGs, from simple icons to intricate anime characters.
Install / Use
npx skills add OmniSVG/OmniSVGInstalls into whichever agent you are using.
README
🔥🔥🔥 News !!
- [2026/03/02] 🔥 We have released the first Lottie generation model -- OmniLottie, checkout OpenVGLab/OmniLottie
- [2025/12/31] 👋 We have released the training code of OmniSVG, Check out OpenVGLab/OmniSVG-Train
- [2025/12/22] We have updated MMSVG-Icon (264K→904K) and MMSVG-Illustration (66K→255K) datasets with enhanced captions and PNG previews! Check out MMSVG-Icon and MMSVG-Illustration.
- [2025/12/02] We have released the OmniSVG1.1_8B weights and updated OmniSVG1.1_4B model weights! Check out OmniSVG1.1_8B and OmniSVG1.1_4B.
- [2025/12/02] We have released MMSVGBench benchmark dataset and evaluation code! Check out MMSVGBench and Evaluation.
- [2025/09/18] OmniSVG is accepted to NeurIPS 2025🔥! See you in San Diego!
- [2025/07/22] 👋 We have released the Huggingface Demo. 🤗Demo.
- [2025/07/22] 👋 We have released the inference code and model weight of MMSVG-Icon and MMSVG-Illustration dataset. 🤗Weight.
- [2025/04/09] 👋 Release MMSVG-Icon and MMSVG-Illustration 🤗Dataset.
- [2025/04/09] 👋 Upload paper and init project. Read
🧩 Community Contributions
If you are developing / using OmniSVG in your projects, or you want to contribute to OmniSVG, please let us know 🎉.
- If you find data issues when using MMSVG dataset, please drop an issue in this form.
- 👋 OmniSVG ComfyUI Plugin by @smthemex ComfyUI_OmniSVG.
📑 Open-source Plan
- [x] Project Page & Technical Report
- [x] MMSVG-Icon and MMSVG-Illustration Dataset Release
- [x] Inference Code & Model Weight of MMSVG-Icon and MMSVG-Illustration Dataset
- [x] Online Demo (Gradio deployed on Huggingface)
- [x] Model Weight of OmniSVG1.1_8B Release
- [x] Model Weight of OmniSVG1.1_4B Release
- [x] MMSVGBench Benchmark & Evaluation Code Release
1. Introduction
OmniSVG is the first family of end-to-end multimodal SVG generators that leverage pre-trained Vision-Language Models (VLMs), capable of generating complex and detailed SVGs, from simple icons to intricate anime characters. We also introduce MMSVG-2M, a multimodal dataset with two million richly annotated SVG assets, along with a standardized evaluation protocol for conditional SVG generation tasks.
2. Models Downloading
| Model | Download link | Size | Update date |
|-----------------------------|-------------------------------|------------|------|
| OmniSVG1.1_8B | Huggingface | 17.2 GB | 2025-12-02 |
| OmniSVG1.1_4B | Huggingface | 7.69 GB | 2025-12-02 |
| OmniSVG-3B | Huggingface | 8.49 GB | 2025-07-22 |
3. Dependencies and Installation
The dependencies configured according to the following instructions provide an environment equipped for inference
3.1 Clone the Repository
git clone https://github.com/OmniSVG/OmniSVG.git
cd OmniSVG
3.2 Create Conda Environment
Create and activate a new conda environment with Python 3.10:
conda create -n omnisvg python=3.10
conda activate omnisvg
3.3 Install Dependencies
System Dependencies
Before installing Python packages, you need to install Cairo library which is required by CairoSVG in our dependencies:
macOS:
brew install cairo
Linux (Ubuntu/Debian):
sudo apt update
sudo apt install libcairo2 libcairo2-dev
Note: Installing Cairo system library beforehand helps prevent potential build errors when installing
CairoSVGvia pip.
Python Dependencies
We have tested our environment with CUDA 12.1. You can install CUDA 12.1 by following the CUDA Toolkit installation guide.
Install PyTorch with CUDA 12.1 support:
pip install torch==2.3.0+cu121 torchvision==0.18.0+cu121 --index-url https://download.pytorch.org/whl/cu121
Install remaining dependencies:
pip install -r requirements.txt
4. Inference Script
| | GPU Memory Usage | Time per 256/512/1024/2048/4096 tokens | | ------------------------------------------------ | ---------------- | ----------------- | | OmniSVG1.1_8B | 26G | 5.38/9.02/20.11/40.34/98.11 seconds | | OmniSVG1.1_4B | 17G | 4.08/8.68/18.07/37.51/82.70 seconds | | OmniSVG-3B | 17G | 4.08/8.68/18.07/37.51/82.70 seconds |
<font color="red">Note: The inference time shown here is measured per OmniSVG SVG tokens, while the inference time reported in our paper is measured per XML code tokens for fair comparison with baseline methods.</font>
Quick Start
Download Model Weights
First, install the Hugging Face CLI tool:
pip install huggingface-hub
Download the model from Hugging Face:
# Download OmniSVG1.1-8B
huggingface-cli download OmniSVG/OmniSVG1.1_8B --local-dir /PATH/TO/OmniSVG1.1_8B
# Download OmniSVG1.1-4B
huggingface-cli download OmniSVG/OmniSVG1.1_4B --local-dir /PATH/TO/OmniSVG1.1_4B
# Download OmniSVG-3B (legacy)
huggingface-cli download OmniSVG/OmniSVG --local-dir /PATH/TO/OmniSVG-3B
Text-to-SVG Generation
Basic usage - Generate SVG from txt file:
python inference.py --task text-to-svg --input prompts.txt --output ./output_text --save-all-candidates
Use 4B model:
python inference.py --task text-to-svg --input prompts.txt --output ./output_text --model-size 4B --save-all-candidates
Generate more candidates and save PNG:
python inference.py --task text-to-svg --input prompts.txt --output ./output_text \
--num-candidates 8 --save-png --save-all-candidates
Custom generation parameters:
python inference.py --task text-to-svg --input prompts.txt --output ./output_text \
--temperature 0.5 --top-p 0.9 --top-k 50 --repetition-penalty 1.05
Use local model:
python inference.py --task text-to-svg --input prompts.txt --output ./output_text \
--model-path /path/to/qwen --weight-path /path/to/omnisvg
Image-to-SVG Generation
python inference.py --task image-to-svg --input ./examples --output ./output_image --save-all-candidates
Interactive Demo
We provide an interactive generation interface using Gradio:
-
Local Deployment
python app.py -
Online Demo
Try our live demo on Hugging Face Spaces
5. Evaluation
We provide MMSVGBench for standardized evaluation of SVG generation models.
Download MMSVGBench:
huggingface-cli download OmniSVG/MMSVGBench --repo-type dataset --local-dir /PATH/TO/MMSVGBench
Benchmark Overview
MMSVGBench is a purely synthetic benchmark where all prompts and images are generated using GPT models, ensuring the data is unseen during model training for fair generalization evaluation. The generation procedure MMSVGBench's prompt is logged, for example the text2svg prompt log.
| Task | Complexity Level | Samples | Description | |------|------------------|---------|-------------| | Text-to-SVG | Icon | 150 | Simple icons (1-2 elements) | | Text-to-SVG | Illustration | 150 | Complex illustrations (1-3 interacting elements) | | Image-to-SVG | Icon | 150 | GPT-4o generated icon images | | Image-to-SVG | Illustration | 150 | GPT-4o generated illustration images |
**Key Advantages of Syntheti
Related Skills
node-connect
385.6kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
flutter-development-guidelines-cursorrules-prompt-file
40.5kCursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
commit-push-pr
140.7kCommit, push, and open a PR
