SVGFaith: A Two-Layer Meta-Evaluation of Faithfulness Metrics for Text-to-SVG Generation
Organizations: Tencent Youtu Lab · Visual Computing Group, Beijing
Abstract
Text-to-SVG systems are commonly evaluated by applying raster-image metrics to rasterised outputs, yet whether these scores capture fine-grained prompt faithfulness remains unclear. We introduce SVGFaith, a two-layer meta-evaluation framework in which the more faithful candidate of each pair is determined by construction or by human judgment. SVGFaith-Diagnostic contains 1,842 controlled contrastive pairs across eight capability axes, split evenly between two directions: two renderings compared against one prompt, and two descriptions compared against one rendering. SVGFaith-Arena contains 1,327 human-annotated comparisons of real generator outputs. On SVGFaith-Diagnostic, CLIP and three other image--text embedding metrics reach at least 0.789 pairwise accuracy on object identity but at most 0.672 on spatial relations and attribute binding, where chance is 0.5. We further introduce SVGFaith-Score, an interpretable pointwise metric. A domain-tuned decomposer turns each prompt into a dependency graph of atomic visual requirements, a visual question answering model scores whether each requirement is satisfied, and a requirement's score is discounted when its prerequisites score low. In addition to the overall score, the per-requirement scores show which requirements are judged unsatisfied and which inherit discounts from their prerequisites. SVGFaith-Score significantly outperforms all nine baselines, including a Qwen3.5-122B-A10B judge, on Arena and in both Diagnostic directions. Code and data: https://github.com/Yukinonooo/SVGFaith.
Figures & tables
| Axis | Construction route | Image-based | Text-based | Total |
|---|---|---|---|---|
| Negation | Generative | 123 | 123 | 246 |
| Attribute binding | Generative | 121 | 122 | 243 |
| Comparative size | Generative | 124 | 124 | 248 |
| Spatial relation | Generative | 123 | 122 | 245 |
| Object identity | Hard-negative retrieval | 123 | 118 | 241 |
| Counting | Instance deletion + generative | 103 | 100 | 203 |
| Arena | Diagnostic (image) | Diagnostic (text) | ||||
| Method | ||||||
| Image–text embedding | ||||||
| CLIP-L/14 | 0.769 | 0.699 | 0.660 | 0.470 | 0.658 | 0.328 |
| SigLIP-L/16-384 | 0.823 | 0.775 | 0.750 | 0.517 | 0.745 | 0.462 |
| Long-CLIP-L/14 | 0.791 | 0.739 | 0.713 | 0.481 | 0.754 | 0.376 |
| Qwen3-VL-Embedding-8B | 0.861 | 0.843 | 0.777 | 0.717 | 0.799 | 0.668 |
| Decomposition | VQA backend | Win/tie/loss | Accuracy | vs. final |
|---|---|---|---|---|
| None (holistic query) | Qwen3.5-9B | 0.850 | ||
| Qwen3.5-9B | Qwen3.5-9B | 0.073 | ||
| Qwen3.5-397B-A17B | Qwen3.5-9B | 0.876 | ||
| SVGFaith-Decomposer | SVGFaith-Decomposer | 0.883 | ||
| SVGFaith-Decomposer | Qwen3.5-9B | 0.880 |
Appendix figures & tables12 assets
Supplementary material from the paper’s appendix.
Appendix
| Stage | Scope | Count |
|---|---|---|
| Source pools | SArena icon / illus.; SVG-Sophia | 6,013 / 2,001 / 49,691 |
| Generative, passing visibility gate | spatial relation | 300 272 |
| attribute binding | 160 153 | |
| negation | 160 160 | |
| comparative size | 160 156 | |
| counting | 75 59 |
| Gate | Rule | Removed | Remaining |
|---|---|---|---|
| Raw pairs, over 15,330 candidate SVGs | 7,665 | ||
| Render | Either side fails to render or is blank | 282 | 7,383 |
| Junk | Qwen3.6-27B marks both candidates unjudgeable | 621 | 6,762 |
| Near-duplicate | Same-model pair, DINOv2 CLS cosine | 365 | 6,397 |
| Stage | Pairs |
| Annotated in the first round | 2,000 |
| Three-way disagreement, sent to expert adjudication | 68 |
| of which assigned an expert-adjudicated winner | 40 |
| of which judged indeterminable and left unlabelled | 28 |
| Labelled after adjudication | 1,972 |
| of which majority ties, excluded from evaluation | 620 |
| Method | All ( ) | Excluding adjudicated ( ) |
|---|---|---|
| CLIP-L/14 | 0.699 | 0.707 |
| SigLIP-L/16-384 | 0.775 | 0.782 |
| Long-CLIP-L/14 | 0.739 | 0.747 |
| Qwen3-VL-Embedding-8B | 0.843 | 0.852 |
| PickScore v1 | 0.605 | 0.615 |
| HPS v2.1 | 0.769 | 0.776 |
| Judge configuration | Arena | Diagnostic (image) | Diagnostic (text) |
|---|---|---|---|
| Qwen3.5-9B, ten-point | 0.707/22.7 | 0.823/17.1 | 0.805/18.3 |
| Qwen3.5-9B, five-point | 0.655/27.1 | 0.771/22.1 | 0.748/24.3 |
| Qwen3.5-122B-A10B, five-point | 0.754/17.9 | 0.902/ 0 8.6 | 0.857/12.7 |
| Method | Negation ( ) | Attribute binding ( ) | Comparative size ( ) | Spatial relation ( ) | Object identity ( ) | Counting ( ) | Part completeness ( ) | Dense long prompt ( ) |
|---|---|---|---|---|---|---|---|---|
| CLIP-L/14 | 0.846/0.683 | 0.628/0.355 | 0.508/0.379 | 0.455/0.195 | 0.789/0.756 | 0.612/0.291 | 0.693/0.505 | 0.748/0.592 |
| SigLIP-L/16-384 | 0.780/0.675 | 0.562/0.157 | 0.597/0.347 | 0.626/0.195 | 0.976/0.951 | 0.893/0.621 | 0.782/0.574 | 0.786/0.612 |
| Long-CLIP-L/14 | 0.772/0.610 | 0.669/0.223 | 0.468/0.282 | 0.577/0.228 | 0.911/0.878 | 0.641/0.408 | 0.812/0.683 | 0.854/0.534 |
| Qwen3-VL-Embedding-8B | 0.756/0.707 | 0.661/0.579 | 0.605/0.516 | 0.626/0.512 | 0.927/0.902 | 0.874/0.845 | 0.871/0.832 | 0.893/0.845 |
| PickScore v1 | 0.797/0.293 | 0.636/0.000 | 0.565/0.048 | 0.732/0.073 | 0.886/0.691 | 0.864/0.340 | 0.960/0.624 | 0.951/0.437 |
| HPS v2.1 | 0.447/0.236 | 0.628/0.050 | 0.734/0.411 | 0.724/0.350 | 0.951/0.837 | 1.000/0.777 | 0.990/0.861 | 0.990/0.796 |
| Method | Negation ( ) | Attribute binding ( ) | Comparative size ( ) | Spatial relation ( ) | Object identity ( ) | Counting ( ) | Part completeness ( ) | Dense long prompt ( ) |
|---|---|---|---|---|---|---|---|---|
| CLIP-L/14 | 0.797/0.537 | 0.492/0.107 | 0.661/0.161 | 0.566/0.197 | 0.822/0.712 | 0.660/0.260 | 0.554/0.250 | 0.710/0.400 |
| SigLIP-L/16-384 | 0.902/0.740 | 0.557/0.139 | 0.734/0.250 | 0.533/0.148 | 0.975/0.907 | 0.900/0.670 | 0.679/0.402 | 0.680/0.440 |
| Long-CLIP-L/14 | 0.797/0.504 | 0.541/0.090 | 0.847/0.306 | 0.574/0.221 | 0.907/0.839 | 0.800/0.350 | 0.723/0.339 | 0.840/0.360 |
| Qwen3-VL-Embedding-8B | 0.935/0.862 | 0.672/0.443 | 0.774/0.597 | 0.582/0.344 | 0.924/0.915 | 0.850/0.700 | 0.795/0.714 | 0.860/0.770 |
| PickScore v1 | 0.878/0.179 | 0.516/0.008 | 0.645/0.016 | 0.500/0.025 | 0.932/0.475 | 0.950/0.280 | 0.768/0.098 | 0.710/0.110 |
| HPS v2.1 | 0.992/0.854 | 0.533/0.025 | 0.766/0.097 | 0.475/0.139 | 0.958/0.831 | 0.850/0.390 | 0.348/0.098 | 0.700/0.510 |
| Claude-Opus-4.6 | GPT-5.4 | SVGen (weakest) | ||||
|---|---|---|---|---|---|---|
| Method | pref. ( ) | rej. ( ) | pref. ( ) | rej. ( ) | pref. ( ) | rej. ( ) |
| CLIP-L/14 | 0.834 | 0.290 | 0.803 | 0.667 | 0.430 | 0.789 |
| SigLIP-L/16-384 | 0.894 | 0.387 | 0.875 | 0.444 | 0.617 | 0.807 |
| Long-CLIP-L/14 | 0.842 | 0.323 | 0.849 | 0.500 | 0.617 | 0.762 |
| Qwen3-VL-Embedding-8B | 0.942 | 0.484 | 0.932 | 0.694 | 0.638 | 0.908 |
| PickScore v1 | 0.759 | 0.161 | 0.781 | 0.417 | 0.349 | 0.643 |
| Method | |||||||
|---|---|---|---|---|---|---|---|
| Arena ( ) | |||||||
| CLIP-L/14 | 0.769 | 0.765 | 0.739 | 0.699 | 0.638 | 0.410 | 0.153 |
| SigLIP-L/16-384 | 0.823 | 0.819 | 0.798 | 0.775 | 0.726 | 0.576 | 0.338 |
| Long-CLIP-L/14 | 0.791 | 0.788 | 0.765 | 0.739 | 0.679 | 0.491 | 0.201 |
| Qwen3-VL-Embedding-8B | 0.861 | 0.861 | 0.853 | 0.843 | 0.818 | 0.746 | 0.615 |
| PickScore v1 | 0.833 | 0.812 | 0.722 | 0.605 | 0.344 | 0.018 | 0.000 |
| Method | |||||||
| Arena ( ) | |||||||
| CLIP-L/14 | 0 2.2 | 0 3.2 | 0 7.4 | 13.6 | 24.4 | 55.2 | 0 84.7 |
| SigLIP-L/16-384 | 0 2.2 | 0 2.9 | 0 6.9 | 11.8 | 18.2 | 37.3 | 0 64.4 |
| Long-CLIP-L/14 | 0 2.3 | 0 3.4 | 0 7.5 | 12.3 | 21.5 | 46.8 | 0 78.6 |
| Qwen3-VL-Embedding-8B | 0 0.0 | 0 0.5 | 0 1.8 | 0 3.5 | 0 7.4 | 18.8 | 0 35.6 |
| PickScore v1 | 0 2.5 | 0 6.6 | 20.3 | 36.2 | 64.5 | 98.2 | 100.0 |