svgdreamer / README.md
jree423's picture
Upload folder using huggingface_hub
c1b33e9 verified
---
title: SVGDreamer
emoji: 🌟
colorFrom: green
colorTo: blue
sdk: custom
app_file: handler.py
pinned: false
license: mit
tags:
- text-to-svg
- vector-graphics
- diffusion
- multi-particle
- art
pipeline_tag: text-to-image
---
# SVGDreamer: Text-Guided SVG Generation with Diffusion Model
SVGDreamer is an advanced text-to-SVG generation model that creates high-quality vector graphics using a multi-particle optimization approach. It generates multiple SVG variants simultaneously, allowing for diverse and creative outputs.
## Model Description
SVGDreamer leverages Stable Diffusion to guide the generation of vector graphics through a novel multi-particle system. The model optimizes multiple SVG representations in parallel, enabling exploration of different artistic interpretations of the same text prompt.
## Key Features
- **Multi-Particle Generation**: Creates multiple SVG variants simultaneously
- **Style Control**: Supports different artistic styles (iconography, pixel art, sketch, painting)
- **High Quality**: Produces detailed and aesthetically pleasing vector graphics
- **Flexible Parameters**: Extensive customization options for fine-tuning output
## Usage
### Direct API Call
```python
import requests
API_URL = "https://api-inference.huggingface.co/models/jree423/svgdreamer"
headers = {"Authorization": "Bearer YOUR_HF_TOKEN"}
def query(payload):
response = requests.post(API_URL, headers=headers, json=payload)
return response.json()
output = query({
"inputs": "a majestic eagle soaring through clouds",
"parameters": {
"n_particle": 6,
"num_iter": 1000,
"guidance_scale": 7.5,
"style": "iconography",
"width": 224,
"height": 224,
"seed": 42
}
})
```
### Using the Inference Client
```python
from huggingface_hub import InferenceClient
client = InferenceClient("jree423/svgdreamer")
result = client.post(
json={
"inputs": "a cyberpunk cityscape at night",
"parameters": {
"n_particle": 4,
"style": "pixel_art",
"guidance_scale": 8.0
}
}
)
```
## Parameters
- **n_particle** (int, default: 6): Number of SVG particles to generate. Each particle represents a different interpretation of the prompt.
- **num_iter** (int, default: 1000): Number of optimization iterations. More iterations improve quality but take longer.
- **guidance_scale** (float, default: 7.5): Controls how closely the generation follows the text prompt.
- **width** (int, default: 224): Output SVG width in pixels.
- **height** (int, default: 224): Output SVG height in pixels.
- **seed** (int, default: 42): Random seed for reproducible results.
- **style** (string, default: "iconography"): Style of the generated SVG. Options: "iconography", "pixel_art", "sketch", "painting".
## Output Format
The model returns a list of JSON objects, one for each particle, containing:
- `particle_id`: Unique identifier for the particle
- `svg`: The generated SVG content as a string
- `svg_base64`: Base64 encoded SVG for easy transmission
- `prompt`: The input text prompt
- `style`: The style used for generation
- `parameters`: The parameters used for generation
## Styles
### Iconography
Clean, minimalist vector graphics suitable for icons and logos.
- Example: "a simple house icon"
### Pixel Art
Retro-style graphics with pixelated aesthetics.
- Example: "a pixel art character"
### Sketch
Hand-drawn style with organic lines and artistic flair.
- Example: "a sketch of a mountain landscape"
### Painting
Rich, painterly style with complex color gradients.
- Example: "an oil painting of a sunset"
## Examples
### Nature Scenes
- "a forest with tall pine trees"
- "ocean waves crashing on rocks"
- "a field of sunflowers under blue sky"
### Characters and Objects
- "a friendly robot character"
- "a vintage bicycle"
- "a magical wizard casting spells"
### Abstract Art
- "geometric patterns in bright colors"
- "flowing organic shapes"
- "mandala design with intricate details"
## Technical Details
- **Base Model**: Stable Diffusion 2.1
- **Framework**: PyTorch + Diffusers
- **Vector Rendering**: DiffVG (differentiable vector graphics)
- **Optimization**: Multi-particle VPSD (Vector Particle-based Score Distillation)
- **Parallel Processing**: Simultaneous optimization of multiple SVG representations
## Citation
```bibtex
@inproceedings{xing2024svgdreamer,
title={SVGDreamer: Text Guided SVG Generation with Diffusion Model},
author={Xing, XiMing and others},
booktitle={CVPR},
year={2024}
}
```
## License
This model is released under the MIT License.