PAPER READING / CVPR 2025

BlenderGym

从“生成得像”
到“评测得可信”。

Benchmarking Foundational Model Systems for Graphics Editing

Yunqi Gu · Ian Huang · Jihyeon Je · Guandao Yang · Leonidas Guibas
Stanford University · CVPR 2025, pp. 18574–18583 · 官方项目标注 Highlight

245人工制作的起点—目标任务
5图形编辑任务类别
13论文中的模型/系统配置

这篇论文最值得借鉴的,不只是把模型放进 Blender,而是把真实编辑工作流变成可执行、可比较、可诊断的实验。对 PMG 而言,下一步是让评测真正识别视觉、程序、材质行为与编辑能力之间的差异。

阅读基准:arXiv:2504.01786v1,2025-04-02,24 页含附录;出版身份经 CVF 核查。代码快照核查日 2026-09-18。论文历史结果不代表当前模型排行榜。本文未运行 BlenderGym 实验。

01 / RESEARCH QUESTION

为什么需要这个 benchmark?

图形编辑不是一个统一的“写代码”问题。改变灯光颜色需要视觉判断;调整物体位置需要空间推理;修改材质或几何节点还需要把感知差异转成有效程序。过去各系统使用自建场景展示能力,难以判断性能差异究竟来自模型、任务难度、工具封装还是推理预算。

Paper Verified

BlenderGym 用已知目标场景的重建式编辑建立统一协议:给起始代码与起点/目标渲染图,要求系统修改代码,再实际渲染、量化比较。任务不要求模型从空白生成任意场景,也不是用一句自由文本让评委判断艺术质量。[§3]

贡献 1 · 可比较的任务载体

五类共 245 个手工任务,同时提供 Blender 文件、起点与目标脚本、图像和差异描述,覆盖参数修改和程序结构修改。

贡献 2 · 可执行的系统评测

终端评测采用图像与几何距离。系统内部可以用 VLM 选候选,但最终 benchmark 分数不是这个 VLM 自己给出的评分。

贡献 3 · 用 benchmark 得到新发现

把生成和验证拆开实验,发现增加验证计算也能改善选择;总预算不同时,较优的生成/验证分配比例发生变化。

阅读时应保留的三条边界

  1. “任务可以客观算分”不等于“这些分数完整代表人类偏好”;附录明确给出物理合理性与尺度问题。
  2. 模型结果来自特定 BlenderAlchemy 式系统、提示、工具和预算;不能直接解释为裸模型固有能力。
  3. 验证扩展的主要实验来自 16 个 blend shape 任务,预算分配另加 15 个 lighting 任务;不是全部 245 项、所有模型和所有图形任务的普遍定律。
原论文 Figure 1:任务概览:五类起点—目标重建任务。
Figure 1 任务概览:五类起点—目标重建任务。 原图:Gu et al., BlenderGym (2025)。查看原文 ↗
02 / BENCHMARK DESIGN

把编辑工作拆成可测的任务。

样本来自 BlenderAlchemy、Infinigen、BlenderKit 等原型,经人工构造起点—目标场景。245 是任务对数量,不能理解为 245 个完全独立的底层资产家族。原文未给出完整的训练/验证/隐藏测试划分;本文研究的是评测集上的推理能力,不是训练一个新模型。[§3.1]

任务 / 数量系统要掌握什么编辑对象论文指标 ↓
Geometry / 50形状、尺度、空间分布BPY 与 Infinigen 程序、几何节点PL、N-CLIP、CD
Lighting / 40从颜色、阴影反推光照强度、颜色、位置、朝向及光源类型PL、N-CLIP
Material / 40纹理、颜色、位移和图案BPY 与 Infinigen 材质代码/节点PL、N-CLIP
Blend Shape / 75将语义参数对应到连续形变带语言命名的形状控制量PL、N-CLIP、CD
Placement / 40空间关系与坐标变化直接坐标、位移向量、相对放置函数PL、N-CLIP、CD

一个样本中,什么能给模型,什么应该保留给评测?

公开输入

基础 .blend
起始 Python 脚本
起点/目标图像

系统输出

修改后脚本
可执行候选
最终选定编辑

评测真值

目标脚本/场景
评测专用视角
目标渲染与几何

最终测量

多视角 PL、N-CLIP
适用任务的 CD
执行失败情况

数据包虽然包含目标脚本和语言差异描述,但论文标准系统描述的输入是起始脚本与起点/目标图像。不能因为目标代码在数据包里,就允许代理读取它。差异描述是否作为额外提示也必须单独声明,不能悄悄加入基础设置。

相机选择是一部分评测协议

3D 相关任务至少固定三个视角。模型接收两个视角,至少一个是展示整体关系的 comprehensive view;最终评测使用全部视角。附录进一步要求所有关键对象至少在一个输入视角中出现,避免把“看不见的目标”变成不公平惩罚。额外评测视角用于检查三维一致性,而非单张图投机。[Appendix S5]

原论文 Figure 16:输入视角与仅用于评测的视角;第一列展示整体关系。
Figure 16 输入视角与仅用于评测的视角;第一列展示整体关系。 原图:Gu et al., BlenderGym (2025)。查看原文 ↗

人类基线证明“难,但不是不可解”

10 名普通 Blender 用户完成约 20% 的实例,每题最多 8 分钟,对齐论文模型系统的平均时间,并用相同指标测量。这里的“约 20%”不是全体任务的人类真值,也未完全消除熟练度、交互界面、样本选择和时间分布差异。稳健的新 benchmark 应公布确切样本 ID,在同一子集报告人和模型的配对比较。

03 / EXECUTABLE SYSTEM

生成、执行、选择,再继续编辑。

原论文 Figure 2:Brainstormer、Code editor 与 Verifier 组成执行闭环。
Figure 2 Brainstormer、Code editor 与 Verifier 组成执行闭环。 原图:Gu et al., BlenderGym (2025)。查看原文 ↗

Our Interpretation以下符号是为解释流程而统一引入的记号,不声称论文原文使用了同一套公式。

\[I_{t,v}=R(B,S_t;c_v),\qquad \widehat S=\mathcal A(S_0,I_{0,\mathcal V_{\mathrm{in}}},I^{\ast}_{\mathcal V_{\mathrm{in}}};C).\]

