star-vector

上传图片或输入文字,一键生成可编辑的 SVG 矢量图

StarVector 是一个用于 SVG 生成的基础模型,它将矢量图转换任务重构为代码生成任务。基于视觉-语言建模架构,StarVector 能同时处理图像和文本输入,生成高质量的 SVG 代码。它解决了传统矢量图转换方法依赖几何处理、精度有限且难以处理复杂图形的问题。核心能力包括:将位图图像(如 PNG、JPG)自动转换为可编辑的 SVG 矢量图形;支持通过文本描述生成对应的 SVG 代码;在生成过程中保持视觉细节和结构准确性。该模型在多个基准测试上表现优异,为设计师和开发者提供了一种全新的、基于 AI 的矢量图形创作方式,降低了矢量图制作的门槛。

开源 free 开源模型
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 4597
维护状态 低维护
是否开源
定价模式 free

项目数据

分类开源模型
开发团队joanrod
所属国家
定价模式free
价格说明开源模型,Apache-2.0 许可证,完全免费,可自行部署使用。
访问状态
是否开源
开源协议Apache-2.0
主要语言Python
技术栈/模型llm,multimodal-large-language-models,svg,vlm
GitHub 星标★ 4597
30天Star增速
HF 下载量
上线时间2023-12-11 00:00:00
最近更新2026-09-22 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数10

使用教程

难度:进阶 约 20 分钟 部署方式:库/依赖 5 步

环境要求

  • Python 3.11.3(README 使用 conda 指定该版本)
  • 已安装 conda(用于创建虚拟环境)
  • 支持 CUDA 的 GPU(示例代码调用 starvector.cuda())
  • 可访问 Hugging Face 下载模型权重 starvector/starvector-8b-im2svg
  • pip 可用并能执行 pip install -e . 本地安装

安装与启动步骤

  1. 1克隆仓库

    把 star-vector 仓库下载到本地,并进入项目根目录,后续所有命令都在该目录执行。

    git clone https://github.com/joanrod/star-vector.git
    cd star-vector
  2. 2创建并激活环境

    用 conda 新建名为 starvector 的环境,Python 版本按 README 固定为 3.11.3,然后激活。

    conda create -n starvector python=3.11.3 -y
    conda activate starvector
  3. 3升级 pip 并安装包

    先升级 pip 以支持 PEP 660,再用可编辑模式安装 star-vector 本体。在项目根目录执行。

    pip install --upgrade pip
    pip install -e .
  4. 4安装训练依赖

    如需训练或确认依赖完整,安装可选的 train 附加依赖组;README 的依赖确认部分也使用该命令。

    pip install -e ".[train]"
  5. 5运行图生 SVG 示例

    保存为脚本运行:加载模型并转 cuda,读取示例图片生成 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)
    
    starvector.cuda()
    starvector.eval()
    
    image_pil = Image.open('assets/examples/sample-0.png')
    image = starvector.process_images([image_pil])[0].cuda()
    batch = {"image": image}
    
    raw_svg = starvector.generate_im2svg(batch, max_length=1000)[0]
    svg, raster_image = process_and_rasterize_svg(raw_svg)

关键配置

配置项必填说明示例
model_name指定要加载的 StarVector 模型,决定生成效果与显存占用starvector/starvector-8b-im2svg
max_lengthgenerate_im2svg 的最大生成长度,控制 SVG 代码长度上限1000
image_path输入位图路径,示例使用仓库自带样例图片assets/examples/sample-0.png

如何确认成功

示例脚本能跑完不报错,得到 raw_svg 字符串,并且 process_and_rasterize_svg 返回可用的 svg 与栅格化图像。

常见问题

Q:没有 GPU 能跑吗?

A:README 的示例显式调用了 starvector.cuda(),按官方流程需要 CUDA 环境;README 未提供纯 CPU 的运行方式。

Q:显存不够怎么办?

A:可换用 README 中提到的更小模型 starvector/starvector-1b-im2svg,即把 model_name 改为该模型名。

Q:首次运行很慢或卡住?

A:模型需从 Hugging Face 下载权重,请确认网络可访问 huggingface.co,下载完成后再运行生成。

Q:报依赖缺失错误?

A:README 建议再执行一次 pip install -e ".[train]" 来安装训练相关依赖。

注意事项

  • Python 版本按 README 固定为 3.11.3,不要随意更换。
  • 必须先 conda activate starvector,否则会装到 base 环境。
  • pip install -e . 需在克隆后的 star-vector 目录内执行。
  • 示例图片使用仓库内的 assets/examples/sample-0.png,请勿改动相对路径。

核心亮点

  • 采用视觉-语言模型架构,将矢量图生成转化为代码生成,精度高且能处理复杂图形
  • 支持图像到 SVG 和文本到 SVG 两种模式,输入灵活,覆盖多种创作场景
  • 在多个公开基准上表现领先,生成结果具备良好的结构性和可编辑性

不足之处

  • 模型体量较大,推理需要较高算力,普通 CPU 环境难以实时生成
  • 对复杂位图(如照片)的转换效果可能不如专业矢量化工具,细节保留有限

适用场景

  • UI/UX 设计师将位图素材快速转为可编辑的矢量图标或插画
  • 开发者从文本描述直接生成 SVG 图形,用于前端页面或数据可视化
  • 自动化流水线中批量将图片素材转换为 SVG 格式,便于缩放和样式调整

替代项目

vtracer、SVG-Generator、DeepSVG

项目介绍

star-vector 是图像领域的开源项目,由 joanrod 开发,2023 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(4,597)位列前 10%,在图像分类的 837 个项目里位列前 5%。

近 41 天,它的 GitHub 星标从 4,516 增加到 4,597,净增 81。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-22。Apache-2.0 许可证,完全免费,可自行部署使用。

它主要面向的使用场景是:UI/UX设计师将位图素材快速转为可编辑的矢量图标或插画。同类可对比的替代方案包括 vtracer、SVG-Generator、DeepSVG。

上一篇:Infographic

下一篇:DeTikZify

同类项目推荐

satori 开源

网页代码一键变高清图,放大不糊,不用截图

Enlightened library to convert HTML and CSS to SVG

★ 13967 2026-08-09
C2GAN 开源

用关键点精准控制图像生成,让AI画出你想要的结构

[ACM MM 2019 Oral] Cycle In Cycle Generative Adversarial Networks for Keypoint-Guide···

★ 70 2026-08-09
DeTikZify 开源

上传图表或草图,秒变可编译的TikZ矢量代码。

Synthesizing Graphics Programs for Scientific Figures and Sketches with TikZ.

★ 1820 2026-08-09