跳转至

Teaching an Agent to Sketch One Part at a Time

会议: ECCV2026
论文: ECCV 原文
项目: https://xiaodan.io/teaching-an-agent-to-sketch/
领域: 强化学习
关键词: 矢量草图、部件标注、多轮生成、过程奖励、局部编辑

一句话总结

本文先把矢量草图自动标注为语义部件,再以 SFT 和多轮过程奖励 GRPO 训练视觉语言智能体,使其观察当前画布、逐部件添加曲线;用户研究中,完整模型相对 SketchAgent 的最终质量偏好率为 77.5%。

研究背景与动机

矢量草图不是一张不可拆分的位图,而是一组能独立修改、缩放和重排的曲线路径。 但如果生成器把所有笔画一次性输出,文件格式虽然可编辑,笔画却未必对应人能理解的部件。 例如,设计者想替换椅背而保留座面和扶手,仍可能需要逐条辨认曲线,无法直接表达局部修改意图。 CLIPDraw、DiffSketcher 等方法主要联合优化整幅草图,扩散式生成也通常缺乏逐部件控制。 SketchAgent 已探索语言驱动的顺序绘制,但依赖闭源 VLM 的零样本能力,输出偏简单图标,空间定位也会出错。

要获得更详细的渐进绘制能力,仅仅把一次生成拆成多次调用并不够。 模型需要知道一组曲线属于哪个语义部件,还必须学会在已有部件的相对位置约束下补画下一部分。 普通图像与草图配对数据不直接提供这些监督,而人工给专业草图标注部件及每条路径的归属成本很高。 即使有了部件数据,使用真实局部画布训练的模型,在推理时也会面对自己先前画歪、漏画或比例失衡的结果。 后续部件继续建立在这些不完美状态上,单轮表现良好并不能保证整幅草图质量。

本文因此把数据结构与训练过程一起设计:先让笔画具备语义归属,再让智能体在自己生成的画布上学习。 真实笔画可以按部件重新组合,从而为每一个中间状态提供对应的视觉参照,而不必只在最后打一次分。 核心 idea:用部件级数据构造可监督的中间画布,再通过同一步内比较的过程奖励,让多轮绘制策略适应自己的生成状态。

方法详解

整体框架

输入不是只有一句总描述,而是整体描述、当前要画的部件描述、当前画布、历史部件及其路径,以及本轮之后剩余的部件数。 智能体每轮只输出当前部件的一组矢量路径,渲染器把它们加入已有画布,再把更新后的画布交给下一轮。 输出的分组天然对应操作历史,因此用户可以在部件边界尝试替代设计,而不必重新生成所有内容。 训练则依次经过部件标注、单轮监督初始化、多轮强化学习三个环节;标注 VLM 是离线数据工具,不是推理时额外参与绘画的教师。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
        A["原始矢量草图"] --> B["语义部件标注"]
        B --> C["排列增强的单轮 SFT"]
        C --> D["逐步奖励的多轮 GRPO"]
        B -.->|训练用真实中间画布| D
        D -->|训练后策略| E["推理:描述与当前画布"]
        E --> F["生成部件路径并渲染"]
        F -->|下一部件与更新画布| E
        F --> G["分组矢量草图"]

关键设计

1. 语义部件标注:把曲线集合变成可操作的对象结构

标注流程先渲染 SVG,由 VLM 提出一组互不重叠、合起来覆盖对象的语义部件描述。 随后同一 VLM 切换为批评者,逐项检查这些描述是否满足要求,输出违规类型、严重程度、理由和修订建议。 结构化结果还包含是否需要修改的标志;需要修改时,再根据图像与批评修订部件划分。 这不是直接相信第一次生成,而是把“提出划分”和“检查划分”分开,减少复杂指令漏执行的问题。

有了部件描述后,模型同时查看 SVG 文本和渲染图,将每条路径分配给一个部件。 结构约束要求每条路径恰好归属一个部件,而且每个部件至少包含一条路径。 接着构造诊断图:左侧给部件描述配上独特颜色,右侧按当前归属为曲线着色。 批评者据此判断某条线是否被放进错误部件,再由修订步骤更新路径归属。 最终总描述仅根据修订后的部件描述生成,使整体语义与局部标签相互一致。