\(B\) 是基础 Blender 场景;\(S_0\) 是起始脚本;\(S_t\) 是第 \(t\) 轮保留的脚本;\(R\) 表示执行并渲染;\(c_v\) 是第 \(v\) 个相机及固定渲染条件;\(I^{\ast}\) 是目标渲染;\(\mathcal A\) 是整个编辑系统;\(C\) 是预算。生成对象是可执行脚本,不是扩散 latent 或直接输出的 RGB 图。

\[\widehat S\approx\arg\min_{S\in\mathcal S_{\mathrm{valid}}}\frac{1}{|\mathcal V_{\mathrm{eval}}|}\sum_{v\in\mathcal V_{\mathrm{eval}}}D(R(B,S;c_v),I^{\ast}_v).\]

这是任务目标的概念表达:找一个有效脚本,使评测视角里的结果接近目标。实际 VLM 系统并不对这个目标反向传播,也不直接访问所有隐藏评测条件;它依赖看图、代码编辑和候选选择近似搜索。单张图的逆问题通常不唯一,因此恢复出另一份有效而视觉相符的程序也可能成功。

一轮发生什么?

  1. Brainstormer:比较当前与目标图像,定位最大的视觉差异,再在代码中定位相关修改。tune 修改现有数值;leap 允许结构变化,例如引入新节点。两种模式来自 BlenderAlchemy。
  2. Code editor:将最多五条修改建议逐项转成 before/after 代码片段,由辅助函数替换。这里仍可能出现语法错误、API 不兼容和修改错位置。
  3. Execution:候选在 Blender 中执行并渲染。视觉上看起来合理的建议,只有执行成功后才能成为可比较的图形结果。
  4. Verifier:将候选按顺序两两比较,与目标图像匹配,赢家进入下一轮淘汰,直到剩一个候选。
  5. Iteration:把赢家脚本传给下一轮生成。标准实验为 depth \(d=3\)、breadth \(b=4\),即每轮四份候选、共三轮。

这是一棵每层只保留一个赢家的搜索过程,不是保留所有路径的完整 \(b^d\) 树。候选总数名义上为 \(db=12\),实际模型调用数还取决于 brainstorm、逐条 code edit、验证和失败处理。文中系统含多个角色,但这里是在解析论文,并未另外启动代理执行实验。[§4.1]

提示模板的功能拆解

模板输入与指令输出约束影响
Figure 18 / leap起始代码+起点/目标拼图;指出主要差异和应修改的行最多 5 条建议,每条关联少量代码支持拓扑/结构修改,扩大搜索空间
Figure 19 / tune先辨认唯一最明显差异,再寻找数值变量,再修改赋值分步分析;最多 5 条建议把视觉感知与参数映射分开
Figure 20 / editor起始代码+一条修改建议原片段/新片段,不重写整份代码减少无关改动,但字符串替换依赖匹配
Figure 21 / verifier目标图+左右候选拼图代码块内选择 left 或 right容易产生位置偏置;选择不等于可靠评分

以上为中文释义,不是完整原始 prompt。原文完整模板见 PDF pp.20–22;不要把本页释义直接当成完全复现配置。论文并没有提供一套训练新模型的 system prompt/训练配方。

三个评测距离,各自回答不同的问题

\[D_{\mathrm{PL}}(I,J)=\frac{1}{3HW}\sum_{h=1}^{H}\sum_{w=1}^{W}\sum_{c=1}^{3}(I_{hwc}-J_{hwc})^2.\]

PL:当前官方实现取 RGB 前三通道并除以 255 后计算 MSE;\(H,W\) 为分辨率。它测像素误差,敏感于对齐、颜色和亮度;并非材质物理参数恢复准确率。实现尺寸不同时会调整第二张图的大小,因此 PMG 新协议应固定尺寸并显式拒绝尺寸不符,避免隐性预处理改变比较。[utils.py]

\[D_{\mathrm{NCLIP}}(I,J)=1-\frac{f(I)^{\top}f(J)}{\|f(I)\|_2\|f(J)\|_2}.\]

N-CLIP:\(f\) 为 CLIP 图像编码器。用于评测的公开 clip_similarity 加载 ViT-B/32,通过余弦相似度比较两张图;减一转换为越小越好。它是语义/整体视觉接近度,不能单独证明微观纹理、可平铺性和 PBR 行为正确。CLIP 在这里是冻结的度量模型,不是被训练的编辑器。

\[D_{\mathrm{CD}}(P,Q)=\frac{1}{|P|}\sum_{p\in P}\min_{q\in Q}\|p-q\|_2^2+\frac{1}{|Q|}\sum_{q\in Q}\min_{p\in P}\|q-p\|_2^2.\]

CD:上式给出常见对称平方 Chamfer 距离,说明如何比较两组几何采样点 \(P,Q\)。论文未充分说明点采样数、尺度归一化以及是否平方等实现细节,公开评测入口也尚未实现 CD;因此不能把此教学公式视为论文分数的已核实精确计算版本。

验证器扩展:重排后多次比赛,再决赛

\[w_i=\operatorname{SingleSelect}(\operatorname{shuffle}(\mathcal C),V),\quad i=1,\ldots,k;\qquad w^{\ast}=\operatorname{SingleSelect}([w_1,\ldots,w_k],V).\]

\(\mathcal C\) 是同一候选池;\(V\) 是两两选择器;\(k\) 为 reselection 次数。每次打乱顺序进行单淘汰,得到 \(k\) 个赢家,再对这份赢家列表单淘汰。它不是对字符串答案做多数投票,也没有训练新的 reward model。若每次比较消耗一次调用且不缓存,\(n\) 个候选的理论比较数为 \(k(n-1)+(k-1)=kn-1\)。重复赢家也可能增加调用;这个计数是算法分析而非对公开运行日志的测量。

交互理解:扩展验证需要多少比较?

固定 32 个候选,展示上述理想化调用计数;不是实验性能预测。

127两两比较次数
32候选数保持固定
04 / EVIDENCE

结果支持什么,又没有支持什么?

Table 1 · 完整主结果

