深度论文精读
Generating Procedural Materials from Text or Image Prompts
把 MatFormer 从无条件“生成一个合理材质”推进到多模态“围绕图像或文本生成一组可编辑程序化材质图”,再通过渲染、排序和可微参数优化缩小外观误差。
01 · Identity
身份核对与一句话结论
论文于 2023 年 4 月提交 arXiv,正式发表于 SIGGRAPH 2023 Conference Proceedings,DOI 为 10.1145/3588432.3591520。作者项目页与 ACM 元数据一致,因此不存在同名论文或 venue 歧义。本文常被非正式称为 CondMatFormer,但正式题名不含该名称。
02 · Problem
它究竟在解什么问题
一个程序化材质图 \(g=(N,E)\) 是有向无环计算图。节点是图像生成器或滤波算子,边连接算子的输出槽和输入槽。执行图后得到 albedo、normal、roughness、metallic 等 PBR maps,再在表面上渲染为图像。
其中 \(y\) 是图像或文本条件,\(S_n\)、\(S_e\)、\(S_p\) 分别为节点类型序列、边槽指针序列和参数值序列。论文把结构化图生成拆为三个可监督的自回归问题,并显式规定后序模块依赖前序结果。
输入
- 参考图像的 CLIP image embedding
- 文本 prompt 经 CLIP text encoder 与 texture prior 转换后的 image-space embedding
- 可选的部分图序列,用于条件自动补全
- 无条件模式下不提供语义输入
输出
- 可执行、可编辑的 Substance 风格程序化材质图
- 四类标准 PBR maps
- 每个条件可生成多个拓扑与参数变体
- 可选的 MATch 优化后参数版本
03 · Representation
图如何被线性化
节点与槽级边
节点 \(n_i=(\tau_i,P_i)\) 由操作类型 \(\tau_i\) 与参数集合 \(P_i\) 构成。边不是简单的节点对,而是 \(e_i=(\texttt{out}^{j}_{l},\texttt{in}^{k}_{h})\),指向具体 output slot 与 input slot。一个输出槽可扇出到多个输入槽,一个输入槽最多接收一个来源,图中禁止环。
默认使用从输出节点向生成器回溯的 breadth-first 顺序 \(\pi_r\)。同时预测 node depth,使粗略图位置成为辅助上下文。
Pointer Network 在由 \(S_n\) 决定的所有槽列表上选择指针,因此词表随图结构变化。
所有节点参数合并为一个图级序列。默认值参数可跳过,向量与数组逐标量展平,节点子序列由特殊 token 分隔。
生成顺序是本文与 MatFormer 的关键差别
| 方法 | 实际顺序 | 参数条件 | 结构后果 |
|---|---|---|---|
| MatFormer 2022 | 节点 → 每节点参数 → 边 | 节点类型与全节点序列 | 参数生成时不知道最终边连接 |
| 本文 2023 | 节点 → 边 → 全图参数 | 节点、边、图像或文本条件 | 参数可利用局部连接结构,图级序列也提高并行度 |
参数节点嵌入先由 Transformer encoder 得到 \(\overline{\tau}'_i=g^p(S_n,i)\),再通过 6 层 GCN 纳入至多 6 条边范围内的局部结构:
04 · Conditioning
图像与文本如何进入三个生成器
图像路径
训练时仅使用 image-to-graph 配对。参考图像由冻结的 CLIP ViT-L/14 编码,随后通过可训练 MLP 对齐到各生成器隐藏维度。论文没有微调 CLIP,也没有报告对输入图像的裁剪、归一化或 prompt augmentation 细节。
文本路径
因为训练条件来自 CLIP image space,直接把 CLIP text embedding 替换进去存在 modality gap。作者采用 Aggarwal 等人的 diffusion prior,将文本 embedding 转换为 texture image embedding。该 prior 据论文描述使用 1,000 万 text/texture pairs 训练,但本文未报告其训练细节、checkpoint 地址或文本 prompt 模板。
VGG 替代编码
补充材料给出的 Ours (VGG) 将 pretrained VGG19 的 ReLU2_1、ReLU3_1、ReLU4_1 层特征逐层计算均值与标准差,再与 \(16\times16\) 缩略图展平拼接,经 MLP 投到 hidden dimension。它稍微降低数值误差,却无法自然支持文本条件,且论文称肉眼差别不明显。
05 · Model
三个生成器如何协作
每个序列生成器遵循:
训练采用 teacher forcing。推理时从 start token 开始,逐 token 采样至 end token。三个模型独立训练,但推理存在明显误差传播,因为边依赖已采样节点,参数又依赖已采样节点和边。
语义约束并非训练出来
- node depth 在 back-to-front 或 front-to-back 顺序中必须单调变化
- 边只能从某节点输出槽连到另一节点输入槽,且不得形成环
- 参数必须处于预定义合法范围
- 向量参数尚未输出完整元素时,不允许启动新参数
- 节点与边生成后移除未连接节点,再生成参数
MatFormer 语义约束表述存在何种文献张力
06 · Data
数据构造决定了方法上限
原始图来自 Adobe Substance Source。作者先统一格式和输出语义,再拆 switch、过滤复杂图与重复图,最后对每个拓扑采样 100 组参数。
| 阶段 | 规则 | 明确数值 | 目的 |
|---|---|---|---|
| 格式统一 | 升级图版本、修复 bit depth、缺失依赖、统一 alpha channel | 未报告各规则影响数量 | 保证跨版本执行一致 |
| 输出裁枝 | 只保留 albedo、normal、roughness、metallic 分支 | 4 个输出族 | 压缩序列与统一 PBR workflow |
| 法线修正 | 删除 normal branch 中的 Level nodes | 未报告删除数量 | 避免 MatFormer 中观察到的 biased normals |
| Switch 拆分 | 为激活分支建立图版本,组合过多时限制采样 | 论文文字给出 upper bound 5,同时写至少 \(\max(k_b,5)\),表述自相矛盾 | 降低单图内多功能分支复杂度 |
| 去重 | 输出 material maps 平均 MSE 小于 0.01 视为过于相似 | 0.01 | 降低重复偏置 |
| 长度过滤 | 移除 nodes \(\gt80\)、edges \(\gt200\)、slots \(\gt210\) | 保留 4,667 个,约占未过滤集 72% | 避开长尾序列 |
| 参数增强 | 每个基础图采样 100 组参数 | 466,700 graph variations | 扩大图像图配对规模 |
参数采样
对统计可靠的参数,围绕图 preset 默认值 \(\mu^g_p\) 采样:
统计不可靠时,使用以默认值为中心的均匀分布 \(U((1-\alpha)\mu^g_p,(1+\alpha)\mu^g_p)\)。float 参数取 \(\alpha=0.06,\beta=0.2\),integer 参数取 \(\alpha=0.06,\beta=0.5\)。这些数值由经验选择,以平衡 fidelity 与 diversity。
渲染配对与划分
四类 maps 在平面上以与相机共置的点光源渲染,形成训练用 image-graph pair。训练验证划分发生在参数增强之前,因此同一拓扑的不同参数变体不会跨集合。论文未报告训练与验证比例、渲染分辨率、材质类别分布或测试拓扑数量。
07 · Training & Inference
训练很小,推理很重
| 组件 | hidden / layers / heads | 训练时间 | 硬件 |
|---|---|---|---|
| Node generator | 40 / 2 / 4 | 约 22 h | 3 × NVIDIA V100 |
| Edge generator | 48 / 2 / 4 | 约 28 h | 3 × NVIDIA V100 |
| Parameter generator | 96 / 4 / 4 | 约 36 h | 3 × NVIDIA V100 |
- backbone:论文称基于 GPT architecture,补充材料按 MatFormer 的 GPT-2 实现描述
- optimizer:Adam
- learning rate:\(10^{-5}\)
- batch size:64
- loss:论文写 binary cross-entropy over token probabilities
- checkpoint:选择 validation loss 最低者
- parameter quantization:128 bins,MatFormer 为 32 bins
- sampling:nucleus top-p 0.9,softmax temperature 不调整,sample top-5 candidates
推理的真实成本结构
- 对一个输入条件生成 150 个候选图。
- 执行候选图并渲染。
- 按 CLIP cosine 或 sliced Wasserstein distance 排序。
- 选 top-5 做进一步 MATch 可微优化。定量实验中还从 30 个候选里分别按 CLIP 与 style distance 取 5 个,共优化 10 个。
- 只优化可微节点参数,拓扑固定。
RTX 3090 上,网络生成约 1.32 秒每图,优化约 2 至 3 分钟每图。按 150 候选估算,纯生成约 198 秒,若优化 10 个候选则另需约 20 至 30 分钟,不含 Substance 执行、渲染和排序开销。后一总时长是基于论文单图数字的推算,不是作者直接报告。
08 · Experiments
实验回答了什么,没有回答什么
测试协议与 baseline
定量测试集包含 48 张真实照片。每个方法先获得 30 个候选,再优化其中 10 个,最后按 style loss 排序统计 top-5 的 best 与 average。比较对象并不是其他端到端图生成器,而是两个作者新构造的检索 baseline。
| 名称 | 候选池 | 规模 | 是否生成新拓扑 |
|---|---|---|---|
| Ours | 条件模型在线采样 | 每个输入 150 个 | 是 |
| Ours (VGG) | VGG 统计与缩略图条件模型 | 每个输入 150 个 | 是 |
| Ours Uncond | 新数据训练的无条件模型预生成数据库 | 102,400 | 检索时否 |
| Dataset | 增强数据集全部参数变体 | 466,700 | 否 |
| Class-conditioned | 16 类 category embedding 条件模型 | 每类条件采样 | 是 |
指标
主定量指标不是 CLIP score,而是 style loss,由 VGG19 Gram matrix 的 L1 差与 \(16\times16\) 缩略图 L1 差构成:
补充材料报告 95% confidence interval。该指标重视纹理统计与粗颜色分布,不评估图拓扑与创作逻辑的正确性,也不是感知 user study。
| 阶段 | 统计 | Ours | Ours (VGG) | Ours Uncond | Dataset |
|---|---|---|---|---|---|
| 未优化 | Best-of-5 | 0.0314 [0.027, 0.036] | 0.0300 [0.026, 0.034] | 0.0382 [0.033, 0.043] | 0.0384 [0.033, 0.043] |
| Avg-of-5 | 0.0346 [0.030, 0.039] | 0.0329 [0.029, 0.037] | 0.0539 [0.048, 0.060] | 0.0499 [0.044, 0.055] | |
| 优化后 | Best-of-5 | 0.0218 [0.018, 0.025] | 0.0199 [0.016, 0.023] | 0.0194 [0.016, 0.023] | 0.0191 [0.015, 0.023] |
| Avg-of-5 | 0.0242 [0.020, 0.028] | 0.0221 [0.018, 0.026] | 0.0227 [0.019, 0.027] | 0.0237 [0.019, 0.028] |
未优化时,条件生成明显优于无条件检索。优化后各方法区间大量重叠,Dataset 的 Best-of-5 反而最低,说明可微参数优化会显著抹平初始候选来源差异。Ours 的优势主要体现在无需 115 GB 级数据库、可生成多样拓扑与支持文本和补全,而不是优化后绝对最低的单一误差。
| 统计 | Ours | Class-conditioned |
|---|---|---|
| Best-of-5 | 0.0314 [0.027, 0.036] | 0.0544 [0.048, 0.060] |
| Avg-of-5 | 0.0346 [0.030, 0.039] | 0.0774 [0.071, 0.084] |
参数生成器消融
在 5,120 个 synthetic graph/parameter points 上,以 ground-truth nodes 与 edges 为条件评估 token cross-entropy。GCN 图条件参数生成器为 0.729,扩展 MatFormer 的逐节点条件版本为 0.740,差异仅为 0.011。作者更有力的理由是图级序列训练并行度提高,训练速度约为 1.5 倍。
09 · Figures
关键 Figure 如何读
Figure 1 · 四种使用模式
Figure 1 并列展示 image prompt、text prompt、unconditional 与 autocompletion。绿色表示新生成结构,补全中的蓝色表示已有结构。它证明接口覆盖范围,但不构成统一定量比较。最重要的信息是多样性定位:同一条件对应多个可编辑图,而不是唯一反演答案。
Figure 2 · 条件生成架构
每个 Transformer layer 都接收经 MLP 投影的 CLIP 条件。参数分支额外读取 node sequence、edge connectivity 与 per-node embedding。图中展示的是一次 next-token prediction,而不是一次性并行输出完整图。
Figure 3 · 32 bins 与 128 bins
ground truth、32-bin reconstruction 与 128-bin reconstruction 的视觉对比说明更细参数量化更能保留颜色和细节。它只证明离散化重建质量,不证明生成器能同样准确地预测更大的离散词表。
Figures 4 与 5 · Synthetic / Real Image Conditioning
每个输入给出三种图。上排是直接预测,下排是参数优化后结果。优化主要修正颜色与 roughness,真实照片比合成材质更难,因为程序库只能近似自然外观。图中没有展示结构搜索在优化阶段发生变化,因为该阶段只能调参数。
Figure 6 · Text Conditioning
每个文本 prompt 给出三种材质,强调语义接近与多样性。正文没有提供文本 prompt 集、人工评分或 text-image retrieval 指标,因此文本能力证据主要是定性展示。
Figure 7 与 Table 1 · 检索对比
Figure 7 显示在线生成可达到大数据库检索的视觉质量,Table 1 进一步表明未优化的条件模型更好,优化后差距缩小。模型存储 15 MB,对比数据库 115 GB 或更多,是作者强调的工程优势。
Figure 8 · Autocompletion
部分图需要按 front-to-back breadth-first 顺序作为序列前缀,所以自动补全使用 \(\pi_r\) 的逆序。模型同时以图像为外观条件,因此区别于 MatFormer 仅依赖部分图的补全。
Figures 9 与 11 · 失败模式
Figure 9 的图像条件失败通常仍保留大结构,却丢失细节。Figure 11 的文本条件样本可能生成不真实或语义不符材质。两者共同指出有限基础拓扑和 token 误差是主要瓶颈。
10 · Lineage
它与 MatFormer 及后续方法的关系
建立 nodes → per-node parameters → edges 的无条件三阶段 Transformer 生成范式,并支持不带目标外观的部分图补全。原文
加入 CLIP 多模态条件,改为 nodes → edges → graph-level parameters,引入 GCN、数据扩增、在线约束、渲染排序与 MATch 后优化。
指出监督式参数预测受程序数据稀缺和真实域差距限制,给定目标图像时先检索图结构,再用 RL 微调 Transformer 参数策略,以非可微 renderer reward 改善匹配。Adobe Research · 代码
把材质图转换为标准 Python 程序,微调视觉语言模型进行 image-to-program generation,并以 LLM 做 program-level augmentation,摆脱本文专用三 Transformer 表示。原文
以 large multimodal model 联合使用图的视觉与文本表示,并采用 constrained tree search 保证语法有效性。它延续本文的多模态条件诉求,但把视觉图上下文与执行状态推到更核心位置。原文
| 方法 | 结构来源 | 参数求解 | 渲染反馈 | 主要上下文表示 |
|---|---|---|---|---|
| MatFormer | 无条件 Transformer | 监督 Transformer | 无闭环 | 离散图序列 |
| 本文 | 条件 Transformer | 监督预测 + MATch | 采样后排序与优化 | 单一 CLIP 向量 + 图序列 |
| ProcMatRL | 检索结构 | RL 参数策略 | reward 进入训练 | 目标图像与固定图 |
| VLMaterial | VLM 生成程序 | 程序内参数 | 执行验证可用 | 图像 + Python 程序 token |
| MultiMat | 多模态程序合成 | DiffMat 后优化 | 搜索中使用执行约束与状态 | 视觉图、文本图与混合条件 |
11 · Critique
局限、失败模式与 reviewer 式锐评
作者明确承认
- 基础图由艺术家手工创建,数量远小于大模型训练集
- 模型只能覆盖数据中常见的外观和图结构
- 只支持 Base Color、Normal、Roughness、Metalness
- 图像与文本可能只匹配整体结构,细节错误
- 离散参数量化仍带来误差
- 后优化只能改参数,不能改拓扑
进一步审稿判断
- 主实验只有 48 张真实图,规模较小
- baseline 主要是自建检索库,缺少更广泛用户研究
- 文本生成没有定量指标、prompt 列表和人工偏好评价
- style loss 与程序结构质量并不等价
- 15 MB 对 115 GB 的存储对比有利,但没有纳入大规模候选生成与优化时间
- 数据和本文权重不公开,完整复现不可行
12 · Research Translation
对 context-optimized agentic PMG 的具体启示
当前研究框架,不是本文原始贡献
本文最值得继承的不是特定 Transformer,而是“结构生成、执行验证、外观评估、参数优化”四段式接口。最值得替换的是单一 CLIP 条件向量与一次性拓扑采样。
Procedural Material Generation 线
- 保留 nodes、slot-level edges、parameters 的显式可执行表示,因为它天然支持约束检查与局部编辑。
- 把本文的 \(S_n\rightarrow S_e\rightarrow S_p\) 当作强 baseline,同时增加 hierarchy、subgraph macro 或 CompactSBS 类压缩表示。
- 指标必须分开报告 visual fidelity、graph validity、topology efficiency、editability 与 diversity,不能只用 style loss。
Context Optimization 线
让 Context Optimizer 把参考图像分解为可核验的多尺度 context representation (C),而不是压成一个向量。一个可执行起点是:
Agent 线
本文的 renderer 只在完整图生成后参与排序与参数优化。智能体式搜索应把 renderer 变成循环内环境,让 Agent 在每次局部编辑后观察差异图、分尺度 reward 与执行错误,再决定添加节点、改边、改参数或回退。
| 本文 | 智能体化改造 | 可检验假设 |
|---|---|---|
| 一次性采样完整 \(S_n,S_e,S_p\) | 分阶段 action:AddNode、Connect、SetParam、Delete、Rollback | 过程轨迹是否提升复杂材质成功率 |
| 完整图后 CLIP / SWD 排序 | 每若干步渲染,返回 multi-scale residual | 密集 rendering feedback 是否减少无效搜索 |
| 只对 top-k 调参数 | 允许 topology repair 与参数联合搜索 | 拓扑纠错是否突破后优化上限 |
| 单一全局条件 | 按当前子任务动态检索 \(C^{\ast}\) 的局部片段 | context routing 是否提高 token 与工具效率 |
| 无过程记忆 | 保存失败子图、reward 变化与可复用 motif | 跨尝试记忆是否提高 sample efficiency |
建议的第一篇论文实验骨架
- 任务集:按宏观结构、重复规律、随机纹理、复合层次分层,合成图与真实图分开。
- 主变量:四种 context representation,Agent 与工具保持不变。
- 第二变量:open-loop generation 对 renderer-in-the-loop agentic search。
- 奖励:CLIP / DINO 语义、VGG / SWD 纹理、多尺度频谱、PBR channel、graph cost 与 validity 分项报告。
- 消融:去掉 meso context、去掉 uncertainty、去掉 motif retrieval、去掉 rollback、去掉 episodic memory。
- 预算公平:统一 renderer calls、wall-clock、LLM tokens 与候选数,避免靠更多采样获胜。
13 · Reproduction
复现清单与风险分级
| 模块 | 可复现程度 | 已有信息 | 缺口 |
|---|---|---|---|
| 图序列定义 | 较高 | 顺序、辅助序列、slot pointer、参数展平 | 完整 node library 与词表映射 |
| 模型结构 | 中等 | hidden、layers、heads、6-layer GCN | 激活、dropout、最大长度、实现代码 |
| 条件编码 | 中等 | CLIP ViT-L/14、MLP、texture prior | prior checkpoint、MLP 细节、图像预处理 |
| 数据 | 低 | 清洗规则、阈值、参数采样分布 | Substance 基础图、划分、可下载资产 |
| 训练 | 中低 | Adam、lr、batch、硬件、时间 | steps、betas、seed、scheduler、loss 实现 |
| 推理 | 中等 | top-p、候选数、合法性规则、top-k | 所有终止阈值、异常处理、运行脚本 |
| 后优化 | 中等 | MATch、可微节点限制、时间 | 优化迭代数、学习率、可优化节点清单 |
最小可行复现路径
- 从公开 DiffMat material graphs 建立较小替代数据集,并记录与 Substance Source 的域差异。
- 先复现 MatFormer 风格 nodes、parameters、edges baseline,再实现本文 nodes、edges、parameters 版本。
- 使用开源 CLIP ViT-L/14 固定编码,文本先直接使用 CLIP joint space;若无法取得原 texture prior,应单列为替代实现。
- 执行合法性 masking 与 unconnected-node pruning,单元检查每个规则。
- 把论文 Table 1 的协议拆成生成、检索、优化三个阶段分别计时与报告。
- 所有与原论文不一致之处在结果表中标注,不宣称 exact reproduction。
14 · Sources
References
- Hu, Yiwei, et al. “Generating Procedural Materials from Text or Image Prompts.” SIGGRAPH 2023 Conference Proceedings, 2023. DOI: 10.1145/3588432.3591520. 主要来源:方法、实验、表格与限制。
- Hu, Yiwei, et al. “Supplemental Document: Generating Procedural Materials from Text or Image Prompts.” 2023. 主要来源:辅助序列、合法性规则、confidence interval、class baseline、VGG 编码与参数生成器消融。
- Hu, Yiwei. Official Project Page. 项目身份、作者、论文和补充材料入口。
- Guerrero, Paul, et al. “MatFormer: A Generative Model for Procedural Materials.” ACM Transactions on Graphics 41(4), 2022. DOI: 10.1145/3528223.3530173. 用于核对生成顺序与语义约束。
- Li, Beichen, et al. “Procedural Material Generation with Reinforcement Learning.” ACM Transactions on Graphics 43(6), SIGGRAPH Asia 2024.
- Adobe Research. ProcMatRL official repository. conditional MatFormer 后续实现、训练依赖与数据权重开放限制。
- Li, Beichen, et al. “VLMaterial: Procedural Material Generation with Large Vision-Language Models.” 2025.
- Belouadi, Jonas, Tamy Boubekeur, and Adrien Kaiser. “MultiMat: Multimodal Program Synthesis for Procedural Materials using Large Multimodal Models.” 2025.
- Radford, Alec, et al. “Learning Transferable Visual Models From Natural Language Supervision.” ICML 2021.
- Shi, Liang, et al. “MATch: Differentiable Material Graphs for Procedural Material Capture.” ACM Transactions on Graphics 39(4), 2020.
- Aggarwal, Pranav, et al. “Controlled and Conditional Text to Image Generation with Diffusion Prior.” 2023. 本文使用其 text-to-texture image embedding prior。