Vector graphics are widely used in digital art and valued by designers for their scalability and layer-wise topological properties. However, the creation and editing of vector graphics necessitate creativity and design expertise, leading to a time-consuming process.
In this paper, we propose a novel pipeline that generates high-quality customized vector graphics based on textual prompts while preserving the properties and layer-wise information of a given exemplar SVG. Our method harnesses the capabilities of large pre-trained text-to-image models. By fine-tuning the cross-attention layers of the model, we generate customized raster images guided by textual prompts. To initialize the SVG, we introduce a semantic-based path alignment method that preserves and transforms crucial paths from the exemplar SVG. Additionally, we optimize path parameters using both image-level and vector-level losses, ensuring smooth shape deformation while aligning with the customized raster image.
We extensively evaluate our method using multiple metrics from vector-level, image-level, and text-level perspectives. The evaluation results demonstrate the effectiveness of our pipeline in generating diverse customizations of vector graphics with exceptional quality.
Text-Guided vector graphics customization pipeline. Given an exemplar SVG and a text prompt as input (a), the method consists of three stages. (b) Concept Fine-tuning: By fine-tuning a pre-trained T2I model, a customized raster image is generated based on the text prompt. (c) Path Alignment: Important paths from the exemplar SVG are adapted based on semantic correspondences with the customized raster image, providing an initial customized SVG. (d) Path Optimization: The path parameters are optimized using both image-level and vector-level losses to produce the final customized SVG (e).
@inproceedings{zhang2023text,
title = {Text-guided vector graphics customization},
author = {Zhang, Peiying and Zhao, Nanxuan and Liao, Jing},
booktitle = {SIGGRAPH Asia 2023 Conference Papers},
pages = {1--11},
year = {2023}
}