下表重建论文的全部 13 个系统配置及人类基线。粗体为各列最优模型,下划线为次优模型;人类单独作为参照,不参与模型排名。横向滚动查看全部任务。PL 与 N-CLIP:Blend Shape/Placement 列乘 \(10^{-3}\),其他任务列乘 \(10^{-2}\);CD 保留论文原尺度。不同任务的显示数值不能直接求平均。

系统Blend ShapePlacementGeometryLightingMaterial
PL ↓N-CLIP ↓CD ↓PL ↓N-CLIP ↓CD ↓PL ↓N-CLIP ↓CD ↓PL ↓N-CLIP ↓PL ↓N-CLIP ↓
GPT-4o9.14020.470.90411.8930.3811.226.7478.5611.1922.4102.3983.6538.942
Claude-3.5-Sonnet12.7927.961.96213.1951.7611.2910.8113.041.4522.8974.0495.76911.44
GPT-4-Turbo15.2126.151.92712.2137.5712.808.16010.921.1202.7233.9125.4248.812
Claude-3-Haiku13.6229.722.56314.7844.1012.1310.1512.511.3623.7124.8245.96011.61
Gemini-1.5-flash23.1830.472.41210.9445.348.3249.44310.491.3233.5145.6886.36410.42
Qwen2-vl-7b16.7829.222.12315.3141.1214.21–––2.9852.225––
Qwen-Llama14.3228.232.01214.6534.9312.4113.9714.131.6733.1733.998––
Phi-3.5-vision12.5124.142.012––––––3.1276.012––
Phi-Llama12.1324.771.82614.6135.6112.619.81811.921.4713.6216.895––
MiniCPM-V-2.613.8629.921.99711.9931.6912.627.1278.5421.2293.8296.124––
MiniCPM-Llama13.7627.211.88212.7431.7215.819.56111.471.5693.7256.0907.15212.14
InternVL2-8b12.6929.091.92014.7135.9217.22–––3.9206.825––
Intern-Llama11.8023.831.86116.1537.2318.2213.7014.441.5783.8256.152––
Human0.9349.120.3990.42313.341.5321.2692.4340.3341.2391.6320.6293.043

“—”沿用原文:该任务中超过 75% 实例无法生成任何可执行脚本,并不表示零误差。人类仅完成约 20% 的任务,表中差距不应当作全体样本配对统计的置信估计。来源:Table 1, p.5。

可观察的性能差距

Material 的 PL:GPT-4o 为 3.653,人类为 0.629(均为表格缩放单位);模型误差约为人类的 5.81 倍。人类的数值低约 82.8%,但不是“成功率高 82.8%”。

指标间存在权衡

Material 的 N-CLIP 最好模型是 GPT-4-Turbo:8.812,略低于 GPT-4o 的 8.942;PL 则 GPT-4o 更好。Lighting 中 Qwen2-VL 的 N-CLIP 为 2.225,低于 GPT-4o 的 2.398,但其 PL 更差。

代码模型不是万能补丁

把编辑器换成 Llama3.1-8B 后,一些开源组合能完成更多 Geometry 任务,但最终视觉距离不总是改善。可执行性与目标一致性是两条轴。

原论文 Figure 3:人类与不同系统的 Lighting/Blend Shape 结果;注意微小外观差异。
Figure 3 人类与不同系统的 Lighting/Blend Shape 结果;注意微小外观差异。 原图:Gu et al., BlenderGym (2025)。查看原文 ↗

把“没做好”拆成不同失效模式

  1. 看错:忽略微小差异或幻觉出并不存在的差异。
  2. 写错:语法、API、节点连线或替换片段错误,脚本不能执行。
  3. 映射错:识别出差异且脚本可执行,却修改了无关参数。
  4. 选错:池里已经有较好候选,但 verifier 丢弃它。附录 Figure 12 就展示第二轮较好候选未被保留的案例。
查看原始失败案例:Material 与选择树
原论文 Figure 11:程序材质失败案例:感知差异到代码修改之间存在断层。
Figure 11 程序材质失败案例:感知差异到代码修改之间存在断层。 原图:Gu et al., BlenderGym (2025)。查看原文 ↗
原论文 Figure 12:逐轮选择过程:较好候选可能被 verifier 丢弃。
Figure 12 逐轮选择过程:较好候选可能被 verifier 丢弃。 原图:Gu et al., BlenderGym (2025)。查看原文 ↗

这些是定性案例,不是按四类错误完成的总体频率统计。一个 PMG benchmark 应当给每类失效预先定义标注准则,并报告分母。

Figure 4 · 验证器与人类是否一致?

每类任务取一个实例,汇集模型推理中的成对选择;50 名参与者共提供 7,950 次判断。最一致的 Claude 3.5 Sonnet 与人类一致率约 0.66,低于人际一致率 0.79;各模型高于二选一随机基线 0.5。7,950 次判断不是 7,950 个独立场景,场景覆盖仍只有五个选定实例。[§4.2.2]

原论文 Figure 4:人际一致率高于人类与各模型 verifier 的一致率。
Figure 4 人际一致率高于人类与各模型 verifier 的一致率。 原图:Gu et al., BlenderGym (2025)。查看原文 ↗

Figure 5 · 固定候选池,隔离验证的作用

16 个 Blend Shape 实例,每题用 Claude 3.5 Sonnet 生成 4×8 树的 32 个候选,然后固定候选池;以 InternVL2-8B 做 verifier,令 \(k\in\{1,2,4,8,16,32,64\}\)。另报告较小规模 GPT-4o 和 Claude 扩展。这个设计有力之处在于:改进不是因为换了一批更好候选,而是因为选得更好。

原论文 Figure 5:固定候选池下增加验证查询;不从曲线估造精确读数。
Figure 5 固定候选池下增加验证查询;不从曲线估造精确读数。 原图:Gu et al., BlenderGym (2025)。查看原文 ↗

Paper Verified在这些实验里,扩大验证调用改善三种指标;扩展后的 InternVL2 可以超过未扩展或轻度扩展的闭源 verifier。Author Claim“验证扩展是普遍有效路径”则应视为待更广泛验证的推广,不能等同于开源完整编辑系统全面超过闭源系统。

Table 2 · 同一总预算下,生成与验证怎么分?

使用 InternLlama,预算从 12 到 245 次查询;\(k=1,3,5\) 对应报告的 VeriRatio 约 0.33、0.62、0.73。与固定池实验不同,这里把重选放回每轮编辑闭环。测试 16 个 Blend Shape,附录扩展到 15 个 Lighting。

