实验定位 根因定位更精确
A6 直接 patch TRELLIS.2 运行时,捕获 selected-alpha 真实 full-run 的中间状态。结论比 A5 更精确:A3 preflight 通过不代表 full-run 也通过。在 gso_000_input4 上,selected alpha=0.1250 的 full-run sparse sampler 输出 0 个 token,随后 shape SLat 入口因为 empty coords 崩溃;baseline 同 seed 输出 26 个 token 并成功生成 mesh。
实验设计(Image-2 风格)
模块设计(Image-2 风格)
本页的模块设计图已在“实验设计”区域并排展示;它描述输入视角、VGGT/TRELLIS.2 信号、门控/路由、mesh 输出和评测反馈之间的数据流。这里单独标出模块设计章节,方便按统一汇报格式阅读。
实验结果(表格)
| run | 状态 | sparse tokens | shape SLat tokens | vertices | faces | 异常 |
|---|---|---|---|---|---|---|
| selected-first | failed | 0 | - | - | - | RuntimeError: max(): Expected reduction dim to be specified for input.numel() == 0. Specify the reduction dim with the 'dim' argument. |
| baseline | ok | 26 | 26 | 6703 | 13496 | - |
| selected-after-baseline | failed | 0 | - | - | - | RuntimeError: max(): Expected reduction dim to be specified for input.numel() == 0. Specify the reduction dim with the 'dim' argument. |
可视化结果
真实 full-run 中 selected-alpha 直接坍塌为空 support。
同 seed baseline 正常进入 shape/texture/mesh 解码。
先跑 baseline 不能修复 selected-alpha 的 empty support。
代码级定位
异常发生在 shape SLat 入口,而不是 texture decode 或 mesh fill。selected run 的 sample_sparse_structure 返回空 coords.shape=[0,4];随后 SparseTensor 需要从 coords 计算 shape,空张量触发 max() 报错。相关代码位置:/home/jiachen/.config/superpowers/worktrees/TRELLIS.2/trellis2-multiview-input/trellis2/modules/sparse/basic.py:463 附近的 coords[:, 0].max() / spatial shape 计算。
实验结论
- A6 修正了 A5 的根因判断:不是“sparse support 精确一致但 decoder 仍失败”,而是离线 preflight 与真实 full-run 的 sparse support 不一致。
- selected-alpha 在真实 full-run 中输出 0 个 sparse token,所以任何后续 decoder gate 都必须先检查 full-run sparse coords 是否非空。
- 这个问题很有论文价值:VGGT residual 对 diffusion trajectory 的影响不能只用离线候选评估,必须绑定真实生成轨迹做 runtime trust-region。
- 工程上最小修复是 no-empty-support gate:如果 selected run 的 sparse token count 为 0,立即回退 baseline;研究上应进一步让 guided trajectory 在每一步保持 support viability。
下一步想法
下一轮 A7 应该实现 runtime sparse viability gate:在 TRELLIS.2 full generation 内部捕获 selected sparse coords;若 empty、token ratio 过低/过高、centroid drift 或 Jaccard 不达标,则不进入 shape SLat,直接回退 baseline。这个 gate 需要在 10-case 上验证 no-extra-failure,再扩到 100-case 2/4/6/8 输入矩阵。