作者将流程应用于 ControlSketch,其底层包含 35,000 对图像与草图,覆盖 15 类对象。 高质量 ControlSketch-Part 使用 Gemini 3.0 Pro 标注,限制每幅草图为 2 至 5 个部件。 这里的类别标签不参与模型训练,部件与自然语言描述才是直接监督;不过,数据覆盖范围仍受到这些对象类型限制。 主文说明 SFT 另用相同流程、Gemini 2.5 Flash 标注的数据,后者标注成本低 6.7 倍;高质量版本留给 RL。 因此,不能把“两阶段训练”理解为不加区分地反复使用完全相同的标注样本。

2. 排列增强的单轮 SFT:先学会在已有画布上补一个部件

一条输出路径由三次 Bézier 曲线表示,只需起点、两个控制点和终点,共八个坐标值。 由于线宽、透明度等属性固定,模型只输出 M、C 命令和坐标,不需要重复生成完整 SVG 包装。 不同路径用换行分隔,渲染时再使用统一属性;这样把学习重点放在几何布局,而不是冗长的格式标签上。 当前画布提供空间参照,历史路径提供精确的既有动作记录,总描述帮助维持整体对象语义。 剩余部件数则告知模型当前进度,避免把本轮部件当成需要独立完成的整幅图。

每幅草图最多随机采样 20 种部件排列,并按每种顺序构造逐步补全样本。 例如顺序为 C、B、D、E、A 时,先用空白画布预测 C,再用真实 C 的渲染预测 B,随后用真实 C+B 预测 D。 所有排列共享总描述,但当前画布和目标部件随顺序改变,因此模型能见到不同的局部上下文。 监督目标是当前部件真实路径的下一词元预测,不要求每次重新输出已经画好的部分。 排列增强也为交互修改提供基础:补画不再绑定于唯一的固定对象绘制顺序。

这一阶段的关键边界在于,输入的中间画布仍由真实路径组成。 模型学会的是“在正确的前缀上继续”,并没有充分经历自己生成的比例误差和笔画缺陷。 推理时则把自身输出反馈到下一轮,这种状态分布差异会让误差随着绘制过程累积。 因此 SFT 是格式与局部策略初始化,而不是完整的多轮训练替代品。

3. 逐步奖励的多轮 GRPO:在同一进度下比较生成质量

RL 从 SFT 模型出发,对同一输入采样一组完整绘制轨迹,每条轨迹逐轮观察自身生成的画布。 对于同一幅草图,轨迹共享部件数,因此正常完成的轨迹可以按相同绘制步骤对齐。 真实路径也能按当前已绘制的部件组合,得到与生成状态对应的真实局部画布。 这使奖励可以评价“截至当前这一步的结果”,而不是拿残缺草图和最终完整图像作不公平比较。

每一步使用 CairoSVG 渲染当前画布,并以 DreamSim 预训练集成模型比较生成图与真实中间图。 其视觉奖励是两幅图像的 DreamSim 嵌入余弦相似度,式 (7) 的含义可以明确写为:

\[ r_{\mathrm{dreamsim}}=\cos\!\left(\operatorname{dreamsim}(I_{\mathrm{gen}}),\operatorname{dreamsim}(I_{\mathrm{gt}})\right). \]

其中两幅图必须包含同一组已绘制部件;奖励既看到新部件,也看到它与已有内容组合后的整体布局。 DreamSim 衡量的是图像之间的感知相似性,并不直接计算文本与草图的语义匹配。 作者另外加入最终路径数量奖励,抑制 GRPO 偏好过长输出导致的无必要笔画增长。 该项只约束整幅草图的路径总数,因为逐部件数量信号在实验中被认为噪声太大。

优势计算是方法的另一处关键:不同步骤的奖励不混在一起标准化,而是在同一步、同一组轨迹内比较。 按主文式 (6) 及邻近文字,记第 \(g\) 条轨迹第 \(t\) 步的组合奖励为 \(r_g^t\),其关系为:

\[ \hat A_g^t=\tilde r_g^t=\frac{r_g^t-\operatorname{mean}(\mathbf R^t)}{\operatorname{std}(\mathbf R^t)},\qquad \mathbf R^t=\{r_g^t\}_{g=1}^{G}. \]

每一步的优势直接用于这一轮响应中的词元,而不是把未来各步的标准化奖励继续求和。 直观上,这让第一部件与其他第一部件比较,最后一步与其他最后一步比较,避免绘制进度不同造成的奖励尺度混杂。 它仍不是对新部件的纯增量打分:当前画布包含旧笔画,所以先前错误仍会影响后续视觉奖励。 格式验证器在奖励之前检查输出,非法格式会获得惩罚并提前终止轨迹;这种异常轨迹不能视为正常完成的等长样本。 主文还说明异常情况下路径计数取截至最后成功步骤的累计值。

一个完整示例

以原文图 9 的椅子编辑为例,总体任务是画出包含椅背、左右扶手、平座面和四条腿的对象。 用户给定圆形椅背后,智能体先生成属于椅背的曲线,再在渲染结果上继续添加后续部件。 到画扶手时,输入不只是“左扶手”几个字,还包括已经存在的椅背位置和相应历史路径。 如果换一个初始画布而保留后续描述,智能体可以生成适应该画布的不同结果,而非机械复制一套绝对坐标。 训练时,同一绘制进度可与真实部件组合得到的画布比较;实际推理时则不需要真实参考图或 DreamSim 奖励。 另一组图 9 示例修改较早的头发描述,后续部件描述保持不变,展示差异主要集中在受影响部件的情况。 这些是定性能力展示,不代表任意修改都能保证其他曲线完全不变,也不等价于任意单笔画的精细编辑接口。

损失函数 / 训练策略

主模型采用 Qwen3-VL-30B-A3B,两阶段都使用 rank 64 的 LoRA,训练平台为 Tinker。 SFT 使用交叉熵,学习率为 \(2\times10^{-4}\),批大小 128,共 5400 步。 RL 再训练 1000 步,学习率为 \(3\times10^{-6}\),批大小 8,同一输入的采样组大小也是 8。 优化器为 Adam,\(\beta_1=0.9\)、\(\beta_2=0.95\)、\(\epsilon=10^{-8}\);RL 的 KL 散度损失被关闭。 SFT 将坐标舍入到最近的十位数,RL 保留原始整数坐标;前者降低初始学习的数值粒度要求,后者允许更精细的几何输出。 主文报告组合奖励权重 \(\lambda=1.0\),但缓存式 (8) 至式 (11) 有符号丢失,不能可靠恢复路径数量奖励及完整优化目标。 因此这里保留可确认的奖励语义和训练参数,不把猜测补全的表达式当作作者精确公式;零方差奖励组的实现处理也未在可读主文中交代。

实验关键数据

主实验

主实验比较完整模型、仅 SFT 版本、SketchAgent、Gemini 3.1 Pro,以及先用 SDXL 生成图像再用 SwiftSketch 转为草图的级联方案。 SketchAgent 后端改为 Claude Sonnet 4.5,因为原用的 Claude Sonnet 3.5 已不可用;整图生成基线接收拼接后的全部部件描述。 自动指标使用 Long-CLIP 的图文嵌入余弦相似度,文本上限为 248 词元,与训练用 DreamSim 不同。 主文图 5 报告完整模型在所比较方法中最高,但下面选取数值对应清楚的用户研究作为主结果表。

下表整理自图 6(第 12 页),指标均为用户在双盲强制二选一中偏好完整模型的比例;不是分类准确率。

比较对象 最终质量偏好率 逐步质量偏好率 评价条件
仅 SFT 84.1% 83.1% 同方法的训练阶段对比
SketchAgent 77.5% 70% 两者均支持逐部件生成
Gemini 3.1 Pro 66.1% 未评测 整图生成基线
SDXL + SwiftSketch 91.1% 未评测 文本到图像再到草图