\[\rho=\mathrm{VeriRatio}=\frac{Q_{\mathrm{verifier}}}{Q_{\mathrm{generator}}+Q_{\mathrm{verifier}}}.\]
VeriRatio少于 3030–6060–100超过 100
VeriRatio=0.331233
VeriRatio=0.622112
VeriRatio=0.733321

Table 2,数值为性能名次,1 最好;列标题为总查询数。原论文的区间端点写法沿用为范围描述,不自行推断恰好 30/60/100 时的归属。

原论文 Figure 6:不同预算分配下的 Blend Shape 光度误差。
Figure 6 不同预算分配下的 Blend Shape 光度误差。 原图:Gu et al., BlenderGym (2025)。查看原文 ↗

小于 30 次时 0.33 排第一;30–100 次区间 0.62 排第一;超过 100 次时 0.73 排第一。论文称实验中每 100 次生成/验证查询成本接近 0.45 美元,因而以查询数近似计算资源。这是论文当时特定系统下的成本假设,不是当前 API 价格,也不是所有模型的通用预算单位。

附录扩展:其他指标与 Lighting
原论文 Figure 7:Blend Shape 三种指标的预算分配结果。
Figure 7 Blend Shape 三种指标的预算分配结果。 原图:Gu et al., BlenderGym (2025)。查看原文 ↗
原论文 Figure 8:Lighting 的预算分配结果,差距小于 Blend Shape。
Figure 8 Lighting 的预算分配结果,差距小于 Blend Shape。 原图:Gu et al., BlenderGym (2025)。查看原文 ↗

附录观察到 Lighting 上的分配差距较小,并解释为灯光差异更明显、验证较易。这是作者解释,未通过直接控制验证难度的干预实验建立因果关系。

这些算不算充分的 ablation?

本文具有 editor 替换、固定池的 \(k\) 扫描、同预算下的比例变化等系统分析,但没有完整隔离所有组件:例如并未给出覆盖全部任务的“去掉视觉/去掉执行反馈/只做参数优化/换候选顺序”的统一消融表。更换 Llama editor 同时改变模型组成;预算分配实验同时改变搜索配置。因此应准确写成受控比较和系统分析,不能夸大成所有设计选择的独立因果证明。

05 / REPRODUCIBILITY

论文写了什么,代码真正提供了什么?

以下审计针对官方仓库快照 67c8b48bf8c548c701b6873db6fcc6527d756385。仅做静态阅读,不声称已经复现论文。[代码快照]

项目已确认设置复现边界
基础环境README 指定 Python 3.10;安装脚本下载数据并安装作者分支 Infinigen顶层安装脚本未冻结 torch 版本与 Infinigen commit;本次未审计所有递归依赖
系统结构默认树为 3×4;generator/verifier 可指定;Llama 组合替换 code editor同一模型名的 API 别名可能漂移,模型日期需单独保存
训练调用已有 VLM/LLM,没有论文提出的新训练过程优化器、LR、epoch、训练 GPU 对本文方法不适用;不能虚构一套训练配置
推理采样正文明确 depth、breadth 和重选 k正文/附录没有一张统一的 temperature、top-p、token 上限、重试、随机种子与精度表;API 封装须逐模型核对
评测多视角平均 PL、N-CLIP;公开 CLIP 路径使用 ViT-B/32CD、失败分母和缓存行为需要额外审计
人类实验10 人编辑约 20% 任务;50 人、7,950 次验证判断人类一致率不是模型分数的校准函数,样本独立性与不确定性仍需报告

Paper vs. Implementation · 具体差异

  1. 50 vs. 45:论文 Geometry 为 50,公开 evaluation.py 的类别计数字典为 45,总和为 240。但该脚本实际遍历 metadata 中的实例,所以这个常量差异本身不足以证明真实只评了 240 项;必须核对数据压缩包和实际运行 manifest。
  2. CD 尚未落地:公开入口文件开头将 Chamfer 标为 TODO,末尾也没有完成对应计算。它能解释公开脚本当前的能力范围,不能据此认定论文当时没有计算 CD。
  3. oracle-best 与 selected 必须分开:脚本分别取 PL、N-CLIP 最小候选,它们可能是不同脚本;候选遍历还包含 start,排除 goal 后 start 仍可参与 best。这个 best 是查看目标后的诊断上界,不是部署时选出的最终结果。
  4. 失败可能改变分母:若元数据缺字段、渲染异常、图像缺失或选中候选查找失败,代码存在多个 continue。各实例、各视角的有效覆盖应另报,不能只读总体平均值。起始场景参与 best 还使“有分数”不必然代表模型生成过有效编辑。
  5. 缓存不能等同于成功:已有且非空的渲染目录被加入候选,没有在该位置验证所有期望视角齐全。新的 benchmark 应用完整性清单和内容哈希,防止残留输出污染结果。
  6. 命令示例不一致:README 示例用 --evaluator_type,但当前 inference.py 定义的是 --verifier_type;元数据默认目录是 info_saved,README 文段写作 infosaved。运行时应以快照参数解析器为准。

直接证据:evaluation.py · inference.py · starter_setup.sh。这些是当前发布实现的发现,不是对作者未公开实验环境的推断。

可复现的最小操作路线

先固定代码 commit、数据文件 hash、Blender/Infinigen 环境,再在一题上测试 API、渲染与指标;随后用明确任务清单运行推理,保存全部候选与选择;最后离线评测。以下命令根据当前 CLI 整理,本页未实际运行:

python inference.py --task placement --vlm_only \
  --generator_type [model_id] --verifier_type [model_id]
python evaluation.py --inference_metadata_saved_path [metadata.json]

正式复现仍需补足:精确数据版本、任务 ID、模型版本、温度/种子、实际 prompt、所有失败与重试、CD 实现、图像预处理、相机条件、渲染版本和运行成本。不要只复制榜单数字后宣称 reproduction。

06 / HOW TO WRITE A BENCHMARK PAPER

Benchmark 论文的主体,是一条可信的证据链。

