StarVector:图像秒变矢量代码!开源多模态模型让SVG生成告别手绘

发布时间:2025-11-24 02:44

2025-03-26 653 发布于广东

版权

举报

版权声明:

本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

简介: StarVector是由ServiceNow Research等机构联合开发的开源多模态视觉语言模型,能够将图像和文本转换为可编辑的SVG矢量图形,支持1B和8B两种规模,在SVG生成任务中表现出色。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花

「设计师集体失业?开源模型把PSD转SVG变成填空题」

大家好,我是蚝油菜花。你是否也经历过这些设计至暗时刻——

甲方要矢量图却只给JPG,钢笔工具抠到视网膜脱落 SVG代码手写3小时,浏览器预览发现路径节点溢出了 用AI生成矢量图,结果导出后渐变填充全变马赛克...

今天要拯救设计圈的 StarVector ,正在重新定义矢量生成!这个学术天团打造的AI神笔:

✅ 「所见即代码」:上传图片/输入文字,3秒吐标准SVG文件 ✅ 智能节点优化:比传统工具减少47%冗余路径,文件体积暴降 ✅ 多模态理解王:能同时听懂「LOGO要圆润+科技蓝」的模糊需求

已有UI团队用它1天做完季度ICON库,插画师靠它复活手稿成矢量艺术品——你的设计流水线,是时候注射「AI矢量加速剂」了!

快速阅读

StarVector是一个开源的多模态视觉语言模型,专注于图像和文本到SVG的转换。

核心功能:支持图像到SVG和文本到SVG两种生成模式,输出标准可编辑的矢量图形文件 技术原理:基于StarCoder架构的多模态模型,在包含200万样本的SVG-Stack数据集上训练,采用视觉编码器+语言模型联合处理

StarVector 是什么

starvector-teaser

StarVector 是开源的多模态视觉语言模型,由ServiceNow Research、Mila – Quebec AI Institute 和 ETS Montreal 联合开发,专注于将图像和文本转换为可缩放矢量图形(SVG)代码。模型采用多模态架构,能同时处理图像和文本信息,直接在 SVG 代码空间中操作,生成标准的、可编辑的 SVG 文件。

StarVector 在包含超过 200 万个 SVG 样本的 SVG-Stack 数据集上训练,提供 StarVector-1B 和 StarVector-8B 两种规模,满足不同需求。相比传统矢量转换工具,它能更好地理解图像语义,生成更紧凑、结构更合理的SVG代码。

StarVector 的主要功能

图像到 SVG 的转换:能将图像直接转换为 SVG 代码,实现图像的矢量化 文本到 SVG 的生成:可以根据文本指令生成相应的 SVG 图形

StarVector 的技术原理

starvector-arch

多模态架构:采用视觉编码器提取图像特征,通过适配器映射到语言模型嵌入空间,实现对图像和文本的统一处理 图像编码与视觉标记生成:通过Vision Transformer将图像转换为视觉标记,捕捉形状、颜色等关键特征 语言模型与 SVG 代码生成:基于StarCoder语言模型,通过自回归预测生成SVG代码 大规模数据集训练:在包含200万样本的SVG-Stack数据集上训练,支持多样化任务

如何运行 StarVector:从图像和文本生成可缩放矢量图形代码

StarVector 是一个用于生成可缩放矢量图形(SVG)的多模态视觉-语言模型,支持从图像到 SVG 和从文本到 SVG 的生成任务。下面将指导您如何安装 StarVector、运行其代码生成功能以及进行模型训练和评估:

安装

克隆代码库并创建虚拟环境

git clone https://github.com/joanrod/star-vector.git cd star-vector conda create -n starvector python=3.11.3 -y conda activate starvector pip install --upgrade pip # 启用 PEP 660 支持 pip install -e .

AI 代码解读

安装训练所需依赖

pip install -e ".[train]"

AI 代码解读

更新代码库

git pull pip install -e .

AI 代码解读

快速开始

任务:图像到SVG生成

以下代码展示了如何使用 StarVector 将图像转换为 SVG 代码:

from PIL import Image from starvector.model.starvector_arch import StarVectorForCausalLM from starvector.data.util import process_and_rasterize_svg # 加载模型 model_name = "starvector/starvector-8b-im2svg" starvector = StarVectorForCausalLM.from_pretrained(model_name) # 将模型移到 GPU 并设置为评估模式 starvector.cuda() starvector.eval() # 加载输入图像 image_pil = Image.open('assets/examples/sample-0.png') image = starvector.process_images([image_pil])[0].cuda() batch = { "image": image} # 生成 SVG 代码 raw_svg = starvector.generate_im2svg(batch, max_length=1000)[0] svg, raster_image = process_and_rasterize_svg(raw_svg)

