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

本文涉及的产品
图像搜索,任选一个服务类型 1个月
简介: 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的转换。

  1. 核心功能:支持图像到SVG和文本到SVG两种生成模式,输出标准可编辑的矢量图形文件
  2. 技术原理:基于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 .

安装训练所需依赖

pip install -e ".[train]"

更新代码库

git pull
pip install -e .

快速开始

任务:图像到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)

使用 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)

训练

确认依赖已安装

pip install -e ".[train]"

设置环境变量

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

预训练(第 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

StarVector-8B 训练

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

微调(第 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

评估

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

演示

启动控制器

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

启动 Gradio 服务器

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

启动模型工作节点

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 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

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

相关文章
|
6天前
|
人工智能 编解码 物联网
设计师集体破防!UNO:字节跳动创新AI图像生成框架,多个参考主体同框生成,位置/材质/光影完美对齐
UNO是字节跳动开发的AI图像生成框架,通过渐进式跨模态对齐和通用旋转位置嵌入技术,解决了多主体场景下的生成一致性问题。该框架支持单主体特征保持与多主体组合生成,在虚拟试穿、产品设计等领域展现强大泛化能力。
71 4
设计师集体破防!UNO:字节跳动创新AI图像生成框架,多个参考主体同框生成,位置/材质/光影完美对齐
|
11天前
|
机器学习/深度学习 人工智能 计算机视觉
AI图像质感还原堪比专业摄影!Miracle F1:美图WHEE全新AI图像生成模型,支持超写实与多风格生成
美图WHEE推出的Miracle F1采用扩散模型技术,通过精准语义理解和多风格生成能力,可产出具有真实光影质感的专业级图像作品。
84 4
AI图像质感还原堪比专业摄影!Miracle F1:美图WHEE全新AI图像生成模型,支持超写实与多风格生成
|
XML Web App开发 人工智能
SVG图像——为 PPT 增添视觉趣味/03/O365智能系列(二)
SVG图像——为 PPT 增添视觉趣味/03/O365智能系列(二)
1631 0
SVG图像——为 PPT 增添视觉趣味/03/O365智能系列(二)
|
9天前
|
人工智能 开发者
还在手写SVG?OmniSVG:复旦团队开源多模态矢量生成神器,文本图像秒变可编辑SVG!
复旦大学与StepFun联合推出的OmniSVG是全球首个端到端多模态SVG生成模型,通过创新的标记化方法实现高效矢量图形生成,支持文本、图像等多种输入方式。
67 0
还在手写SVG?OmniSVG:复旦团队开源多模态矢量生成神器,文本图像秒变可编辑SVG!
|
25天前
|
机器学习/深度学习 人工智能 vr&ar
LHM:单图生成3D动画人!阿里开源建模核弹,高斯点云重构服装纹理
阿里巴巴通义实验室开源的LHM模型,能够从单张图像快速重建高质量可动画化的3D人体模型,支持实时渲染和姿态控制,适用于AR/VR、游戏开发等多种场景。
271 0
LHM:单图生成3D动画人!阿里开源建模核弹,高斯点云重构服装纹理
|
2月前
|
机器学习/深度学习 人工智能 编解码
Lumina-Image 2.0:上海 AI Lab 开源的统一图像生成模型,支持生成多分辨率、多风格的图像
Lumina-Image 2.0 是上海 AI Lab 开源的高效统一图像生成模型,参数量为26亿,基于扩散模型和Transformer架构,支持多种推理求解器,能生成高质量、多风格的图像。
225 17
Lumina-Image 2.0:上海 AI Lab 开源的统一图像生成模型,支持生成多分辨率、多风格的图像
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
Sketch2Lineart:AI绘画工具,自动将手绘草图转换成清晰的线条画
Sketch2Lineart是一款基于人工智能的绘画工具,能够自动将手绘草图转换成清晰的线条画。该工具支持多种功能,如草图转线稿、自动描述生成、细节调整和风格定制等,适用于艺术创作、产品设计、教育培训等多个领域。
442 60
Sketch2Lineart:AI绘画工具,自动将手绘草图转换成清晰的线条画
|
4月前
|
人工智能 自然语言处理 计算机视觉
StyleStudio:支持图像风格迁移的文生图模型,能将融合参考图像的风格和文本提示内容生成风格一致的图像
StyleStudio 是一种文本驱动的风格迁移模型,能够将参考图像的风格与文本提示内容融合。通过跨模态 AdaIN 机制、基于风格的分类器自由引导等技术,解决了风格过拟合、控制限制和文本错位等问题,提升了风格迁移的质量和文本对齐的准确性。
188 8
StyleStudio:支持图像风格迁移的文生图模型,能将融合参考图像的风格和文本提示内容生成风格一致的图像
|
5月前
|
人工智能 自然语言处理 网络性能优化
Kandinsky-3:开源的文本到图像生成框架,适应多种图像生成任务
Kandinsky-3 是一个开源的文本到图像生成框架,基于潜在扩散模型,能够适应多种图像生成任务。该框架支持高质量和逼真的图像合成,包括文本引导的修复/扩展、图像融合、文本-图像融合及视频生成等功能。Kandinsky-3 通过简化模型架构,提高了推理速度,同时保持了图像质量。
130 2
Kandinsky-3:开源的文本到图像生成框架,适应多种图像生成任务
|
6月前
Threejs制作骨骼模型
这篇文章详细介绍了在Three.js中创建骨骼动画的过程,包括骨骼节点的创建、权重设置以及控制骨骼关节实现动态效果的步骤,并通过一个具体的圆柱体模型演示了如何添加和控制骨骼动画。
92 2

热门文章

最新文章