Research Extension本节是面向我们的写作建议,不是 BlenderGym 作者给出的规范。一个强 benchmark 需要证明:测量对象重要 → 现有评价遗漏它 → 新协议确实测到它 → 比较公平且可复现 → 实验揭示有用结论。数据量和排行榜是证据的载体,不是全部贡献。

先确定我们究竟要贡献哪一种 benchmark

A · 生成能力 benchmark

问题:现有 PMG 系统能否产出可执行、视觉匹配、能继续编辑的材质?交付任务集、运行器、输出协议、分维度排行榜和基线。

B · 评测方法 benchmark

问题:现有自动指标/VLM judge 能否识别程序材质的实际好坏?交付候选材质池、受控缺陷、专家偏好、多条件测试和指标可靠性分析。

建议定位:以 A 为主任务,以 B 作为评测可信度的核心证据。若资源有限,先完成 B 的诊断 pilot,证明单张图指标确实遗漏可编辑性/材质行为,再决定正式 A 的规模。不要同时承诺“最大数据集、全引擎、全任务、新指标、新生成模型”而没有充分验证。

论文部分必须回答的问题需要的可检查证据容易被拒的写法
Introduction现有评测把哪些不同能力混为一谈?为什么妨碍研究?同图不同程序质量的反例;明确目标用户与任务只说该领域重要、没有统一 benchmark
Related work已有数据集/系统评测覆盖哪些轴?逐篇核实的任务、表示、输入、编辑、执行与隐藏测试对比仅按模型年份罗列;未经完整检索声称 first
Task formulation系统能看到什么、必须输出什么、能调用什么?输入输出 schema、预算、资源限制、失败定义只写“根据图生成材质”
Dataset数据来自哪里?相似模板是否跨 split?来源许可、family 划分、去重、难度标签、人工 QA随机划分参数变体后宣称泛化
Evaluation protocol分数是否测到承诺的能力?真实执行、隐藏条件、指标校准、失败分母仅一张 CLIP/LPIPS 表;评测器自己证明自己
Experimental setup是否在相同信息和成本下比较?版本、prompt、adapter、预算、缓存与种子清单新方法多渲染几十次,baseline 仅一次
Main results谁在哪种能力上好,代价是什么?分任务/分域结果、区间、质量—成本曲线单一总分掩盖失败与 trade-off
Analysis这个 benchmark 带来了什么新认识?固定候选池、预算分配、失败分解、指标失效实验展示几张精选图便宣布机制正确
Limitations / release哪些结论不能推出?别人能否复测?数据卡、运行环境、隐藏评测治理与版本策略承诺开源却缺评测依赖与样本清单

可直接用来规划论文的贡献声明

写作时可以围绕三项贡献,但必须等相应证据完成后再改为完成时态:

  1. 任务贡献:建立明确区分视觉重建、可执行图生成和后续编辑能力的 PMG 任务协议,并以资产家族划分数据避免模板泄漏。
  2. 测量贡献:通过隐藏渲染条件、真实编译执行与受控编辑,验证单图外观分数之外的程序材质质量;用专家判断校准指标。
  3. 实证贡献:在统一预算下比较多类系统,揭示执行率、视觉质量、编辑成功率和成本之间的关系,并用受控实验定位瓶颈。

主文的图表应各自完成一个论证

Figure 1:单视图看起来一样,但换光照/改参数后差异巨大,说明新测量对象必要。Figure 2:输入、程序、真实执行、隐藏测试和隔离边界。Table 1:已有评测覆盖矩阵。Table 2:数据规模/划分/难度。Table 3:主结果和失败率。Figure 3:质量—成本 Pareto 曲线。Figure 4:自动指标与专家一致性及受控反例。Table 4:消融和诊断。附录放完整配置、提示、逐类结果、置信区间和失败案例,而非把核心协议藏进附录。

审稿人的核心追问

如果换一个更强模型,这个 benchmark 是否仍有价值?如果只改颜色/检索最近邻就能高分,它真的测了程序生成吗?如果人类专家不认同分数,为什么这个排序可信?如果没有参考图拓扑,是否仍能评测?我们的协议需要逐一回答。

07 / PMG EVALUATION BLUEPRINT

PMG benchmark:从可运行到可复用。

Research Extension这里将 PMG 解释为 Procedural Material Generation。以下是待实施的研究设计,不是已有实验结果,也没有修改当前 PMG 数据/训练流程。建议第一版聚焦 Substance 程序材质与固定节点库;Blender shader 或其他语言通过独立赛道接入,不能未经验证就声称等价转换。

7.1 明确主张:我们评测的是“可用的程序材质”

\[G=(V,E,\theta,\phi),\quad M=\operatorname{Execute}(G;s,r),\quad I=\operatorname{Render}(M;c).\]

\(V\) 为节点集合;\(E\) 是端口连接;\(\theta\) 是内部参数;\(\phi\) 是公开可编辑控制;\(s\) 是随机种子;\(r\) 是输出分辨率;\(M\) 是材质通道集合;\(c\) 包含几何、相机、光照和色彩管理。需要分别确认 Base Color、Roughness、Normal、Height、Metallic 等适用通道,不能把一张烘焙带光照的 RGB 图当作所有任务的合格 PBR 输出。

不以图拓扑完全一致作为主分数。同一种材质可以用不同图实现,原始 graph edit distance 或参数 L2 容易惩罚有效等价解。只有已知对应节点/参数的受控编辑子任务才适用结构恢复指标。主评测以执行结果、条件泛化和可操作行为为中心。

7.2 任务矩阵:先让每项能力有明确分母

赛道输入 → 输出主问题建议评测
T1 图像 → 程序材质参考图+约定渲染元信息 → 可编辑图与依赖能否重建外观并真实执行?有效率、隐藏条件外观、成本
T2 文本 → 程序材质属性/关系描述 → 程序是否满足语义约束而不靠图像真值?约束满足、盲评、可执行性;不对任意单一真值算像素误差
T3 材质编辑起始图+局部目标 → 修改后图只改要求的属性,保留其余内容?目标变化成功、非目标保持、编辑后重执行
T4 程序修复(扩展)损坏图+执行错误 → 可运行图能否修复连接/参数/依赖且保留外观?修复率、变化副作用、调用数
T5 评测器诊断固定材质候选对+目标/编辑要求 → 排序或评分指标/judge 能否识别真实缺陷?专家一致率、受控缺陷灵敏度、排序稳定性

