LLM2SVG: Dataset analysis before model claims
This LLM2SVG fork contains SVG dataset utilities and an evaluation-oriented scaffold. The visible implementation is useful for inspecting examples and constraints; it does not establish a completed or trained text-to-SVG model.
Repository languagesPython 100%1
Shares calculated from GitHub Linguist bytes.
| Language | % | Bytes |
|---|---|---|
| Python | 49,062 |
Overview
Why it exists
Structured prompt engineering framework and Python validator generating crisp, valid SVG illustrations from LLM responses.
Best fit
Automated vector icon and diagram generation for design systems.
Getting started
These commands come from the repository documentation. They were not run during this review.
pip install cairosvg torch torchvisionRepository references
Excerpts from the repository’s guides, in their original language. Links open the inspected source revision.
Prerequisites and first run
Submission Requirements
README.md
Features and components 2
- Loading and constraints
- SVGAnalyzer composes SVGDataLoader and SVGConstraints. It enumerates samples, records file sizes and checks constraints. Dataset loading and validation are separate responsibilities.
- Dataset reports
- The analyzer counts element names and builds per-sample validation results, with a summary-report method returning a pandas DataFrame. Element counting uses a regular expression to tolerate malformed SVG text.
Architecture
The components and their connections remain available as text. The diagram adds an interactive view.
- SVG dataset files
- SVGDataLoader
- Element and size analysis
- Constraint checks
- Dataset report
Links verified in the repository.
Mermaid Interactive diagram (loads on open)
System overview of the components and connections verified in the repository.

flowchart LR
n0["SVG dataset files"]
n1["SVGDataLoader"]
n2["Element and size analysis"]
n3["Constraint checks"]
n4["Dataset report"]
n0 --> n1
n1 --> n2
n1 --> n3
n2 --> n4
n3 --> n4
Text version of the diagram
- SVG dataset files → SVGDataLoader
- SVGDataLoader → Element and size analysis
- SVGDataLoader → Constraint checks
- Element and size analysis → Dataset report
- Constraint checks → Dataset report
Follow one path through the code
Follow validate_all_svgs and compare it with analyze_elements. Passing the declared constraints and having a plausible set of element names are different checks; neither establishes visual similarity to a text prompt.
Types and file structure
5 declared types, with 5 in the base-relationship overview.
Type diagram
classDiagram
direction TB
class t61fa9a7ee491["SVGDataLoader"] {
__init__()
get_train_descriptions()
get_test_descriptions()
_load_descriptions()
}
class t30b1f34dc117["SVGAnalyzer"] {
__init__()
count_svgs()
get_svg_sizes()
analyze_elements()
}
class td0970883b50c["SVGConstraints"] {
validate_svg()
}
class tae5163df548f["SVGDataset"] {
__init__()
__len__()
__getitem__()
}
class t7bf894fe8630["TextParser"] {
__init__()
extract_colors()
extract_shapes()
extract_patterns()
}
class b4e2a6e40a537["Dataset"] {
<<unresolved_base>>
}
b4e2a6e40a537 <|-- tae5163df548f
Unresolved bases remain labelled; full signatures are not reconstructed.
Type index
SVGDataLoader(class) ·utils/data_loader.py:7Methods in the overview:
__init__, get_train_descriptions, get_test_descriptions, _load_descriptions.SVGAnalyzer(class) ·utils/svg_analyzer.py:13Methods in the overview:
__init__, count_svgs, get_svg_sizes, analyze_elements.SVGConstraints(class) ·utils/svg_constraints.py:7Methods in the overview:
validate_svg.SVGDataset(class) ·utils/svg_dataset.py:9Methods in the overview:
__init__, __len__, __getitem__.Declared bases:
Dataset.TextParser(class) ·utils/text_parser.py:4Methods in the overview:
__init__, extract_colors, extract_shapes, extract_patterns.
Reference
8 / 8 eligible files read (286 in the tree); 0 oversized, 0 failed reads and 0 syntax diagnostics.
What the scan covers
Known dependency/build folders, credential files and binaries are excluded. The scan covers READMEs, recognized manifests and parser-supported source files.
Linguist statistics cover the whole repository and may include other languages.
File map
flowchart TD
root["LLM2SVG"]
f0["utils/data_loader.py"]
root --> f0
f1["utils/svg_analyzer.py"]
root --> f1
f2["utils/svg_constraints.py"]
root --> f2
f3["README.md"]
root --> f3
f4["utils/__init__.py"]
root --> f4
f5["utils/svg_dataset.py"]
root --> f5
f6["utils/svg_utils.py"]
root --> f6
f7["utils/text_parser.py"]
root --> f7