Nodes/BrainDead Nodes/BD TRELLIS.2 Shape to Textured Mesh
ComfyUI Node

BD TRELLIS.2 Shape to Textured Mesh

The node that turns a TRELLIS.2 shape into an actual painted PBR mesh

By BizaNator·Created 8 months ago·Updated 3 days ago· 15
BD TRELLIS.2 Shape to Textured Mesh
  • conditioning
  • shape_result
  • texture_conditioning
  • trimesh
  • voxelgrid
  • pbr_pointcloud
  • shape_voxelgrid
  • shape_pbr_pointcloud
seed0
tex_guidance_strength7.5
tex_sampling_steps12
output_shape_voxelgridfalse

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 at 1536_cascade and feed it in as texture_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) and tex_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_strength a notch and consider 1536_cascade via texture_conditioning. The default 1024_cascade is a compromise, not a ceiling.
  • Slow, or OOM on small cards - drop to 512 for iteration, use cpu_offload in 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.
Category🧠BrainDead/TRELLIS2

Inputs (7)

NameTypeDefaultDescription
conditioningTRELLIS2_CONDITIONING
shape_resultTRELLIS2_SHAPE_RESULT
seedINT00–2147483647Random seed for texture variation
tex_guidance_strengthFLOAT7.51–20Texture CFG scale
tex_sampling_stepsINT121–50Texture sampling steps
output_shape_voxelgridBOOLEANfalseWhen using dual conditioning, also output voxelgrid from shape conditioning (runs texture twice)
texture_conditioningoptTRELLIS2_CONDITIONINGOptional: Separate conditioning for texture (different resolution/image)

Outputs (5)

NameTypeDescription
trimeshTRIMESH
voxelgridVOXELGRID
pbr_pointcloudTRIMESH
shape_voxelgridVOXELGRID
shape_pbr_pointcloudTRIMESH