优先级建议:首版把 T1+T3 做扎实,T5 为评测有效性证据;T2、T4 留为扩展。T1 与 T3 在“从空白生成”和“给定图修改”上信息量不同,必须分榜;不能让编辑任务的高分掩盖生成失败。

7.3 资源政策:把可比较性写进规则

建立严格程序赛道和混合资源赛道。前者禁止目标图嵌入、未批准 Bitmap、外部纹理及模型自行下载资产;白名单库节点允许,但需要递归检查子图依赖。后者允许声明的纹理与检索库,另报资源来源、存储和依赖成本。Pixel Processor/FX-Map/子图是否允许应按研究问题预先固定;它们不是天然作弊,也不能在某个模型失败后临时改变规则。

每个输出都要能从干净环境独立编译、渲染和重建;检查图的可达依赖,防止把图像藏在子图、常量数组或缓存里。独立重建像素一致只能证明可复现,不代表与参考图相似。

7.4 数据设计:按生成来源划分,不按图片随机切

  1. 合成可控域:获得有许可的程序图与参数范围,渲染目标;有隐藏完整材质与可控编辑真值,可以测试真实的跨光照行为。
  2. 人工制作域:由材质作者创建图/编辑目标,记录 author、source graph、template、subgraph lineage;增加超出简单参数扰动的结构变化。
  3. 真实图像域:来源与许可清楚的拍摄纹理或材质图,明确是否有照明/尺度标定。单张真实照片通常不能提供唯一 PBR 真值,使用感知与专家判断,单独报告。
  4. 图级去重:结合规范化拓扑、节点/子图序列与多条件渲染相似性建立 family;颜色变体、seed 变体、裁剪和重命名不得分到训练与测试两边。
  5. 泛化分组:ID、未见 family、未见结构组合;若测试节点在允许库里但训练中未见,称 compositional/node generalization。完全不支持的节点应标记为库外任务,不能不加说明计入常规失败。
  6. 冻结:保存 task manifest、输入 hash、隐藏评测 hash、节点库/运行时版本、family split 与许可记录。Dev 可看反馈,Test 只通过受控评测访问,限制反复调参。

7.5 多条件渲染:测材质,而不是固定场景的截图

对有真实程序真值的合成域,公开一种输入条件,隐藏其余几何/光照/尺度。例如平面、球体与曲面,柔和照明、侧光与环境光,以及固定空间尺度。所有方法用同一色彩管理、曝光、法线约定、位移约定和渲染器版本。隐藏条件要区分材质不确定性与模型失败:单张无标定输入不能唯一确定 roughness/height,因此需额外设置“带多光照或通道观测”的可识别子集;对单图赛道,只能解释为预测与合成真值的偏离,而非唯一正确材质的缺失。

进一步改变 seed 和输出分辨率,检查无缝平铺、频率保持和图的泛化;但本来不要求可平铺的真实表面不能因接缝得低分。隐含要求必须变成任务标签。

7.6 指标采用分层报告,不让漂亮截图抵消无效程序

维度可操作定义主要限制/补救
ExecutionParse → Compile → Render → 必需通道 → 依赖可移植;逐层成功率每个分母均公布;基础设施故障和模型失败分开
Visual fidelity同条件多视图 LPIPS、SSIM、RGB 误差;语义特征相似度作补充固定实现版本与预处理;不能只用 CLIP 总分
Material behavior隐藏光照/几何下的真值比较;适用时做通道误差与法线角误差仅有真值与统一约定的域可用;真实照片单独处理
Editability冻结图后接受预先定义的未见编辑请求,测目标属性变化与非目标保持公开滑条数量不是可编辑性;不能只凭节点命名打分
Procedural robustness新 seed、新分辨率、合法参数端点的成功率与变化一致性按任务限定合理变化域,防止要求超出图的设计范围
Complexity / portability可达展开节点数、依赖大小、编译/渲染时间、内存只比较同库/同引擎;少节点不必然代表高质量
Cost真实模型调用、输入/输出 token、渲染次数、墙钟时间、费用硬件与缓存策略固定;失败重试也算成本

Our InterpretationLPIPS/SSIM 不是未经校准即可直接采用的标准答案。它们是候选视觉指标,需通过下节的专家和受控扰动实验确认是否符合我们的测量目标。项目若已有 SSIM 阈值,应当在独立 dev 校准后决定能否迁移,而不是机械沿用。

\[\mathrm{ValidRate}=\frac{1}{N}\sum_{i=1}^{N}v_i,\qquad \mathrm{SuccessRate}_{\tau}=\frac{1}{N}\sum_{i=1}^{N}v_i\,\mathbf 1[D_i\le\tau].\]

\(N\) 是冻结的全部任务数;\(v_i\) 表示该输出是否满足执行与资源规则;\(D_i\) 是固定条件下的视觉距离;\(\tau\) 只能从 dev 和专家可接受度校准,再冻结到 test。无效图使第二项为零,不应被删出分母。并列报告有效样本上的距离分布,避免以任意有限惩罚替代真实失败。

\[\mathrm{EditSuccess}=\frac{1}{N_E}\sum_{i=1}^{N_E}\mathbf 1[v_i=1\ \land\ t_i\ge\tau_t\ \land\ p_i\ge\tau_p].\]

\(N_E\) 为所有编辑请求数;\(t_i\) 为目标属性达成程度;\(p_i\) 为非目标属性保持程度;具体估计器按属性单独设计。例如“砖缝变宽”可用目标 mask/边缘距离,“粗糙度增大”在可控光照下检测响应并用通道真值辅助;无法自动可靠验证的语义由盲评承担。不是每个属性都硬塞进同一个 CLIP 分数。

失败分母为什么会改变结论?

教学示例,非真实实验。系统 A 的有效率较低,但有效输出质量较高;试着改变有效率。

假定 A 的有效样本中 90% 达到视觉阈值,则全任务成功率为 45%。系统 B 固定为 90% 有效 × 70% 达标 = 63%。只报告成功样本的质量,会掩盖 A 的大量失败。

7.7 让“可编辑性”成为真正的行为测试

