SketchDirector:通过智能体布局推理与细节精化实现复杂场景草图生成 SketchDirector: Complex Scene Sketching via Agentic Layout Reasoning and Detail Refinement
用LLM智能体闭环规划布局、扩散先验精化细节,从文本生成可编辑的多概念矢量场景草图
前置知识
Bézier 曲线与矢量草图表示
贝塞尔曲线是由控制点定义的参数曲线,三次 Bézier 曲线含 4 个控制点,是 SVG 矢量图形的基本笔画单元。矢量草图就是一组有序 Bézier 曲线的集合,天然支持无损缩放和程序化编辑。本文用黑色三次 Bézier 曲线参数化所有笔画,一个物体就是若干条曲线的集合,物体可整体被移动、缩放或删除。
本文的资产生成、布局操作与细节优化全部围绕 Bézier 控制点展开,不理解这一表示就无法理解方法各阶段在操作什么。
可微矢量渲染器(diffvg/pydiffvg)
diffvg 把 SVG 光栅化过程改造成可微运算,使渲染出的像素对曲线控制点可求导,从而能用梯度下降直接优化控制点位置让图像逼近目标。本文使用 pydiffvg 渲染 Bézier 草图(画布 64×64 网格、每格 12×12 像素、总分辨率 780×780),支撑细节精化阶段对控制点的联合优化。
细节精化阶段的核心是按梯度更新所有控制点 $\theta_i$,没有可微渲染就无法从图像损失回传到矢量参数。
扩散先验蒸馏(SDS 与 RFDS)
Score Distillation 利用预训练文本到图像生成模型作为先验:把矢量草图渲染图送入扩散/流模型的噪声化过程,取其分数梯度反传到图像参数上,使图像在语义上贴合文本提示。本文采用 Rectified-Flow Distillation Sampling(RFDS),把校正流模型当作即插即用先验,为局部物体和全局画布分别提供监督信号 $\mathcal{L}_{RFDS}$。
细节精化的质量提升几乎全部来自 RFDS 目标函数,理解蒸馏先验如何工作才能看懂最后一步优化。
智能体闭环(Plan–Execute–Verify–Correct)
让 LLM 以「计划→执行→验证→修正」循环完成任务的范式:先生成结构化程序,调用工具逐条执行,再用检查器评估结果,失败时带着反馈重新规划。本文把这套循环用于场景布局:工具是 move/scale/rotate/layer/delete/modify 六个操作,验证是几何检查加 VLM 评分,修正由分层记忆机制驱动。
SketchDirector 的核心贡献就是把布局编排建模成可自查、可自我进化的闭环,这是它与一次性生成方法的本质区别。
Jaccard 相似度
两个集合的相似度定义为交集大小除以并集大小:$\mathrm{Sim}(A,B) = \frac{|A \cap B|}{|A \cup B|}$,取值 0 到 1。本文用它衡量当前场景的物体集合与历史成功经验的物体集合有多重叠,超过阈值 $\tau_{sim}$ 才检索该经验作为布局参考,例如 {树,松鼠,鸟} 与 {树,松鼠,猴} 的相似度为 0.5。
长期经验记忆的检索机制完全建立在它之上,是理解自进化修正模块如何跨场景复用经验的关键。
研究动机
现有场景草图生成方法存在两个层面的困境。其一,早期方法(Li et al. 2019 的 photo-sketching、Im2Pencil,以及 Chan et al. 2022)大多是图像到素描的翻译,依赖参考照片且输出不可编辑的栅格图;矢量化的 Clipascene、MROSS 仍需要参考图像,开放域的文本引导复杂场景草图生成基本处于空白。其二,即便近年方法引入了物体概念,物体依然是被动元件:VectorFusion、DiffSketcher、SVGDreamer 等蒸馏类方法把整个场景当作不可分割的整体优化,物体隐式埋在路径集合里,无法局部编辑或复用;SketchAgent 这类 LLM 串行绘制方法虽然语义理解强,但一次成型、没有布局验证,物体经常重叠、比例失衡;SketchTriplet、SketchAny、CoProSketch 等物体感知方法中,物体只是固定的组合单元或辅助结构,缺少动态的布局规划、物体级控制和逐物体迭代优化,难以应对「狐狸坐在洞口、木头倒在旁边、蘑菇长在四周」这种需要空间推理的多概念场景。
本文的目标是本文要构建一个全自动的多概念场景草图生成系统:输入一句场景级文本描述,输出语义对齐、布局合理、细节连贯且物体级可编辑的矢量草图。具体要求包括:(1)每个物体是独立的 SVG 资产,可以被单独移动、缩放、换层甚至重新生成;(2)布局由显式程序控制,出错能定位、能修正;(3)细节精化必须在提升质量的同时保持既有轮廓结构和空间布局不被破坏;(4)质量上要在语义、构图、完整性、美感等指标上超过 LLM 直绘和扩散蒸馏两类基线。同时发布 MCSketch8K 数据集(1000 幅场景草图、4000+ 个解耦矢量物体资产、800 个物体类别,附构图布局与物体级操作标注)支撑后续研究。
与已有工作不同的是,作者抓住了被现有工作忽视的一点:真实创作本质上是迭代式的——艺术家会不断分组、挪动、缩放单个元素,并根据创作目的把草图从粗糙草稿调整到精细刻画。已有方法要么一次性生成整体(无迭代、无物体概念),要么把物体当固定积木(无规划、无验证)。本文引入「导演」视角:LLM 不直接画场景,而是通过一个紧凑可组合的原子操作库显式地编写布局程序,并在 Plan–Execute–Verify–Correct 闭环里用几何与视觉语义双重验证自查,用短期失败记忆和长期经验记忆实现自我进化。此外,在精化阶段它把「曲线段」而非「无结构点集」当作优化原语,从源头上保护了草稿的结构信息。
核心方法
直觉上,SketchDirector 完整模拟了人类画家的创作流程:先给每个物体打独立草稿,再像导演一样反复调整物体的大小、位置和遮挡层次,直到构图满意,最后才逐步深入刻画细节。技术路线分四个阶段:第一阶段资产生成,LLM 把场景文本分解为物体集合,每个物体由 SketchAgent 生成点序列并最小二乘拟合为三次 Bézier 曲线草稿,同时注入从轮廓导出的白色矢量背景掩码,让后续推理可以拼贴式组装;第二阶段定义操作库,move/scale/rotate/layer/delete/modify 六个原子操作构成智能体的动作空间;第三阶段智能体布局推理,以 Plan–Execute–Verify–Correct 闭环迭代编排布局,画布离散成 64×64 网格辅助空间推理,几何与 VLM 双重验证,失败时借助分层自进化记忆修正;第四阶段细节精化,通过曲线轮廓重采样获得固定拓扑的 Bézier 原语,再做局部-全局渐进联合优化。默认配置用 GPT-5.5 当智能体、pydiffvg 做可微渲染,在单张 RTX 4090 上资产生成约 20 秒/物体,单次布局尝试的规划/执行/验证约需 30/12/40 秒,精化约 5 分钟/物体、400 次迭代,全流程未精化约 6 分钟、精化后约 21 分钟。
核心创新是把场景草图生成从「一次性整体优化」重构为「显式程序化的布局导演 + 闭环自查 + 结构保持精化」。与已有方法有三点本质区别。第一,布局决策被编码为可执行的功能性程序(如 scale('street', 0.70)、move('street', 32, 45)、layer('street', 'bg'))而非直接预测物体属性,每条操作都更新显式的场景状态(坐标、缩放、旋转、深度),形成可追溯的编辑轨迹,验证失败时能精确定位到是哪条操作出了问题。第二,验证是混合式的:几何验证检查边界越界与缩放因子是否在 $[0.1, 1.5]$ 内,视觉语义验证让 VLM 对「渲染画布 + 物体拼贴」双图输入打五维分数($S_{sem}, S_{comp}, S_{compl}, S_{size}, S_{aes}$),加权 $\mathcal{S}_{visual} = \sum_i \lambda_i S_i \ge \tau_{visual}$ 才放行,整体条件为 $P_{overall} = P_{bound} \wedge P_{size} \wedge P_{visual}$。第三,分层自进化记忆:短期失败记忆在当前场景内把失败轨迹转成纠正反馈(成功后即丢弃),长期经验记忆按物体集合的 Jaccard 相似度跨场景检索成功布局经验注入规划。精化阶段则把曲线段当优化原语,局部语义与全局画布渐进交替优化,确保细节提升不毁掉结构。
方法步骤详情
第一步资产生成:输入场景文本 $T$,LLM 解析出物体集合 $O = \{o_1, ..., o_n\}$,每个物体 $o_i = (id_i, d_i, z_i)$(唯一标识、描述句、相对深度序),雾等无法用笔画表达的抽象环境元素被排除;随后以 SketchAgent 为草稿生成器,按描述 $d_i$ 预测画布上的有序采样点,最小二乘拟合为三次 Bézier 曲线草稿 $g_i$,并把物体轮廓导出的白色矢量背景掩码注入资产。第二步规划与执行:智能体综合几何属性、网格位置、包围盒、渲染画布与历史操作,生成操作程序(画布离散为 64×64 网格,网格位置确定性映射回画布坐标),程序逐条执行并更新物体属性与场景状态,例如「车辆在城市中行驶」场景会先生成 scale/move/layer 序列锚定街道与背景,再摆放前景车辆。第三步验证:几何层检查物体包围盒是否完全在画布内($P_{bound}$,违例计数 $I_{bound} = 0$ 才通过)与缩放因子是否落在 $[0.1, 1.5]$($P_{size}$);语义层由 VLM 对双图输入打五维分并加权聚合,要求 $\mathcal{S}_{visual} \ge \tau_{visual}$。第四步修正:任何一项不通过,失败轨迹(程序、中间渲染、物体属性、验证反馈、失败类别)写入短期失败记忆,反馈经 analyze_failure 生成纠正信号触发重规划;同时用 $\mathrm{Sim} = \frac{|S_{new} \cap S_{mem}|}{|S_{new} \cup S_{mem}|} \ge \tau_{sim}$ 从长期经验库检索相似物体集合的成功布局经验作为规划参考。第五步细节精化:先做曲线轮廓重采样,把每个物体轮廓按弧长用最大余数法分配预算,以 de Casteljau 算法细分为恰好 $N_{target}$ 段三次 Bézier(保持原路径与顺序);再做渐进联合优化,第 $i$ 轮只优化当前物体控制点,损失 $\mathcal{L}_i = \lambda_{obj}\mathcal{L}^{obj}_i + \lambda_{scene}\mathcal{L}^{scene}_i$,其中局部项 $\mathcal{L}^{obj}_i = \mathcal{L}_{RFDS}(I^{obj}_i, T^{obj}_i)$ 监督单物体语义,全局项先把物体按布局属性 $\ell_i$ 增量合成到画布 $I^{scene}_i = C(I^{scene}_{i-1}, I_i, \ell_i)$,再用累积文本 $T^i_{acc}$ 做 $\mathcal{L}^{scene}_i = \mathcal{L}_{RFDS}(I^{scene}_i, T^i_{acc})$,文本条件随物体加入逐步扩展,共约 400 次迭代。
技术新颖性
与 VectorFusion、DiffSketcher、SVGDreamer 等蒸馏类方法相比,本文的优化对象从整体路径集合变为物体级曲线段,且优化只是流水线的最后一环而非全部——布局质量主要由前面的智能体闭环保证。与 SketchAgent 相比,本文没有停留在串行绘画,而是增加了显式操作库、几何+语义双模态验证和双记忆修正,把单向生成变成可自查的闭环。与 SketchTriplet、SketchAny、CoProSketch 相比,物体不再是固定的组合单元,而是可规划、可交互、可迭代修正的自主单元。技术细节上的新颖点包括:布局操作被设计成最小且可组合的原子程序,单个操作显式且易验证,组合即可表达丰富布局;曲线轮廓重采样直接用 de Casteljau 细分既有矢量轮廓并保持拓扑与顺序,相比 CLIPasso 式点采样为优化提供了更稳定的初始化空间;「逐物体优化 + 文本条件累积扩展 + 画布渐进合成」的组织方式缓解了局部目标与全局目标同时优化时的冲突,这在场景级草图蒸馏中是新做法。
实验结果
定量评估在 MCSketch8K 抽样的 30 个多概念提示上进行,用 Qwen3.7-Plus、Claude-Opus-4-7、Gemini3.1-Pro、GPT-5.5 四个 VLM 独立打分取平均(Table 1)。SketchDirector 达到 Sem 0.916 / Compo 0.772 / Compl 0.821 / Aes 0.836 / Size 0.821,耗时约 6 分钟;加细节精化后进一步提升到 0.923 / 0.788 / 0.843 / 0.869 / 0.842,约 21 分钟,五个指标全面第一。与优化类基线差距悬殊:VectorFusion 仅 0.466/0.252/0.338/0.417/0.412(约 17 分钟),SVGDreamer 0.690/0.546/0.620/0.650/0.695(约 24 分钟),DiffSketcher 0.567/0.374/0.381/0.567/0.537(约 13 分钟)。与 LLM 类基线相比,SketchAgent 为 0.742/0.598/0.589/0.714/0.693,GPT-5.5 直出已达 0.911/0.730/0.811/0.813/0.820,说明闭环布局带来的增益建立在强模型之上。用户研究有 68 名参与者、15 个提示、每准则 5100 份回答(Figure 8):vs SketchAgent 偏好率 79.4%/75.1%/76.6%(物体完整性/布局/美感),vs GPT-5.5 为 72.8%/69.0%/70.0%,vs DiffSketcher 79.2%/72.4%/78.3%,vs SVGDreamer 74.3%/63.1%/64.7%,vs VectorFusion 72.9%/64.8%/64.5%。消融(Table 3)显示去掉规划模块后平均迭代数从 1.375 飙到 12.375、验证分从 0.873 跌到 0.357,Sem 从 0.839 跌到 0.676;去掉语义验证 Sem 降至 0.603;去掉几何验证主要伤害物理合理性(Sem 0.698);去掉短期记忆迭代数增至 2.875(反复试错),去掉长期记忆 Sem 降至 0.781。骨干消融(Table 2)中 GPT-5.5 全面最佳(Sem 0.926、迭代仅 1.656、验证分 0.803),Qwen3.7-Plus 需要 10.743 次迭代且 Sem 仅 0.629,Gemini-3.1-Pro 与 Claude-Opus-4-7 居中但分别需 5.332/5.843 次迭代。Figure 11/12 的精化消融证明曲线重采样优于点采样,去掉局部/全局/渐进优化任何一项都会导致物体失真或场景不连贯。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 多概念场景草图生成(30 提示,VLM 多模型评分) | 语义对齐 Sem. | 0.916(未精化)/ 0.923(精化后) | GPT-5.5 直出 0.911;SVGDreamer 0.690;VectorFusion 0.466 | 较最佳基线 +0.005,较蒸馏类最高 +0.233 |
| 多概念场景草图生成 | 空间构图 Compo. | 0.788(精化后) | GPT-5.5 0.730 | +0.058 |
| 多概念场景草图生成 | 物体完整性 Compl. | 0.843(精化后) | GPT-5.5 0.811 | +0.032 |
| 多概念场景草图生成 | 视觉美感 Aes. | 0.869(精化后) | GPT-5.5 0.813;SVGDreamer 0.650 | +0.056 |
| 多概念场景草图生成 | 生成时间 | 未精化约 6 分钟 / 精化约 21 分钟 | GPT-5.5 约 20 秒;DiffSketcher 约 13 分钟;SVGDreamer 约 24 分钟 | 比蒸馏类快但远慢于纯 LLM 直绘 |
| 用户研究(68 人,5100 份/准则) | 布局对齐偏好率 | 79.4%(vs SketchAgent)/ 69.0%(vs GPT-5.5) | SketchAgent / GPT-5.5 | 三准则全面过半偏好 |
| 智能体消融(30 提示) | 验证通过率 / 平均迭代数 | 完整方法 0.873 / 1.375 次 | 去规划 0.357 / 12.375 次;去短期记忆 0.635 / 2.875 次 | 验证分 +0.516,迭代数减少约 9 倍 |
局限与改进
作者承认三点局限(4.4 节,Figure 13):(1)复杂物理与语义交互建模困难,如女子与水壶的互动、位于山丘之上的城堡这类空间依存关系难以正确生成;(2)细节精化可能产生实例幻觉,例如把一只羊复制成两只,导致物体数量与文本不一致,缺少实例级约束来保持物体身份和数量;(3)多模态验证与迭代优化的计算开销大,尤其当需要多轮修正时。我的补充观察:整个系统的效果上限几乎由底层 LLM/VLM 决定(Table 2 中 GPT-5.5 与 Qwen3.7-Plus 差距巨大),框架贡献与强模型红利相互纠缠,难以剥离评估;所有定量指标都来自 VLM 主观评审,虽用四个模型平均以减少偏差,但评审模型之一正是作为智能体的 GPT-5.5,存在同源模型循环评分的风险,且全文没有 FID、几何误差等客观指标;未精化 6 分钟、精化 21 分钟的成本对交互式应用仍偏重;长期经验记忆用物体集合 Jaccard 检索比较粗糙,无法表达「物体相似但空间关系不同」的经验。
独立分析的弱点
(1)强模型依赖:Qwen3.7-Plus 作为骨干时语义分仅 0.629、平均要 10.743 次迭代才收敛,说明闭环框架无法弥补弱模型的空间推理短板,部署成本被旗舰模型 API 绑定。改进方向:用 MCSketch8K 的布局与操作标注微调一个轻量布局专用模型,或在规划时引入检索增强的网格位置先验,降低对旗舰模型的依赖。(2)验证器是瓶颈也是单点故障:几何验证只查边界与缩放范围,语义验证完全靠 VLM 主观打分,打分噪声会直接误导重规划;且单次验证约 40 秒,比规划(30 秒)和执行(12 秒)都慢,是布局尝试中最贵的一环。可训练一个轻量判别器替代部分 VLM 调用,或对相似画布状态缓存验证结果。(3)精化幻觉:RFDS 蒸馏时累积文本与画布实际内容可能冲突,诱导出多余实例(羊被复制)。可在损失中加入基于轮廓拓扑的实例计数惩罚,或在优化前先做一次物体数量校验。(4)成本结构:单物体精化约 5 分钟、400 次迭代,随物体数量线性增长;可探索多物体并行优化、早期停止策略,或把闭环流程蒸馏成前馈生成器实现秒级生成。(5)操作库表达力有限:move/scale/rotate/layer/delete/modify 六个原语无法表达「扶着」「靠着」「牵着」等连接性关系语义,作者也承认交互场景是弱项;可扩展连接类或约束类操作原语。
未来方向
作者提出的方向包括:更强的关系与交互建模以处理物体间的物理/语义依存;实例感知约束以在精化时保持物体身份与数量;更高效的验证与优化策略以降低计算成本。基于论文成果还可以延伸:把长期经验记忆从物体集合 Jaccard 检索升级为「物体+空间关系」图结构级别的结构化检索,使经验复用能覆盖构图相似但语义不同的场景;把闭环布局推理范式迁移到插画分镜、UI 线框图、漫画排版等其他矢量生成任务;结合用户反馈做交互式重规划——由于布局被显式程序化,用户修改可以只重放/修改受影响的操作而不必重新生成整幅场景;用 MCSketch8K 的操作标注训练端到端布局程序生成器,摆脱对昂贵闭环验证的依赖;探索 RFDS 之外更稳的精化先验或加入负提示抑制实例幻觉。
复现评估
论文给出项目页 https://yiki77.github.io/SketchDirector/,但正文没有明确声明开源代码仓库,严格复现需要自建整条流水线。有利条件是技术栈全部公开且明确:单张 RTX 4090 即可(渲染分辨率 780×780、每物体 400 次迭代精化)、pydiffvg 做可微渲染、SketchAgent 做草稿生成器、RFDS 需要一个校正流先验模型、智能体用 GPT-5.5、验证与评审需调用多个 VLM(API 成本不低,每场景验证约 40 秒/轮)。MCSketch8K 数据集(1000 场景草图、4000+ 物体资产、800 类别、布局与操作标注)若随代码发布将显著降低复现门槛。难度评估:中等偏高——曲线重采样、RFDS 优化等单个模块实现直接,但闭环的提示词设计、验证阈值 $\tau_{visual}$ 与 $\tau_{sim}$、网格到画布的映射等细节论文未完全披露,最终效果可能对提示词工程敏感;如果只是想借用思路,用现成 LLM 加自定义操作库可以快速搭出简化版并验证核心闭环的价值。
论文图表
展示论文效果总览:上排是山寺、石拱门遗迹、猫睡沙发、长椅读报等多样化场景草图;左下排是同一提示生成出的多种布局变体;右下排是渐进式细节精化过程,显示精化如何在保持结构和空间布局的同时增强细节。
一图看懂论文两大卖点——智能体带来的布局多样性和精化带来的质量提升,是判断「这篇论文效果好不好」的第一入口。
(A) 展示场景草图在纸面动画、概念设计、交互设计中的应用实例;(B) 展示艺术家从简单草稿到精细草图的不同程度精化,强调精化需按创作目标调整且要保持结构。
这是动机图:说明真实创作是迭代式、物体级、可调精化程度的工作流,而现有方法恰恰不支持这种工作方式。
展示一次成功布局中程序与场景状态的同步演化:每条操作(如 scale('street', 0.64)、move('vehicle', 33, 43)、layer('cityscape', 'mid'))执行后,物体属性字典(x、y、scale、rotate、depth)同步更新,最终形成从草稿到最终布局的可追溯轨迹。
说明「程序化布局」的具体形态——操作即状态更新,这正是错误可定位、经验可积累的基础。
对比点采样(CLIPasso 式,从物体区域均匀采稀疏控制点,优化时独立漂移导致几何畸变)与本文曲线采样(直接细分既有轮廓,保持拓扑)在猫头鹰、麦田稻草人、桥等物体上的效果。
这是「把曲线段当优化原语」这一核心设计选择的直接证据,解释了精化为何能保持结构。
(A) 展示复杂交互失败案例,如女子与水壶的互动、山丘上的城堡等空间依存关系处理不当;(B) 展示精化时的实例幻觉,如一只羊被复制成两只。
作者亲口承认的失败模式,帮助读者判断该方法在自己的目标场景(强交互、实例敏感)是否适用。
四种骨干的量化对比:GPT-5.5 最强(Sem 0.926、Comp 0.795、平均迭代 1.656、验证分 0.803),Gemini-3.1-Pro(0.858、5.332 次迭代)、Claude-Opus-4-7(0.879、5.843 次)、Qwen3.7-Plus(0.629、10.743 次)依次递减。
揭示框架性能与底层模型能力强耦合,是评估实际部署成本和可迁移性的关键数据。
闭环各组件消融(30 提示):完整方法 Sem 0.839、迭代 1.375、验证分 0.873;去规划迭代暴增至 12.375、验证分跌至 0.357;去语义验证 Sem 跌至 0.603;去几何验证 Sem 0.698;去短期记忆迭代增至 2.875;去长期记忆 Sem 降至 0.781。
证明闭环里每个模块都有不可替代的贡献,并区分了各模块各自负责的失败类型(效率/物理合理性/语义一致性/记忆复用)。