BD TRELLIS.2 Shape to Textured Mesh
The node that turns a TRELLIS.2 shape into an actual painted PBR mesh
- conditioning
- shape_result
- texture_conditioning
- trimesh
- voxelgrid
- pbr_pointcloud
- shape_voxelgrid
- shape_pbr_pointcloud
If you've made it to BD TRELLIS.2 Shape to Textured Mesh, you're at the last leg of the image-to-3D pipeline: shape done, geometry in hand, and now you want it painted. This is the node that does it - it takes your shape_result plus a conditioning and runs the TRELLIS.2 texture model over it, emitting a mesh with real PBR attributes (base color, metallic, roughness, alpha) instead of a single flat diffuse coat. It's where a blob of triangles becomes something you'd actually put in front of a light.
It sits in the 🧠BrainDead/TRELLIS2 category and is designed to sit between BD Image to Shape and the BrainDead bake/export nodes. The geometry flows in, the paint flows out.
How it works
The node feeds your shape_result and conditioning into the TRELLIS.2 texture pipeline, which synthesizes a PBR texture conditioned on the image features you encoded earlier, then transfers it onto the mesh and a sparse voxel grid. Because it outputs a voxelgrid with all the PBR channels, you can run the result through the pack's OVoxel bake nodes to get a proper UV texture atlas - or just export the trimesh with its per-vertex PBR attributes directly.
The advanced move is dual conditioning. Most pipelines use one conditioning for both shape and texture. This node accepts an optional texture_conditioning input so you can do the smart split:
- Fast shape + detailed texture: run your shape conditioning at
512(quick), then make a second conditioning at1536_cascadeand feed it in astexture_conditioning. You get fast geometry and a high-detail paint job. - Different images: use an outline/clean render for the shape conditioning and a different reference for the texture, so the shape comes from structure and the color comes from a photo you actually like.
Inputs worth your attention
conditioning+shape_result- the two required feeds, straight from Get Conditioning and Image to Shape.texture_conditioning- optional, and the whole reason this node exists for power users. Separate resolution or separate image for the texture pass.seed- texture variation. Different seeds, same geometry: cheap style exploration.tex_guidance_strength(default 7.5) andtex_sampling_steps(default 12) - the texture CFG and step count. Same tuning logic as any sampler: raise guidance if the paint is weak, raise steps if you want a touch more refinement at a speed cost.output_shape_voxelgrid- if you're running dual conditioning, this also outputs the shape-side voxelgrid. The tooltip is honest about the trade: it runs the texture pass twice.
Outputs: trimesh, voxelgrid, pbr_pointcloud (a debug point cloud showing all six PBR channels - great for spotting where a channel fell apart), and - when dual conditioning is active - shape_voxelgrid and shape_pbr_pointcloud.
Installation
Part of ComfyUI-BrainDead. ComfyUI Manager → search "BrainDead" → install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/BizaNator/ComfyUI-BrainDead
cd ComfyUI-BrainDead
pip install -r requirements.txt
The non-negotiable companion: ComfyUI-TRELLIS2. These nodes don't bundle the model - they import the trellis2 package from that pack and raise an ImportError without it. Install both, and the first run of any TRELLIS2 node downloads the TRELLIS.2-4B weights (multi-GB).
Common issues
- "trellis2 not available" - missing ComfyUI-TRELLIS2. Install it.
- Texture is grainy or blobby - raise
tex_guidance_strengtha notch and consider1536_cascadeviatexture_conditioning. The default1024_cascadeis a compromise, not a ceiling. - Slow, or OOM on small cards - drop to
512for iteration, usecpu_offloadin the conditioning nodes, and remember the 3D-gen wisdom: generation is minutes, cleanup is hours. The topology you get out of this is still machine-made and will need a retopo/UV pass for anything that has to animate in a game engine. For a static prop, render, or print - ship it as-is.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning | TRELLIS2_CONDITIONING | — | |
| shape_result | TRELLIS2_SHAPE_RESULT | — | |
| seed | INT | 00–2147483647 | Random seed for texture variation |
| tex_guidance_strength | FLOAT | 7.51–20 | Texture CFG scale |
| tex_sampling_steps | INT | 121–50 | Texture sampling steps |
| output_shape_voxelgrid | BOOLEAN | false | When using dual conditioning, also output voxelgrid from shape conditioning (runs texture twice) |
| texture_conditioningopt | TRELLIS2_CONDITIONING | Optional: Separate conditioning for texture (different resolution/image) |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| trimesh | TRIMESH | — |
| voxelgrid | VOXELGRID | — |
| pbr_pointcloud | TRIMESH | — |
| shape_voxelgrid | VOXELGRID | — |
| shape_pbr_pointcloud | TRIMESH | — |