建议两种设置分开:Native control 只允许修改已暴露参数,检查图本身的控制能力;Assisted editing 用同一个冻结编辑器、同一预算编辑所有生成图,检查图在后续工作流中的可用性。后者仍受编辑器能力影响,需加入作者原图和直接生成的图对照。每个图从隐藏请求池抽取“仅改色调/粗糙度/元素密度/图案尺度”等请求,并验证不相关特征保持。

例如“扩大石砖但保持缝宽”同时测尺度控制与解耦程度;“改变种子但保持纹理类型”检查程序变化是否合理;“只提高粗糙度、不改变底色和结构”防止通过颜色变化伪造光照差异。所有请求要在冻结生成结果之后下发,防止系统只为已知编辑答案制作硬编码图。

7.8 核心创新机会:专门检验 evaluation 的可靠性

构造固定候选池,包括真实模型输出、专家材质、强检索基线与受控缺陷,控制每类缺陷的严重度。比较 PL、SSIM、LPIPS、特征距离、单图 VLM judge、多视图 judge、执行感知 judge;最后一类可作为研究方法,但必须在独立 family 与未参与校准的模型输出上测试。

受控对照期望测出的区别为什么单图评价会漏掉
固定视图贴图伪装 vs. 程序材质严格赛道依赖违规;换条件后行为差异参考视图可完全相同
相似 Base Color、错误 Roughness/Normal多光照反射与表面细节差异柔和正面光照下不明显
颜色正确、纹理尺度/方向错误结构和频率敏感性语义特征可能仍相似
单 tile 良好、边界不连续平铺边界缺陷单块显示掩盖接缝
漂亮但参数耦合 vs. 易于局部编辑目标变化与非目标保持静态图中不存在编辑行为信息
冗长但等价图 vs. 简洁图效率、可维护性与视觉质量分离视觉上应该平分,不应强行以外观罚复杂度

每个缺陷等级用相同基础资产生成成对对照,并检查“无关变化”的稳定性,例如候选左右翻转、等价图重排、仅更改名称。若指标在这些条件下大幅改变,应报告 judge 偏置。不要把嵌入评测器提示的自我声明当作质量证据。

7.9 人类校准不是加几张问卷截图

给材质专家同时展示固定规范的多条件渲染和必要编辑演示,匿名随机排序、允许平局。分开问“目标相似”“材质行为”“可编辑性”,而不是单一“更好看”。建议 pilot 每对至少 3 名独立标注者,这是起步设计而非统计充分性的保证;通过人际一致率、分歧和预算估计正式样本量。

报告成对一致率(平局预先定义计分)、Spearman/Kendall 排序相关以及按 family 聚类 bootstrap 的 95% 区间。一个图的多视角、多个种子和多个用户判断不是独立材质样本。阈值、指标组合权重和 judge prompt 只能在 dev 调整;test 验证包括未参与校准的材质 family、生成模型和缺陷组合。比较主方法时采用同任务配对抽样,避免只比较两个均值。

7.10 Baseline 矩阵:先排除更简单的解释

Baseline控制什么公平性条件
起始图不修改/默认材质任务是否被大面积不变背景稀释同一目标、渲染与评测 mask
合法库最近邻检索相似模板是否已足以高分公开检索库、禁止 test family 泄漏
检索+参数优化是否真的需要拓扑生成相同执行/渲染预算,固定优化器
仅参数优化(起始拓扑)编辑难度是否只来自数值拟合只用于有起点的任务;不与空白生成混榜
单次 VLM 程序生成没有执行反馈的基础能力相同模型、节点文档和上下文
VLM+执行错误反馈修复语法/API 的收益计入所有重试与失败成本
VLM+渲染反馈+搜索视觉闭环和候选选择的收益固定预算梯度,区分 generator 与 verifier
已有 PMG 专用系统专业训练方法与通用代理的差异只有表示/任务适配成功并通过真实执行的系统进入对应榜
专家/原始作者图任务可解性与参考上界同子集、明确时间与工具;原图不是可部署模型
Oracle candidate selection生成池 vs. 选择器瓶颈仅诊断,不作部署榜主结果

不要为了凑 baseline 数量给不兼容的方法做大幅私有改造,再将失败归咎于原论文。适配层本身需要验收;方法允许的输入、库与输出限制都要在表里公开。

7.11 一组能形成论文结论的实验

  1. 主表:按任务/domain/family split 报有效率、视觉质量、编辑成功和成本,附区间。
  2. 评测器有效性:对固定候选池比较自动指标与专家;给出一致、分歧和受控缺陷案例。
  3. 预算曲线:固定三个预算档;分别按真实渲染次数和端到端时间对比,不直接跨模型用 query 数等价成本。
  4. 生成/选择分离:同一候选池用 random、视觉指标、VLM 和 oracle 选择;检测位置偏置和候选排序影响。
  5. 执行反馈消融:相同基础模型与上下文,对比无反馈、仅错误反馈、图像反馈;再固定池隔离 verifier。
  6. 隐藏条件消融:可见条件 vs. 新光照/新几何/新分辨率,检测分数与模型排名是否反转。
  7. 表示与工具消融:完整 BPY/SBS XML/紧凑 IR 不能混为模型变化;固定任务与节点语义,记录 token 长度和工具信息量。
  8. 失效归因:解析、编译、依赖、超时、视觉不符、约束违规、编辑副作用;多标签和主要失败原因分开。

若结果显示“单图排名与编辑/隐藏条件排名经常不一致”,它可能成为论文的主要发现;但在实际跑完并验证后才能写成结论。若没有出现预期差异,应报告负结果并调整贡献,不能反向挑选案例制造主张。

7.12 一个可执行的 pilot,而不是先承诺大规模

建议 pilot 配置(尚未实施):30 个独立 material family,15 个 dev、15 个封闭 pilot-test;每个 family 2 个 T1 目标和 2 个 T3 编辑请求,共 120 个任务。每类任务在 test 中只有 30 项,区间可能较宽,这个规模只用于验证协议和估计正式样本量,不应包装成覆盖完整行业的最终 benchmark。

先在小样本上完成三件事:所有真值可在干净环境编译渲染;检索+优化和至少两种生成系统可接入;专家确实能区分预设缺陷。随后用 family 间方差、配对效应大小和标注分歧决定正式扩展数量。正式测试应使用新封闭 family;已被反复查看的 pilot-test 需要降级为 dev,不能继续声称严格隐藏。

阶段交付进入下一阶段的条件
协议冻结赛道、输入输出、节点库、资源规则、失败政策、数据卡两名实现者按文档得到一致任务含义
运行器 pilot干净环境执行、完整通道、哈希、日志、超时管理全部参考图可复跑;空输出/失败不会从分母消失
指标 pilot受控缺陷池、专家盲评、候选指标与区间能解释指标有效范围;不能识别的维度另行报告
基线接入统一适配器、预算阶梯、逐实例结果至少检索、优化、单次生成、闭环生成可公平比较
正式冻结与运行新 test family、预注册分析、全量分维度结果所有主张都有对应实验;不看 test 调 prompt/阈值
发布与维护公开 dev、可运行 evaluator、隐藏服务器/封闭脚本、版本说明复现环境和许可检查完成;排行榜绑定版本

7.13 样本与结果至少记录哪些字段?

{
  "task_id": "immutable-id", "family_id": "source-lineage-id",
  "track": "image_to_graph | editing", "split": "dev | test",
  "inputs": {"reference_hash": "...", "start_graph_hash": "..."},
  "policy": {"node_library_version": "...", "external_assets": "forbidden"},
  "runtime": {"engine_version": "...", "renderer_config_hash": "..."},
  "evaluation": {"hidden_conditions_manifest_hash": "..."},
  "submission": {"graph_hash": "...", "dependency_manifest_hash": "..."},
  "result": {"parse": "pass", "compile": "pass", "render": "pass",
             "valid": true, "per_condition_metrics": [], "failure_reason": null},
  "budget": {"model_calls": 0, "render_calls": 0, "wall_seconds": 0}
}

这是 schema 示意,数值不是测量结果。test 的目标图/目标程序、隐藏相机和评测真值只在评测端保存,模型进程不可读取。另存完整 prompt、响应、工具调用、环境版本和逐次错误,避免只保存最终成功截图。

7.14 现在最需要验证的研究假设

H1 · 外观不等于可编辑

高单图相似度能否预测隐藏编辑成功?用同批输出的相关性和分歧对照检验;不要先假定必然负相关。

H2 · 失败主因可能是选择

固定候选池的 oracle 与实际选择差距有多大?若很小,继续堆 verifier 的价值有限。

H3 · 行为评测更接近工作流

多条件/编辑指标相对单图指标,是否更符合独立专家判断?需要留出 family 与生成模型验证。

建议的主线:先证明“程序材质的可用性不能被单图相似度充分刻画”,再交付能测量这部分能力的任务和运行器;通过统一预算的基线揭示目前系统的瓶颈。这样的 benchmark 有明确研究问题,也能给后续 PMG 方法提供可优化的目标。

08 / REVIEWER COMMENTARY

值得借鉴,也需要补上的部分。

Strengths

  • 用目标重建降低纯艺术评价的主观性,真实执行把程序与视觉结果关联起来。
  • 多任务覆盖且包含人类基线,使系统差距有直观参照。
  • 固定候选池隔离验证作用,比只给端到端总分更有诊断价值。
  • 附录主动揭示自动指标局限,提供完整角色提示。

Weaknesses

  • 245 项与特定资产原型限制覆盖;human-verifier 分析的场景数量很小。
  • 像素/CLIP/几何距离不能充分代表物理合理性、程序质量与可编辑性。
  • 推理预算以 query 近似成本,跨模型、提示长度与渲染成本的公平性不足。
  • 公开实现与论文存在数量配置、CD 和失败处理差异,复现需要补充审计。

Potential improvements

将执行成功、目标匹配、物理合理性和编辑能力分别报告;用家族级去重和隐藏条件测试泛化;扩大跨资产的人类验证;固定候选池比较多种 verifier;将真实耗时、模型费用与渲染资源纳入预算。若添加 learned reward,应将训练 reward 的偏好数据与最终评测隔离,避免把评测器学习的偏好当成独立证据。

Our Interpretation

对我们而言,BlenderGym 最有价值的迁移是从最终图像评分走向可执行的工作流诊断。但 PMG benchmark 的新意不应只是把 Blender 换成 Substance:需要证明新协议测到了旧评测遗漏的材质行为、结构约束和后续编辑能力。

MathJax 3 浏览器验收用例

以下为项目要求的渲染检查,不是 BlenderGym 的模型记号。

\(I^{\ast}\) \(z^{\ast}_{\mathrm{img}}\) \(z^{\mathrm{img}}_{1:I}\) \(z_{\lt t}\) \(P_{\theta}(\mathbf{z}\mid\mathbf{x})\) \(\beta_1=0.9,\ \beta_2=0.95\)

\[P_{\theta}(\mathbf{z}\mid\mathbf{x})=\prod_{t=1}^{T}p_{\theta}(z_t\mid z_{\lt t},\mathbf{x})\]
\[d_t=\mathrm{LPIPS}(R_t,I^{\ast})\]
09 / REFERENCES & PROVENANCE

来源与证据边界。

  1. Gu et al. · BlenderGym,arXiv v1 PDF,24 页:本文精读的主版本,含全部附录。
  2. 对应 arXiv HTML:交叉核对章节、表格与 Figure 1–17。
  3. CVF / CVPR 2025 出版记录:标题、作者、会议与页码。
  4. 官方项目主页:项目说明与 Highlight 标记;本文未把当前网页 leaderboard 当作新实验。
  5. 官方代码固定快照:核查 evaluation.py、inference.py、utils.py、starter_setup.sh 与 README。
  6. 官方数据发布页:本页未下载、验证完整数据压缩包;网页文件行数不能替代任务数量。

原论文图像用于学术精读,版权归原作者/权利人;所有图均标注原始 Figure 编号与来源。HTML 内嵌图像与 MathJax 3,可离线阅读;外链仅用于查阅来源。Table 1、Table 2 是原文数值的结构化转录,教学交互与 PMG 设计均明确标为本页解释或研究建议。此文件不是官方 benchmark 文档。

完成范围:论文/附录阅读、官方部分源码静态核查、单文件精读产物与浏览器验收。未执行论文模型评测、未验证全部数据许可和运行依赖、未开展 PMG 实验、未进行站点构建或部署。