MULTIMODAL PROGRAM SYNTHESIS · PROCEDURAL MATERIALS

MultiMat

Multimodal Program Synthesis for Procedural Materials using Large Multimodal Models

Jonas Belouadi · Tamy Boubekeur · Adrien Kaiser · arXiv:2509.22151
一句话理解
MultiMat 不只是让 VLM “写” procedural material graph,而是在逐节点生成过程中不断把当前 graph 的视觉状态重新反馈给模型,让程序生成从纯文本 autoregression 变成带执行视觉反馈的 multimodal program synthesis
01 · Problem Definition

任务不是生成图片,而是生成一个可执行、可编辑的程序图

给定 source / target image \(x\),目标是恢复一个 procedural material graph \(G\),使其能够生成与目标外观相符的材质,同时仍保留节点图的可编辑性、参数化能力与任意分辨率渲染优势。

\[x \longrightarrow G=(V,E,\theta)\]

\(V\) · Nodes

节点集合,例如 Noise、Blend、Warp、Levels、Tile Generator 等。

\(E\) · Edges

节点之间的连接关系,决定数据如何从一个节点流向另一个节点。

\(\theta\) · Parameters

所有节点参数,如 scale、rotation、contrast、opacity、roughness 等。

\(x\) 是条件生成中的 source / target material image。\(G\) 是完整 procedural material graph。因此该任务同时包含 离散结构生成拓扑连接预测连续参数估计
02 · Motivation & Related Work

为什么纯文本 program synthesis 不够?

Procedural material graph 本质上既是程序,又是视觉空间结构。节点之间的拓扑、局部中间结果以及最终外观,都是人类材质设计师理解 graph 的关键。纯文本序列会丢掉这种视觉状态。

MatFormer, 2022
神经 procedural material graph generation 的重要前作。
Generating Procedural Materials from Text or Image Prompts, 2023
将 text / image conditioning 引入 procedural material synthesis。
Procedural Material Generation with Reinforcement Learning, 2024
从搜索与策略学习角度生成 graph。
VLMaterial, 2025
使用视觉语言模型生成 procedural material program,是 MultiMat 最直接的 baseline。
MultiMat
把 partial graph 的视觉执行状态重新纳入下一步 program synthesis。
03 · Dataset & Representation

6,878 个 production-quality Substance Designer graphs

6,878
procedural materials
128
预处理后最大节点数
>80%
CompactSBS 相比 SBS 的平均长度压缩

CompactSBS

Paper fact作者构建 SBS ↔ CompactSBS 的双向 transpiler。CompactSBS 采用类似 YAML 的紧凑表示,并按 topological order 序列化节点。

s4:
  function: tile_generator
  outputs:
    output: grayscale

s7:
  function: multi_directional_warp_grayscale
  connections:
    input:
      node: s4
      id: output
可复现性:CompactSBS 是表示格式,不是一个名为 “CompassSBS” 的公开数据集。论文所用 6,878 个 graph 来自 Adobe 资产库,公开论文中并未给出一个可直接下载的完整训练数据包。
04 · Overall Method

逐节点生成、执行、观察,再生成下一节点

MultiMat 的核心循环可以理解为“program synthesis + executor feedback”。

Target \(x\)
+
Current \(G_t\)
+
Visual states \(I_t\)
MultiMat
Generate \(v_{t+1}\)
CompactSBS
Transpile
Substance execution
New preview \(i_{t+1}\)
\[v_{t+1}\sim p(v_{t+1}\mid G_t,I_t,x)\]

训练目标

\[\mathcal{L}=-\sum_{t=1}^{T}\sum_{s=1}^{S}\log p(v_{t,s}\mid v_{t,\lt s},G_t,I_t,x;\theta)\]

其中 \(x\) 在 unconditional setting 为空,在 conditional setting 中为目标图像。

05 · Multimodal Conditioning

Mixed Conditioning vs. Graph Conditioning

Mixed

Structured text + node previews

当前 graph 以 CompactSBS 文本表示,同时把每个节点的 intermediate image embedding 插入对应节点附近。

node text → preview
node text → preview
node text → preview

对应关系显式,结构信息清楚。历史节点参数可省略,因为它们的视觉效果已经通过 preview 表达。

Graph

Full graph visualization

模型只条件于整个 node graph 的视觉化结果,其中包含节点框、空间布局、连接关系以及节点 preview。

[ rasterized node graph ]
 node A ─────┐
  preview    ├→ Blend
 node B ─────┘

更直接保留 graph 的视觉空间结构,但 node name 和 function type 需要从图像中读取,因此更容易产生类似 OCR 的错误。

InterpretationFigure 3 中 Mixed 和 Graph 两条路径汇入同一 MultiMat 框架,并不意味着一次 forward 同时输入两种表示。论文将它们作为两种独立 conditioning strategies,并分别报告模型结果。可以把它们理解为同一 backbone 上的不同 fine-tuned checkpoints。
06 · Autoregressive Graph Construction

一个 BOS 如何生成多个独立 source branches?

关键是区分“sequence 的起点”和“graph 的 root”。BOS 只是自回归 token sequence 的开始,不是 procedural DAG 的唯一根节点。

Linear serialization

<BOS>
v1 = Noise A
v2 = Levels(v1)
v3 = Noise B
v4 = Blend(v2, v3)

Recovered DAG

Noise A → Levels ┐
                 ├→ Blend
Noise B ─────────┘
\[\texttt{BOS}=\text{sequence start}\qquad \deg^{-}(v_i)=0 \Rightarrow v_i\text{ is a graph root}\]

模型可以在任意 generation step 输出一个没有 upstream input 的 generator,从而开启新的 independent branch。当后续生成 Blend / Combine 等节点时,再通过 backward node references 引用此前已经存在的多个 branch。

Linear autoregressive sequence does not imply a single-root graph.
Multi-root DAG 的构造依赖 topological serialization + explicit backward references。

节点参数如何产生?

VLM 自回归生成完整的新节点定义,因此 node type、参数以及 connections 都属于 token prediction 的输出。完整 graph 生成后,continuous parameters 还可以用 DiffMat refinement。

08 · Conditional Generation

目标图像参与 graph synthesis,参数优化发生在完整 graph 之后

Conditional setting 中,每个训练样本前加入一张 \(512\times512\) 的 material rendering,约增加 324 个 image patches。模型学习在目标图像 \(x\) 与当前 graph state 的共同条件下预测下一个 node。

Target image \(x\)
+
Partial graph
+
Intermediate states
Complete graph \(G,\theta_0\)
Complete graph
DiffMat
Refined \(\theta^{\ast}\)
\[\theta^{\ast}=\arg\min_{\theta}D(R(G,\theta),x)\]
要区分两个阶段:MultiMat 首先生成离散 graph topology 与初始参数;MultiMat+ 再通过 differentiable material optimization 改善连续参数。如果 graph structure 本身选错,单纯优化 \(\theta\) 很难完全修复。
09 · Training Setup

训练与推理设置

BackboneQwen2.5-VL 7B
Maximum sequence length8192
Epochs5
OptimizerAdamW
Learning rate\(5\times10^{-5}\)
Batch size128
Inference temperature0.8
Top-p0.95
Hardware8 × NVIDIA A100 80GB

Mixed Conditioning 的 unconditional node previews 使用 \(140\times140\) 图像,每张约 25 个 patch embeddings;Graph Conditioning 整图最多使用 6144 visual tokens。

10 · Experiments

Graph Conditioning 的视觉质量最好,Mixed 的节点稳定性更强

Unconditional generation

ModelKID ↓ROUGE-LNER ↓
VLMaterial (SBS)14.1553.64114.846
MultiMat (Mixed)6.7522.1958.923
MultiMat (Graph)2.3651.91515.024

Conditional generation

ModelDreamSim ↑CLIP ↑Style ↓KID ↓NER ↓
VLMaterial31.34465.6783.21114.97616.933
Mixed34.92266.7373.1993.67512.388
Graph36.60967.9073.1782.80117.046
Mixed+40.25869.6873.09317.792
Graph+40.36770.1143.04614.886

关闭 tree search 时,VLMaterial 的 NER 从 14.846 恶化到 33.953,说明 constrained execution-aware inference 对 program validity 非常重要。

11 · Reviewer View

这篇论文真正强在哪里,又缺什么?

Strengths

核心贡献

  • 把 procedural material graph 明确视为 visual-spatial program。
  • 提出 Mixed 与 Graph 两种 multimodal conditioning representation。
  • CompactSBS 显著降低长程序 token 成本。
  • execution-aware tree search 显著提升可执行性。
  • 同时覆盖 unconditional 与 source-image conditional generation。
Limitations

主要缺口

  • 没有显式 global graph planner。
  • search 主要是 validity-aware,而不是 target-aware。
  • 完整 graph 生成后主要优化参数,而非 topology。
  • 训练 graph 数量仅 6,878。
  • conditional training 主要来自干净 material rendering,与真实照片存在 domain gap。
  • evaluation 更关注最终 render,缺少 editability / controllability / structural quality 指标。
12 · Research Opportunities

从 MultiMat 走向 target-aware hierarchical material synthesis

1 · Target-aware Value Model

\[V(G_t,I_t,x)=P(\text{partial graph can eventually match }x)\]

不是要求当前 preview 立即像 target,而是估计当前 state 最终能否通向高质量 graph。

2 · Hierarchical Graph Planning

先决定需要哪些 branches、各 branch 的功能以及 merge 关系,再生成具体 node 和参数。

3 · Structure Refinement

\[(G^{\ast},\theta^{\ast})=\arg\min_{G,\theta}D(R(G,\theta),x)\]

增加 add / delete / replace / reconnect / split / merge 等 graph editing operations。

4 · Hybrid Conditioning

融合 structured graph tokens、node previews 和 full graph visualization,让文本负责精确 node identity,视觉负责 appearance 与 topology。

5 · Multi-scale Conditioning

把 target image 分解为 global / meso / micro features,并根据 node type 动态选择视觉尺度。

6 · Data Scaling

利用生成 graph、参数扰动以及 graph-equivalent augmentation 扩展 paired data。

7 · Real-photo Adaptation

处理 lighting、geometry、shadow、camera response 后,实现 in-the-wild photo → editable material graph。

8 · Better Evaluation

加入 graph complexity、editability、semantic modularity、parameter controllability 与 structural quality。

下一步真正值得解决的,不是“怎样让生成的节点都合法”,而是“怎样让每一个局部决策都服务于最终目标,同时保留一个全局可编辑的程序结构”。
13 · Reproduction Checklist

复现时需要确认什么?

数据

获得合规的 Substance Designer procedural graphs;复现预处理;限制 graph complexity;保留目标 PBR outputs。

表示

实现 SBS ↔ compact graph serialization;确保 lossless、topologically ordered、token-efficient。

视觉状态

执行 partial graph 并缓存 intermediate previews;分别构造 Mixed 和 Graph conditioning input。

训练

Qwen2.5-VL 7B;8192 sequence length;5 epochs;AdamW;learning rate \(5\times10^{-5}\);batch size 128。

推理

temperature 0.8;top-p 0.95;逐节点 transpile + execute;automatic repair;resampling;exponential backtracking。

Conditional refinement

完整 graph 生成后接 DiffMat 做 differentiable parameter optimization,并分别报告 refinement 前后结果。

References

主要资料

  1. MultiMat: Multimodal Program Synthesis for Procedural Materials using Large Multimodal Models
  2. Generating Procedural Materials from Text or Image Prompts
  3. DiffMat

“Paper fact”表示论文明确陈述;“Interpretation”表示基于论文机制与本次讨论所做的技术解释;“Limitations / Research Opportunities”属于审稿与研究延伸视角,并非作者原文结论。