Native-style multi-view conditioning for Trellis2, plus an in-memory MeshWithVoxel to native MESH + VOXEL bridge that carries full PBR color (base color RGB + metallic + roughness).
No compiled dependencies beyond what ComfyUI already ships with.
Averages DINOv3 global tokens across 1–4 views (front / left / back / right)
and emits the exact same CONDITIONING format as core Trellis2Conditioning,
so all downstream core nodes (Trellis2ShapeStage / KSampler /
Trellis2UpsampleStage / Trellis2TextureStage / VAE decodes) work unchanged.
Trellis2 diffusion uses global cross-attention trained single-view, so
mean-pooling the global tokens is the architecturally consistent way to
condition on several views without retraining. View order is irrelevant to
the diffusion; the first connected view is treated as "front" only as a
posing convention. Each view has a use_* switch to skip a wired view
without disconnecting it. 2 views (front + back) work well and sample
~2x faster than 4; 1 view passes through as plain averaging.
Native port of visualbruno's multiview sampler fusion — this is what
locks the mesh to the source pose. It encodes each view's DINOv3 tokens
itself and patches MODEL (supported set_model_unet_function_wrapper
hook), so every KSampler step runs once per view and blends with the
same spatial softmax (front_axis z/x, blend_temperature, default
z / 2.0). Pure torch, no compiled deps. Wire:
UNETLoader -> patch -> KSamplers, same 4 views + CLIP Vision as the
conditioning node, keep use_* switches in sync on both nodes.
Single view = passthrough.
Sharpness note: visualbruno's rescale_t (4.0 structure/shape,
3.0 texture) is exactly Comfy's flow shift
(α·t/(1+(α-1)·t)), so use core ModelSamplingSD3 nodes for it:
shift 4.0 between the patch and the structure/shape KSamplers,
shift 3.0 before the texture KSampler — then 12 steps / 6.5 / 3.0
match bruno's defaults. Without the shift nodes everything reads
soft no matter the step count.
Native port of the last bruno sampler delta: per-step CFG runs only
inside [start, end] (pure conditional outside — bruno's
guidance_strength=1 fallback) with his x0-std rescale
(guidance_rescale, 0.2 on every stage). Use one instance at
0.1-1.0 for structure/shape and one at 0.0-0.9 for texture.
Converts visualbruno ComfyUI-Trellis2 MESHWITHVOXEL to native ComfyUI
MESH + VOXEL in memory — no GLB export, no shape-encoder re-encode,
no VAE needed.
meshoutput: feed into MeshReconstructWithQuad / WTiVo / LODTailor.voxel_colorsoutput: feed into coreBakeTextureFromVoxelfor real color/PBR texture bakes.reorient_zup_to_yup(default on): applies the same R_x(-90) as Trellis2MeshWithVoxelToTrimesh "90 degrees", so mesh vertices and voxel indices stay aligned in Y-up space.- If the input has no voxel grid (generator ran with
generate_texture_slatdisabled), the mesh still passes through and an empty VOXEL is emitted with a warning — the watertight chain completes and Bake produces black maps instead of crashing the run.
Manual: copy this folder into ComfyUI/custom_nodes/ and restart ComfyUI.
ComfyUI-Manager: install from Git URL
(https://github.com/saogalaxy/ComfyUI-Trellis2-Multiview-Native), then restart.
trellis2_multiview_workflow.json— native multiview Trellis2: LoadImage views -> Multi-View Conditioning -> KSamplers -> VAE decodes -> PaintMesh -> GLB. Needs:trellis_2_int8_convrot, shape/texture VAEs,dino_v3_L_naf_fp32. Restart ComfyUI after installing.trellis2_multiview_spatial_workflow.json— same chain plus the Spatial Multi-View Patch between UNETLoader and the KSamplers (pose-locked, 1024_cascade). Tip: keep Quad Reconstruct bypassed until pose holds — at 1536 +remove_inner_facesit can hollow thin cloth and read as see-through.- Bridged PixelArtistry chain (separate file): Trellis2 multiview
generator -> Remesh -> Simplify -> FillHoles ->
MeshWithVoxelToNativeBridge -> Quad Reconstruct -> MemoryCleaner ->
WTiVo watertight -> LODTailor -> Unwrap -> BakeTextureFromVoxel
(voxel_colors from the bridge) -> ApplyTexture -> GLB saves.
IMPORTANT: the Trellis2 generator must run with
generate_texture_slatenabled, otherwise there is no color grid to bridge and bakes come out black.
Inspired by: