Block3D:基于块级扩散的高效文本到3D生成 Block3D: Efficient Text-to-3D Generation via Block-Wise Diffusion
把3D形状码的逐token自回归解码改为块间因果、块内并行去噪加置信度修正,提速5.15倍
前置知识
向量量化(VQ)形状表示
把 mesh 经冻结编码器压成定长离散码序列:Cube 用 $N=1024$ 个码、码本大小 $V=16384$ 表示一个3D资产,冻结的形状解码器可把完整码序列还原成 mesh。生成任务由此转化为在这套离散词表上预测一条序列。
Block3D 完全复用 Cube 的冻结 tokenizer、码本与解码器,所有创新都发生在「如何生成这1024个码」的先验上;不先理解这套表示,就无法定位它的加速来源和对照实验设计。
自回归 vs 扩散两种生成范式
自回归(AR)一次生成一个 token,条件是已生成前缀,序列长则延迟高且已输出内容不可回改;扩散/流匹配则对所有位置并行多步去噪,保真但每步都重复处理完整潜表示,计算昂贵。Cube(AR 逐码解码)与 TRELLIS(流匹配)分别是两条路线的代表。
论文的问题定义正是这两种范式的延迟-质量困境,而方法是二者的折中体:块间像 AR、块内像扩散。理解两种范式各自的成本结构,才能看懂块级调度的收益来源。
块级扩散(Block Diffusion)调度
一种离散扩散生成调度:序列被切成若干连续块,块与块之间保持因果依赖(只能看之前的块),当前块内部用双向注意力并行去噪;已完成的块写入 KV 缓存供后续复用。该调度最初为文本语言模型提出,兼顾 AR 的缓存高效与扩散的并行性。
Block3D 的生成骨架(块间因果 + 块内双向去噪 + 前缀缓存 + 干净/腐蚀双流训练注意力掩码)直接继承该调度,附录 A.2 的可见性规则是其3D版翻版。
M2T/T2T 置信度编辑(LLaDA2.1)
掩码到 token(M2T):把 $[M]$ 位置填成预测码;token 到 token(T2T):把已填充但置信度不足的码改写为新码。训练时同时暴露掩码态与替换态两种腐蚀,推理时用置信度阈值 $\eta_M, \eta_T$ 决定每步填充与改写哪些位置。
Block3D 的「置信度引导块内修正」就是 M2T+T2T 在定长3D码上的实例化,是块内并行预测不崩坏的关键;消融表5显示去掉 T2T 会使 F@1% 从 0.309 降到 0.287。
无分类器引导(CFG)
同时用条件分支 $\ell^+$ 与无条件分支 $\ell^-$ 外推:$\ell^g=(1+\gamma)\ell^+-\gamma\ell^-$。本文令 $\gamma_s$ 从 3.0 线性衰减到 0.75;引导 logits 负责提议候选码,条件 logits 负责计算接受置信度。
推理超参 $g=3.0$ 直接影响质量;「提议与验收拆分」是理解算法 1(引导不抬高阈值分数)与训练中条件 dropout 复用的前提。
暴露偏差与误差累积
AR 训练时条件是真值前缀(teacher forcing),推理时条件却是自己生成的前缀,早期错误会被后续条件依赖放大。本文用「块内可修正、块提交即冻结」把可修错误限制在活动块内,跨块偏差依然保留。
这是论文设计 T2T 编辑的动机,也是作者在讨论与局限中主动承认「不解决跨块暴露偏差」的理论背景。
研究动机
文本到3D生成面临「高几何保真」与「低推理成本」的两难。自回归路线(Cube、MeshGPT 等)把形状编码为离散码后逐个解码:Cube 需顺序生成全部 $N=1024$ 个形状码,在 A100 上平均端到端耗时 25.71 秒,且每个码一经输出便不可修改,早期错误随条件依赖不断累积(暴露偏差)。扩散/流匹配路线(TRELLIS、Hunyuan3D 2.0、Pandora3D)虽可并行精修,但每个去噪步都要重复处理完整3D潜表示,细节越丰富代价越高;实测 TRELLIS-text 平均 11.65 秒,几何指标却明显落后(CD-L1 0.222 vs Cube 的 0.094,F@1% 0.090 vs 0.219)。其余基线更慢:ShapeLLM-Omni 36.89 秒、AR3D-R1 79.80 秒。游戏、影视、AR/VR 与具身智能等应用需要交互级延迟,现有方法难以同时做到又快又好。
本文的目标是本文目标非常聚焦:在不改动任何几何组件的前提下,重写生成先验的解码调度。具体做法是保留 Cube 冻结的 VQ tokenizer(定长 $N=1024$、码本 $V=16384$)、CLIP ViT-L/14 文本编码器与形状解码器,只把逐 token 的自回归先验替换为块级扩散先验:把 1024 个形状码切成 $K=16$ 个连续块($B=64$),块间保持从左到右的因果依赖,块内用双向注意力并行去噪;并在每块提交冻结之前,通过置信度引导的块内修正(M2T 填充 + T2T 改写)缓解并行预测引入的误差。量化目标是把 Cube 的 25.71 秒平均生成时间压到约 5 秒(5 倍以上加速),同时让 CD-L1、法向一致性 NC、F@1% 等成对几何指标不降反升。
与已有工作不同的是,已有加速尝试各有局限:扩散侧要么压缩3D latent(TRELLIS、Hunyuan3D),要么按语义部件去噪(PartDiffuser 依赖点云条件与部件分割),要么全局离散去噪后再 remasking 精修(TSSR);AR 侧用自适应八叉树、层级尺度(PointNSP、OctGPT)、三角邻接(TreeMeshGPT)或局部 patch(MeshMosaic)缩短序列,但细几何仍需串行生成更多单元。Block3D 的独特切入可概括为「三不动、一更换」:表示不动(定长 Cube 码)、tokenizer/解码器不动、不假设任何语义部件结构(part-free),只更换解码调度——首次把语言模型界的 Block Diffusion(块间因果+块内双向去噪)系统迁移到定长离散3D形状码上,并针对3D任务重新设计腐蚀构造、残差 rollout 监督与有界解码视野。
核心方法
直觉上,Block3D 把「逐字写作」改成「逐段写作、段内草稿可反复修改、写完一段才定稿」。技术路线分四步:(1) 条件准备:冻结的 CLIP ViT-L/14 把提示词编码为 77 个 token 级特征(可选投影边界框 token,但主实验全部只用文本);(2) 块因果生成:$N=1024$ 个形状码被分成 $K=\lceil N/B\rceil=16$ 个连续块($B=64$),当前块从全 $[M]$ 状态出发,注意力上可看全部条件与已提交前缀、块内双向可见、未来块不存在;(3) 块内有界迭代精修:在固定 $T=4$ 步内,每步用 CFG 引导 logits 提议候选码、条件分支置信度 $\alpha$ 决定 M2T 填充与 T2T 改写,确定性揭示配额保证 $T$ 步内清空全部 mask;(4) 提交与解码:块定稿后冻结并写入 KV 缓存,16 块完成后由冻结 VQ 解码器输出 mesh。整条流水线只微调 Cube 的 23 层 DualStream RoFormer 生成器(12 头、宽 1536)。
核心创新是把自回归的因果依赖粒度从单个形状码提升到连续潜在块:块外仍是 AR(保留缓存高效与左到右结构),块内变成并行离散去噪(生成器调用从 Cube 的 1024 次顺序解码降到 $K(T+1)=80$ 次批量调用,即最多 160 次逻辑分支评估)。在此基础上引入置信度引导的块内修正——与纯 masked generative 模型只会「填空」不同,T2T 还能在块定稿前改写已填充但置信度不足的码,为并行预测留出纠错窗口。与 LLaDA2.1 的语言编辑相比,本文为定长3D码定制了整套机制:样本级 Bernoulli 选择 M2T/T2T 腐蚀流、块级腐蚀率 $\tau_k\sim U(0.45,0.95)$、一次无梯度模型 rollout 后只对残差错误位置计算损失,以及保证 $m_T=0$ 的确定性揭示配额。
方法步骤详情
训练:(1) 每样本先做 CFG 条件 dropout,再由 Bernoulli(0.5) 选定腐蚀流:M2T 流以 0.45–0.95 的比例把位置置为 $[M]$,T2T 流以同比例均匀替换为错误码;(2) 在拼接序列上做一次无梯度前向,按干净/腐蚀双流可见性规则,用首轮配额同步执行一次 M2T/T2T 更新得到 rollout 状态;(3) 带梯度前向后仅在残差集上计算残差交叉熵损失 $\mathcal{L}\propto-\sum\log\pi_\theta(x)$;(4) 只微调生成器:35K 步、AdamW、batch 40、4×A100。推理:每块先建条件+前缀 KV 缓存;$T=4$ 次迭代中,CFG 引导 logits(系数从 3.0 线性衰减到 0.75)提议候选码,条件分支置信度 $\alpha$ 按阈值 $\eta_M=0.95$、$\eta_T=0.9$ 决定更新:M2T 填充高置信 mask 并按配额兜底揭示,T2T 改写新码不同且过阈的已填位置;配额保证 $T$ 步内 mask 清零,块定稿冻结,16 块完成后由冻结 VQ 解码器输出 mesh。
技术新颖性
新颖性在于「成熟组件的非平凡规格化」。块因果+块内双向的调度来自 Block Diffusion,M2T/T2T 编辑来自 LLaDA2.1,但两者均为语言设计;本文的贡献是给出把它们落到定长3D码上所必需的全部定制:形状码腐蚀的具体构造($[M]$ 复用继承的 padding 嵌入做查找,但排除在 $V$ 路输出归一化之外、永不进入形状解码器);样本级腐蚀流混合与块级腐蚀率;一次 model-based rollout 的残差目标——只监督 rollout 后仍错的 token,天然聚焦困难位置并引入模型自产错误;置信度门控的「提议/验收」拆分(CFG 只影响提议、不直接抬高阈值分数 $\alpha$);以及把块内精修限制在固定视野 $T$ 内的确定性配额。与 PartDiffuser 的部件条件去噪、TSSR 的全局去噪+remasking 都不同:无需部件分割或点云条件,已完成前缀块永不重开,解码复杂度有硬上界 $K+KT$。
实验结果
在 TRELLIS-500K 留出的 100 个对象上:(1) 几何质量(表1):Block3D 的 CD-L1=0.078、NC=0.668、F@1%=0.309 三项全部最佳;对照同初始化同预算的 Cube(0.094/0.632/0.219),F@1% 相对提升约 41%,即加速同时提升了成对几何保真;CLIPScore 23.24 略低于 Cube 的 23.87,但高于其余全部基线。(2) 延迟(表2):平均 4.99 秒、对 Cube 加速 5.15×,median/P90 同步领先、优势覆盖全部 prompt,也比最快的 TRELLIS-text(11.65s)快约 2.3×。(3) 块大小(表3):$B$ 从 64 增至 256 时延迟由 4.99 降至 2.15 秒,但 F@1% 从 0.309 崩至 0.103,$B=64$ 是平衡点。(4) 去噪步数(表4):$T$ 从 4 增到 20,延迟升至 13.66 秒而指标无单调增益,取 $T=4$。(5) T2T 编辑(表5):较 M2T-only 变体,CD-L1 降 4.7%、F@1% 0.287→0.309。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 文本到3D几何生成(100个 TRELLIS-500K 留出对象) | Chamfer-L1(CD-L1)↓ | 0.078 | Cube 0.094(受控基线);最佳外部基线 AR3D-R1 0.145 | 较 Cube 降低约 17%,较 AR3D-R1 降低约 46% |
| 文本到3D几何生成(同评测集) | 法向一致性 NC ↑ | 0.668 | Cube 0.632;TRELLIS-text 0.496 | 较 Cube +0.036,较 TRELLIS-text +0.172 |
| 文本到3D几何生成(同评测集) | F@1% ↑ | 0.309 | Cube 0.219;TRELLIS-text 0.090 | 较 Cube +41%,约为 TRELLIS-text 的 3.4 倍 |
| 端到端生成延迟(A100 80GB,含编码/生成/解码) | 平均时间(秒)↓ | 4.99(median 4.96,P90 5.60,std 0.43) | Cube 25.71;TRELLIS-text 11.65;ShapeLLM-Omni 36.89;AR3D-R1 79.80 | 对 Cube 加速 5.15×,比最快的 TRELLIS-text 快约 2.3× |
| 文本-形状对齐(8视角 CLIPScore) | CLIP ↑ | 23.24 | Cube 23.87;AR3D-R1 21.92 | 落后受控基线 Cube 0.63,领先其余全部基线 |
| T2T 编辑消融(同评测集,独立训练) | F@1% ↑ / CD-L1 ↓ | 0.309 / 0.078(M2T+T2T) | M2T-only 变体 0.287 / 0.081 | F@1% +0.022,CD-L1 降低 4.7%,CLIP +0.5 |
局限与改进
作者明确承认:块沿 Cube 的一维码序机械切分、提交后即冻结,因此方法只处理块内错误,既不对应语义部件结构,也不解决跨块暴露偏差;训练用 teacher-forced 的干净块级前缀,推理却条件于模型自己生成的 token 因果前缀,前缀缓存只节省计算、不消除这种训练-推理失配。我的补充观察:(1) CLIPScore 从 Cube 的 23.87 微降到 23.24,提示块内并行可能在文本-形状细粒度对齐上有轻微代价;(2) 评测仅 100 个对象且全部来自 TRELLIS-500K 分布,对其他资产域(CAD、扫描件、风格化卡通)的泛化未验证;(3) 定长 1024 码的表示无自适应分辨率,极复杂几何的细节上限受冻结 tokenizer 限制;(4) 阈值 $\eta_M/\eta_T$ 沿用 LLaDA2.1 的文本默认值,未针对3D系统调参;(5) 每个消融配置都独立训练 35K 步,超参搜索的实际算力开销不小;图4 中红框标注的基线缺陷属展示性注释而非量化证据。
独立分析的弱点
(1) 已提交块永久冻结:若某块的因果错误(如头部比例失当)在定稿后才暴露,后续块无法弥补,唯一出路是从头重生成——可探索受限的跨块回滚或局部前缀精修,在保住 KV 缓存优势的同时允许有限次重开。(2) 块边界由一维码序机械切分,与几何语义(部件、对称性)无对应,同一块内并行预测的位置可能属于不相关结构,$B$ 增大时质量骤降($B=256$ 时 F@1% 崩到 0.103)正是佐证——可学习式分块或按部件分块,但要避免 PartDiffuser 式的分割依赖。(3) 所有 prompt 共享固定的 $B=64$、$T=4$:简单物体浪费算力、复杂物体精修不足,可引入难度感知的自适应块大小或步数分配。(4) T2T 改写只检查新候选的置信度、完全不看旧码的置信度,理论上存在用高置信错误码覆盖正确低频码的风险,可为 T2T 增加「旧码保护带」。(5) 定长码序列天然不适合由粗到细的多分辨率生成,与八叉树/层级 tokenization 的结合值得探索。
未来方向
作者在结论中提出两个方向:跨块精修(cross-block refinement)与扩展到更广的形状表示和数据集。基于本文成果还可延伸:(1) 把有界置信度修正推广到纹理、3DGS 属性等其他定长离散序列,形成统一的块级3D资产生成框架;(2) 与实时3D场景生成系统对接——5 秒级延迟加标准 mesh 输出(论文 teaser 已演示在 Blender 中把 41 个生成资产拼装成竞技场)使其天然适合交互式内容管线;(3) 启用被主实验搁置的边界框条件,探索布局可控的组合式多物体生成;(4) 用蒸馏或一致性目标进一步压缩 $KT=64$ 次活动块调用,逼近实时;(5) 在更大、更多样化的数据集上重训,并专门检验长尾几何(细薄结构、各向异性强的形状——评测集中已有 36/100 的目标 $a_j>3$,但规模太小);(6) 研究块级调度与自适应 tokenization(八叉树)的兼容性,兼得自适应分辨率与并行性。
复现评估
复现条件总体较好。代码与数据包随论文发布:training(双流注意力构造、M2T/T2T 腐蚀、无梯度 rollout、残差目标)、inference(有界可编辑采样器、CFG 调度、前缀缓存)、evaluation(8192 点几何评测与八视角 CLIPScore),另含论文对齐的 YAML 配置、torchrun 脚本、固定 100 例评测 manifest(记录 prompt、来源、mesh 路径与边界框)与逐样本评测/延迟脚本,随机种子、点采样、渲染细节均有精确公式。但包内不含权重与数据:需自行获取 Roblox/cube3d-v0.5(Cube checkpoint、tokenizer、解码器)、CLIP ViT-L/14 与 TRELLIS-500K 快照,且不提供训练好的 Block3D checkpoint,必须自行训练。算力:4×A100 80GB、35K 步、bfloat16、全局 batch 40;每个消融配置独立训练 35K 步,完整复现全部表格约需十次同规模训练;推理单卡 A100 每样本约 5 秒。文档极详尽,主要成本在 PyTorch3D 依赖安装与外部基线对齐,整体难度中等偏上。
论文图表
训练注意力掩码的块级可视化:腐蚀(noisy)块的 query 可见条件、之前所有块的干净 teacher-forced 前缀、以及本块的腐蚀副本;不可见本块的干净目标、未来任何块、以及其他块的腐蚀状态。绿色为可见、灰色为屏蔽,token 级规则由式 A.3–A.5 给出。
这是「不泄漏目标」的关键证明:正是这组可见性规则让全部块的腐蚀状态能在一次前向中并行训练——既向 Block Diffusion 的向量化训练看齐,又适配了 Cube 的定长码,是复现训练的必读图。
主配置的三个解析诊断图:(a) 确定性配额保证每步至少揭示 16 个位置,mask 数按 64→48→32→16→0 有界递减;(b) CFG 系数按式 (4) 逐步为 3.00/2.25/1.50/0.75;(c) 生成器调用数——Cube 需 1024 次顺序 token 评估,Block3D 只需最多 KT=64 次活动块评估(含 CFG 为 128 次逻辑分支)。
把「为什么快」算成明白账:mask 递减界、CFG 衰减表、调用数对比三者合起来给出解码过程的完整解析画像,是理解算法 1 行为与复杂度推导(附录 A.5)的速查图。
评测集画像:(a) 来源分布为 Objaverse-XL Sketchfab 53 个、GitHub 46 个、ABO 1 个;(b) 提示词长度 10–38 词、中位数 19;(c) 形状各向异性 $a_j=\max_d b_{j,d}/\min_d b_{j,d}$ 中位数 2.15,36/100 的目标 $a_j>3$。
交代评测集构成与难度:近四成目标为明显拉长/压扁的非各向同性形状,说明评测并非只挑「球状简单物体」,为几何指标的含金量提供背景,也便于他人核对数据划分。
图 4 的完整提示词版:五列分别展示 Block3D、Cube、TRELLIS-text、AR3D-R1、ShapeLLM-Omni 在五个完整长提示词(骑士、小狗、佛头、凉亭、运动鞋)下的正背视渲染,消除主图截断带来的歧义。
保证定性对比可核查:长提示词往往包含细粒度部件要求(如「八角凉亭带八个立柱和栏杆」),完整 prompt 让读者能逐一检验各方法对细节指令的遵循程度。
九组额外的 Block3D 生成结果,每组展示单个 mesh 的两到三个视角并附完整提示词,覆盖人物雕像、饰品与人造物、风格化动物等类别,展示细薄结构、双面对称形态与剪影细节。
扩展定性覆盖面:主对比图只有 5 个例子,这 9 组多视角结果补充展示了模型在更多类别上的稳定性与失败边界,且作者明示这些例子未参与任何指标或选型,属纯展示。