先把整篇论文压成一张图
DuetSVG 的创新并不是简单串联一个图像模型与一个矢量化模型,而是在一个统一自回归 Transformer 里共同生成 image tokens 与 SVG tokens,并利用前者作为后者的内部视觉锚点。
为什么只把 SVG 当文本不够
SVG 代码在语法空间里是离散 token,但它真正的损失函数应该关心渲染后的几何与视觉。一个看似很小的坐标错误,在代码层面只错几个字符,在像素层面却可能让整个轮廓崩坏。
问题 A:文本监督与视觉目标错位
传统 VLM 直接生成 SVG code,训练主要奖励“下一个 token 对不对”。但 SVG 的真正目标是渲染结果。代码空间近邻不等于视觉空间近邻。
因此复杂布局、曲线控制点和局部遮挡容易累积误差。
问题 B:SVG 数据远少于 raster 数据
纯 SVG 模型只能吃相对有限的矢量数据,而互联网上有海量 text image、image editing 数据。若模型本身没有 image generation 能力,就很难把这些视觉先验迁移进 SVG 生成。
问题 C:长序列的错误会累积
一个复杂 SVG 可以有数千乃至上万 token。纯 best of \(N\) 需要完整采样多次再 rerank,成本与序列长度几乎直接绑定,而且无法中途纠偏。
统一多模态 SVG 生成
核心不是额外加一个独立 raster 模型,而是把视觉 token 与 SVG token 放进同一因果序列,共享一个 autoregressive Transformer。
给定条件输入 \(\mathbf{x}\),其中可以包含文本、raster image、已有 SVG code,模型统一优化 next token likelihood:
输入端
Text / SVG:Janus Pro tokenizer。
Image understanding:SigLIP encoder,负责语义特征。
Image generation:VQ tokenizer,将图像转成离散 visual tokens。
Alignment:两套 MLP aligner,将图像表示投影到 Transformer 的 embedding space。
输出端
Generation head:预测 visual codebook 中的 image token。
LM head:预测 text vocabulary 中的 SVG token。
训练冻结:understanding encoder 与 generation encoder 冻结,其余参数可训练。
统一性:同一 Transformer 同时学习 raster appearance 与 vector structure。
训练为什么要分两阶段
T2I pretraining:先建立“SVG 风格”的视觉先验
Janus Pro 原始 checkpoint 并不擅长生成干净、扁平、几何规整的 SVG 风格图像。作者混合真实 rendered SVG image caption pair 与 FLUX.1 合成数据,专门训练这种视觉域。
这一步并不直接输出 SVG code,但它决定了后续 image tokens 是否能作为有意义的内部 visual plan。
Multi task SFT:把视觉先验传进 SVG
T2I、T2SVG、I2SVG 混合训练。对 SVG task,目标严格按照 image tokens → SVG tokens 排列。
作者还对 I2SVG target 做 rotation、translation、scaling、color 修改,可随机移除部分 paths,再渲染成 image,逼模型学习“局部结构变化如何反映到图像与代码”。
Text 与 image input 各自以 10% 概率 dropout,从而支持 inference 时 CFG。
下游任务微调
SVG completion 与 semantic editing 并不是基础模型原生完整覆盖的训练目标,论文通过额外 fine tune 展示可扩展性。
这篇论文最漂亮的推理设计
图像序列只有 576 tokens,而 SVG 最长 12,000 tokens。作者因此把 expensive search 放在短视觉序列上,再用选中的视觉结果约束长 SVG rollout。
Step 1 · Visual candidate selection
先用 classifier free guidance 生成 \(N\) 个 visual candidates:
再用 CLIP verifier 选择分数最高的图像 \(I^{\ast}\),对应 visual tokens 为 \(z^{\ast}_{\mathrm{img}}\)。实验中报告 \(N=3\)。
Step 2 · Image guided SVG resampling
从 \(z^{\ast}_{\mathrm{img}}\) 继续生成 SVG。每次先采样 \(K\) 个 SVG tokens,拼到当前 script 后渲染 provisional image \(R_t\),然后计算:
接受条件是:
若距离变大,就拒绝这一个 chunk 并 resample。论文设置每个 SVG 最多允许 \(M=3\) 次 rejection。
为什么比 best of N 便宜
best of \(N\) 需要完整生成 \(N\) 条最长可达 12K token 的 SVG。DuetSVG 把多样性搜索主要放在 576 token 的 image sequence。
为什么比最终 rerank 更强
它不是只在终点选最好,而是在 SVG rollout 中间反复检查方向是否偏离视觉目标,因此具备局部纠偏能力。
它隐含的假设
LPIPS 到 \(I^{\ast}\) 的距离应该大体随着 SVG 完成度下降。这个单调性并非总成立,尤其当前 chunk 只是先画背景或被后续路径遮挡时。
数据不仅是规模,更是表示规范
作者认为现有 SVG 数据的两大问题是自动矢量化导致结构脏,以及 caption 太短。SVG Hub 同时清理 vector structure 与 text semantics。
SVG Hub 1M
来源包括 MMSVG、SVGX、Iconfont。去除 duplicate、auto vectorized SVG 与 blank rendering 样本。
作者承诺公开 1M 数据集。
SVG Hub 5M
论文主实验使用内部 5M 规模数据,test split 为 9,000 samples。
复现限制:5M 数据是 internal dataset,因此论文最强结果并不能仅凭公开 1M 数据完全复现。
SVG captioning pipeline
SVG tokenization
Canvas normalization
统一到 \(800\times800\) viewBox。
Command vocabulary
M L C Q A Z Ellipse Circle Polygon Rect
Structure cleanup
移除 redundant / invisible elements,保留 <defs> gradient 与 <g> group transforms。
之后所有坐标 \((x,y)\) 被 quantize,再将 command、attribute、coordinate 序列化为 discrete tokens。
训练、benchmark 与结果
论文同时从 raster quality、semantic alignment、vector code similarity 与 path semantics 四个层面评估,避免只比较“看起来像不像”。
训练配置
Stage 1:80K steps,batch size 512。
Stage 2:300K steps,batch size 128。
Task sampling:T2I : T2SVG : I2SVG = 1 : 5 : 4。
Optimizer:AdamW。
Betas:\(\beta_1=0.9,\ \beta_2=0.95\)。
Learning rate:\(1\times10^{-5}\)。
Benchmarks 与 metrics
SVG Hub 5M test
9,000 samples。
T2SVG:FID, CLIP, Aesthetic, Path Semantics。
I2SVG:DINO, SSIM, LPIPS, PSNR, SVG Code Similarity, Path Semantics。
SArena Icon
6,000 samples。
用于额外检验 icon domain 上的 T2SVG / I2SVG generalization。
Path Semantics 到底测什么
随机删除 30% SVG paths,比较删除前后 rendering 的 CLIP score drop。若删除 paths 后语义几乎不变,说明那些 paths 很可能是冗余或没有承载显著语义。
因此这个指标某种程度上在衡量“每一条 path 是否值得存在”,比单纯像素重建更接近可编辑 SVG 的结构质量。
SVG Code Similarity 到底测什么
将 generated SVG code 与 ground truth SVG code 用 Qwen3 Embedding 8B 编码,计算 cosine similarity。它更像高层语法与结构相似度,而不是严格 AST equivalence。
它仍然不是“代码简洁性”或“拓扑正确性”的直接测量,因此不能完全替代 path count、node count、editability 或 DOM complexity 指标。
Table 1 · SVG Hub 5M 关键结果
| Method | T2SVG FID ↓ | CLIP ↑ | Aesthetic ↑ | Path Sem ↑ | I2SVG DINO ↑ | SSIM ↑ | LPIPS ↓ | PSNR ↑ | Code Sim ↑ |
|---|---|---|---|---|---|---|---|---|---|
| FLUX.1 dev + VTracer | 46.990 | 25.326 | 5.52 | 1.216 | — | — | — | — | — |
| GPT 5 Thinking | 50.122 | 24.950 | 5.39 | 2.295 | 0.904 | 0.806 | 0.212 | 11.485 | 0.916 |
| Gemini 3 Pro | 48.765 | 25.146 | 5.46 | 2.412 | 0.921 | 0.880 | 0.116 | 13.858 | 0.908 |
| LLM4SVG 7B FT | 49.318 | 23.304 | 5.24 | 2.315 | 0.938 | 0.882 | 0.099 | 19.843 | 0.944 |
| Qwen3 VL 8B FT | 43.720 | 23.935 | 5.35 | 2.525 | 0.947 | 0.910 | 0.090 | 20.915 | 0.950 |
| DuetSVG 7B, w/o TTS | 35.066 | 25.584 | 5.52 | 2.772 | 0.955 | 0.920 | 0.082 | 22.024 | 0.959 |
| DuetSVG 7B, TTS | 33.574 | 26.106 | 5.56 | 2.910 | 0.962 | 0.928 | 0.075 | 23.590 | 0.964 |
FID
35.066 → 33.574TTS 继续改善分布质量。CLIP
25.584 → 26.106视觉候选搜索显著服务于语义对齐。LPIPS
0.082 → 0.075I2SVG 更接近输入图像。
Ablation · 内部视觉引导到底有没有用
| Variant | T2SVG FID ↓ | CLIP ↑ | I2SVG DINO ↑ | SSIM ↑ | LPIPS ↓ |
|---|---|---|---|---|---|
| w/o Internal Visual Guidance | 51.482 | 23.260 | 0.939 | 0.878 | 0.096 |
| w/o T2I Pretraining | 36.953 | 25.122 | — | — | — |
| w/o Test time Scaling | 35.066 | 25.584 | 0.955 | 0.920 | 0.082 |
| Full | 33.574 | 26.106 | 0.962 | 0.928 | 0.075 |
Generalization
作者随机选 500 个 text prompts,每个 prompt 用 3 个 seed,得到 1,500 个 SVG。若 CLIP image embedding cosine similarity ≥ 0.98,则视作相同样本。结果为:
生成结果在 SVG Hub 5M training corpus 中找不到 ≥0.98 similarity 的近邻。
生成集合内部几乎没有重复样本。
统一模型带来的下游任务
论文强调 multimodal interface 的价值在于它不仅做 text to SVG,也能把 image、partial SVG、text instruction 混合成不同条件组合。
SVG completion
随机 mask 一部分 SVG paths,将 partial SVG 与其 rendered image 一起输入,目标是恢复完整 image 与完整 SVG script。
这一设计利用图像保留“整体视觉意图”,再让模型补齐缺失 vector structure。
Semantic SVG editing
由于缺少大规模 paired SVG editing data,作者用 Gemini 2.5 Flash 生成 edited image \(I_e\)。训练时输入 \(I_e\) 与 inverse editing instruction,要求模型重建 original image \(I_a\) 与其 SVG。
这是一种 synthetic inverse editing supervision。
复现需要知道什么,论文又漏了什么
下面把“明确报告的参数”和“真正落地仍缺失的参数”分开。后者不做猜测。
Janus Pro 7B
384×384
576 tokens
16,384
12,000 text tokens
80K steps, BS 512
300K steps, BS 128
1 : 5 : 4
β1 0.9, β2 0.95, LR 1e-5
N=3, M=3
论文未报告
公式给出但 implementation 未报告最终值
论文未报告
论文未报告
正文未报告
论文未报告
论文未报告
内部数据,无法完全公开复现最强结果
建议的最小复现路径
1. 初始化 Janus-Pro-7B 2. 构建公开 SVG-Hub-1M 等价数据 3. 标准化 SVG 到 800×800 viewBox 4. 清理 invisible / redundant nodes 5. 约束 command vocabulary 6. 对 coordinates 做离散化 7. 生成 short / medium / detailed captions,并交叉验证 8. Stage 1: T2I SVG-style pretraining 9. Stage 2: T2I + T2SVG + I2SVG multi-task SFT 10. 输出序列固定为 [IMG tokens] → [SVG tokens] 11. I2SVG 训练加入 geometry / color augmentation 与 path dropout 12. 推理先采样 N 个 image candidates,再 CLIP 选 I* 13. SVG 按 chunk 生成,render 后用 LPIPS 与 I* 比较 14. 若 LPIPS 变差则 resample,最多 M 次 rejection
作为 reviewer,我会怎么评
这不是“又一个 SVG LLM”。它提出了一个相当自然但之前没有被系统做好的统一建模视角,而且实验确实证明视觉分支不是装饰。
倾向:Strong Accept / Accept 边界,取决于 venue 对数据可复现性的权重。
我的核心判断
最强贡献是 把 visual plan 变成 autoregressive context,而不是只在 loss 外部加 raster supervision。这个结构非常简洁,且和统一多模态模型的发展方向一致。
优点
1. Problem formulation 很准。 抓住 SVG 作为 code 与 image 双重对象的本质。
2. Internal guidance 很干净。 不需要外接独立 T2I 模型,也没有跨模型 feature mismatch。
3. Ablation 有说服力。 去掉 image output 后显著退化,且 backbone 本身并不占优。
4. TTS 具有计算意识。 把 search 放在短 image sequence,再约束长 SVG rollout,是非常合理的 cost allocation。
5. Evaluation 不只看像素。 加入 Path Semantics 与 Code Similarity,至少正面承认 SVG 质量包含结构维度。
不足
1. 最强数据不可得。 主结果依赖 internal SVG Hub 5M,公开 1M 的结果明显较弱。
2. TTS 复现参数不完整。 \(K\)、\(\gamma\)、sampling 参数缺失。
3. LPIPS accept rule 过于局部。 SVG 是分层绘制,当前距离暂时变差不代表最终结果一定变差。
4. Editability 指标仍不足。 没有系统统计 path count、DOM depth、control point efficiency、layer semantics、human edit time。
5. 视觉 token 是 raster bottleneck。 384×384 与 576 tokens 对高频细节天然有限,appendix 的 failure case 已经暴露这一点。
我最希望作者补的 6 个实验
① Oracle visual guidance
用 ground truth rendered image tokens 作为 guidance,测量当前生成 visual plan 与理想上限之间的 gap。
② Guidance ordering
对比 image→SVG、SVG→image、interleaved chunks,确认收益是否主要来自 prefix conditioning。
③ TTS accept criterion
LPIPS 单调、CLIP、DINO、多指标组合以及 learned verifier 的系统比较。
④ Chunk size sweep
不同 \(K\) 对质量、rejection rate、latency 的 tradeoff。
⑤ Real editability study
让设计师完成指定编辑任务,比较 path cleanliness 与 edit time。
⑥ Scaling law
1M → 5M、7B → 更大 backbone 时,visual guidance gain 是否持续,还是主要来自数据规模。
一个值得继续发展的方向
当前方法把 raster image 作为内部 plan,但 SVG 的真正优势来自 vector structure。更进一步可以构造层次化中间表示,例如 scene graph、layer plan、primitive layout、path topology,再生成坐标级 token。也就是说,把现在的“image plan → SVG code”升级成“semantic layout → vector topology → geometry parameters → rendering”。这可能显著改善遮挡、层组织与可编辑性。
读完后最应该记住的三件事
如果只记住三个概念,应该是下面这三个。
SVG 不是纯代码
对 SVG 只做 token likelihood,会忽略代码错误在视觉空间里的巨大非线性后果。
视觉 plan 可以是 token prefix
把 image tokens 放在 SVG tokens 前面,就能用最普通的 causal Transformer 实现内部视觉引导。
TTS 应该匹配序列成本
先在短视觉序列上搜索,再对长 SVG 序列局部纠偏,比完整 best of \(N\) 更经济。