逐步质量研究每个比较收集 426 个回答、涉及 142 名参与者;最终质量每个比较有 560 个回答、涉及 146 名参与者。 两类研究合计 3,092 次成对比较,不能将其当成同样数量的独立参与者。 研究同时评价成图和绘制过程,避免仅凭最终图好看就断言中间步骤遵循部件描述。

消融实验

下表来自表 1(第 14 页),全部采用 Qwen2.5-VL-3B,而非主实验的 Qwen3-VL-30B-A3B;指标为平均 Long-CLIP,相似度越高越好。

配置 Long-CLIP 奖励与轨迹设置
单轮 RL 0.281 整个绘制作为一次输出,仅最终奖励
多轮结果奖励 0.286 分多轮绘制,用最终渲染奖励计算各步优势
多轮过程奖励 0.298 各中间画布参与逐步奖励计算

关键发现

  • 多轮过程奖励相对多轮结果奖励提高 0.012,相对单轮 RL 提高 0.017,支持中间视觉反馈的价值,而不只是把输出分段。
  • 完整模型相对仅 SFT 的最终质量偏好率为 84.1%,逐步质量偏好率为 83.1%,说明 RL 的收益并不限于最后一帧。
  • 这些对照没有单独隔离路径数量奖励、视觉输入或标注批评步骤的贡献,不能据此为每个组件分别分配收益。

亮点与洞察

  • 部件标签既服务交互编辑,也让任意中间状态具备真实参考图。数据组织方式直接决定了能否获得密集监督。
  • 随机排列使“当前状态加下一部件”成为学习单位,而不是记住一套固定绘图顺序。它为从不同局部画布继续生成提供了训练依据。
  • 同步骤归一化把比较限制在相同绘制进度。可迁移的启发是:当任务阶段可对齐时,奖励基线也可以利用这种结构,而不必跨全部状态混算。

局限与展望

  • 作者承认,未见对象和域外部件泛化较弱,语义相近的输入可能被画成训练集中的近邻类别。自然语言接口不等于开放世界生成能力。
  • 精确数值坐标预测仍可能产生明显错位,方法目前支持部件级编辑,而非更细的单笔画级编辑。定性示例不应被扩大为普遍的编辑保证。
  • 从评测角度看,主文没有在所给缓存中明确交代测试集规模、划分细节或偏好置信区间;更完整的复现需要补充材料。
  • 高质量自动标注仍可能继承 VLM 的错误,主文未给出足以独立判断路径归属准确率的人审统计。读者可将人工抽检和更广对象覆盖视为优先扩展方向。
  • 当前资料为完整主文及参考文献,不含作者提及的补充材料;部分公式抽取损坏已在方法部分标明,未凭空恢复。

相关工作与启发

  • 对比 SketchAgent:二者都强调顺序绘制,本文进一步引入可训练的部件数据和自生成画布上的 RL;代价是需要专门的数据与训练资源。
  • 对比 Reason-SVG 与 Rendering-Aware RL:这些工作也利用渲染质量训练矢量生成器,本文的区别在于把真实中间状态用于多轮信用分配,而非仅观察完成结果。
  • 对比 SwiftSketch 与 DiffSketcher:前者是图像到草图扩散模型,后者通过测试时优化生成草图;本文将自由文本部件描述直接接入逐步路径生成。
  • 可迁移研究方向:对能提供阶段性参考状态的图形编辑或图表构建任务,可以考虑类似的逐步监督;这是读者推论,并非论文已经验证的跨任务结果。

评分

  • 新颖性: 4/5。部件标注、可交互状态表示与逐步 GRPO 形成一致设计,贡献不仅是替换绘图模型。
  • 实验充分度: 4/5。含自动指标、用户研究和奖励对照,但受控消融使用小模型,组件与泛化分析仍有限。
  • 写作质量: 4/5。数据到训练的逻辑清晰;当前文本缓存的公式损坏影响复现阅读,不应直接归因于原始排版。
  • 价值: 4/5。适合研究结构化视觉生成和过程奖励,但应用价值仍受对象覆盖与坐标稳定性限制。