BD Load OVoxel
Re-bake a TRELLIS2 voxelgrid without regenerating it
- voxelgrid
- status
TRELLIS2 generation is expensive. Re-running it every time you want to try a different decimation or UV setting is a waste of GPU hours - which is why the BrainDead pack has a caching story for it. BD_LoadOVoxel is the read side: it loads a VOXELGRID back from an exported .vxz file (plus its .mesh.npz sidecar) so you can re-bake without regenerating.
The workflow it enables: run TRELLIS2 once → BD Export OVoxel writes the voxelgrid to disk → later, BD Load OVoxel brings it back → feed it to BD OVoxel Bake (or BD OVoxel Texture Bake) with different settings. The expensive generation is cached; the bake - simplify, UV unwrap, PBR maps - is cheap and fully re-runnable.
How it works
One input, vxz_path (a path to the .vxz file, absolute or relative to ComfyUI's output folder). The node expects a sibling <name>.mesh.npz sidecar in the same directory - the pair BD Export OVoxel writes together. It reconstructs the full VOXELGRID dict: the sparse voxel coordinates and attribute channels from the .vxz, and the original mesh data plus metadata (voxel size, layout) from the sidecar.
Outputs are voxelgrid (the reconstructed VOXELGRID, ready for the baking nodes) and a status string that reports the voxel count and attribute channels - a decent sanity check that the file loaded fully.
The .vxz format is the O-Voxel representation that TRELLIS2's sparse-voxel latent uses - the thing the README's "VXZ Caching Pipeline" diagram is built around:
[TRELLIS2] → voxelgrid → BD Export OVoxel → .vxz + .mesh.npz
↓
BD Load OVoxel → voxelgrid → BD OVoxel Bake (new settings)
What it's for
The honest use case is iteration. You've got a TRELLIS2 shape you mostly like, but the bake needs to be denser, the decimation lower, the UVs different. With this node you never touch the generation again - you just load the grid and re-bake. Given that TRELLIS.2 is a multi-minute generation even on good hardware (and the 3D world's universal complaint is that the generation is fast but the cleanup is the work), anything that removes a regeneration from the loop is worth having.
Install
Part of the BrainDead pack:
cd ComfyUI/custom_nodes
git clone https://github.com/BizaNator/ComfyUI-BrainDead
cd ComfyUI-BrainDead
pip install -r requirements.txt
Or search "BrainDead" in ComfyUI Manager and restart. It needs the pack's o_voxel I/O layer (part of the TRELLIS2 stack) - if you see "ERROR: o_voxel.io not available," that vendored/installed piece didn't come up, which points at the TRELLIS2 install rather than this node.
Troubleshooting
- "Mesh sidecar not found" - the
.mesh.npzisn't next to the.vxz. Both files from the export are required; keep them together. - Attribute channels look wrong in status - a mismatched pair of files (exported with different settings) can leave layout mismatches; re-export cleanly.
- Relative path fails - relative paths resolve against the output folder; if the file lives elsewhere, give an absolute path.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| vxz_path | STRING | Full path to the .vxz file (or relative to ComfyUI output/) |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| voxelgrid | VOXELGRID | — |
| status | STRING | — |