AI 代码解读

使用 HuggingFace AutoModel

from PIL import Image from transformers import AutoModelForCausalLM, AutoTokenizer, AutoProcessor from starvector.data.util import process_and_rasterize_svg import torch # 加载模型 model_name = "starvector/starvector-8b-im2svg" starvector = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16, trust_remote_code=True) processor = starvector.model.processor tokenizer = starvector.model.svg_transformer.tokenizer # 将模型移到 GPU 并设置为评估模式 starvector.cuda() starvector.eval() # 加载输入图像 image_pil = Image.open('assets/examples/sample-18.png') image = processor(image_pil, return_tensors="pt")['pixel_values'].cuda() if not image.shape[0] == 1: image = image.squeeze(0) batch = { "image": image} # 生成 SVG 代码 raw_svg = starvector.generate_im2svg(batch, max_length=4000)[0] svg, raster_image = process_and_rasterize_svg(raw_svg)

AI 代码解读

训练

确认依赖已安装

pip install -e ".[train]"

AI 代码解读

设置环境变量

export HF_HOME=<模型存储路径> export HF_TOKEN=<您的 HuggingFace 令牌> export WANDB_API_KEY=<您的 WandB 令牌> export OUTPUT_DIR=<输出路径>

AI 代码解读

预训练(第 1 阶段)

StarVector-1B 训练

accelerate launch --config_file configs/accelerate/deepspeed-8-gpu.yaml starvector/train/train.py config=configs/models/starvector-1b/im2svg-stack.yaml

AI 代码解读

StarVector-8B 训练

torchrun \ --nproc-per-node=8 \ --nnodes=1 \ starvector/train/train.py \ config=configs/models/starvector-8b/im2svg-stack.yaml

AI 代码解读

微调(第 2 阶段)

文本到 SVG 微调

# StarVector-1B accelerate launch --config_file config/accelerate/deepspeed-8-gpu.yaml starvector/train/train.py config=configs/models/starvector-1b/text2svg-stack.yaml # StarVector-8B torchrun \ --nproc-per-node=8 \ --nnodes=1 \ starvector/train/train.py \ config=configs/models/starvector-8b/text2svg-stack.yaml

AI 代码解读

评估

HuggingFace 生成后端

# StarVector-1B 评估 python starvector/validation/validate.py \ config=configs/generation/hf/starvector-1b/im2svg.yaml \ dataset.name=starvector/svg-stack # StarVector-8B 评估 python starvector/validation/validate.py \ config=configs/generation/hf/starvector-8b/im2svg.yaml \ dataset.name=starvector/svg-stack

AI 代码解读

演示

启动控制器

python -m starvector.serve.controller --host 0.0.0.0 --port 10000

AI 代码解读

启动 Gradio 服务器

python -m starvector.serve.gradio_web_server --controller http://localhost:10000 --model-list-mode reload --port 7000

AI 代码解读

启动模型工作节点

python -m starvector.serve.model_worker --host 0.0.0.0 --controller http://localhost:10000 --port 40000 --worker http://localhost:40000 --model-path joanrodai/starvector-1.4b

AI 代码解读

资源

项目主页:https://starvector.github.io/ GitHub 仓库:https://github.com/joanrod/star-vector HuggingFace 仓库:https://huggingface.co/starvector/starvector-1b-im2svg HuggingFace 仓库:https://huggingface.co/starvector/starvector-8b-im2svg 在线演示 Demo:https://huggingface.co/spaces/starvector/starvector-1b-im2svg

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花

网址:StarVector:图像秒变矢量代码!开源多模态模型让SVG生成告别手绘 https://m.mxgxt.com/news/view/1895031

相关内容

数据库关系图怎么生成(关系模型怎么画?图文详解带你绘制关系模型图)
关系模型怎么画?1分钟绘制好看的关系模型
上海人工智能实验室,全能高手+科学明星,全球领先开源科学多模态大模型『书生』Intern
免费在线树状图绘制图表生成器工具
【明星自动大变脸】最新StarGAN对抗生成网络实现多领域图像变换(附代码)
超模脸、网红脸、萌娃脸...换头像不重样?我开源了5款人脸生成器
中国联通开源元景文生图模型
明星偶像矢量图图片免费下载
Kazimir.ai 智能生成名人图像:涵盖演员模特运动员 满足营销艺术创作需求
实体关系图怎么画?5个步骤完成专业ER模型图

随便看看