Hy3D Nvdiffrast Renderer
A proper GPU turntable render of your finished mesh — the 'show it off' node
- trimesh
- image
- mask
Once you've gone through the whole Hunyuan3D pipeline - shape, decode, clean, paint, bake - you want to actually look at the thing turning, in color, from every side. Hy3DNvdiffrastRenderer is that node. It uses NVIDIA's nvdiffrast CUDA rasterizer to spin your textured mesh in a virtual orbit over a set number of frames, and hands you a batch of images plus masks. It's the closest thing in the pack to a turntable video generator.
The rest of the pack's renderers are differentiable-rasterizer plumbing tuned for feeding the paint stage. This one is built for showing off: real GPU rasterization, optional super-sampling for clean edges, and a camera that orbits the object.
The settings that matter
render_type-textured(default),vertex_colors,normals, ordepth.texturedneeds a mesh with a base-color texture (i.e. one that's been through bake + apply); the others are fallbacks for untextured meshes.num_frames(default 30) - how many frames in the orbit. 30 frames atnum_framesyaw sweep = a one-second-ish loop of the object turning.yaw/pitch- start angle (in radians, despite the defaults looking like degrees - 0.0 start, and yaw sweeps a full 360° over the frames).ssaa(default 1) - super-sampling anti-aliasing. 2 or 4 makes edges much cleaner at the cost of render time.width/height(default 512) - frame size.fov(default 60),near/far,camera_distance(default 2.0),pan_x/pan_y- camera geometry. If the object is off-frame,camera_distanceis your first knob.
Outputs: image (the orbit frames, IMAGE) and mask (per-frame alpha, MASK). Feed the frames into a video encoder or PreviewImage and you've got your turntable.
What it's for (and isn't)
This is a preview and showcase renderer, not part of the bake chain - don't try to route its output into Hy3DBakeFromMultiview. Its real uses: checking your texture looks right in motion, generating an orbit animation of a finished asset, or rendering normals/depth of a mesh you plan to reuse in a 2D pipeline. It's also the node that assumes the mesh has proper UVs and a base-color texture; a raw untextured mesh will throw "No texture found."
Install - the one with real dependencies
Pack-level clone (Manager search "Hunyuan3DWrapper", or git clone https://github.com/kijai/ComfyUI-Hunyuan3DWrapper), pip install -r requirements.txt - plus two extras that only this node needs:
pip install nvdiffrast
pip install "git+https://github.com/EasternJournalist/utils3d.git#egg=utils3d"
(These live in the pack's requirements_extras.txt.) nvdiffrast is a compiled CUDA extension - it'll usually install a prebuilt wheel for CUDA 12.x, but if your torch/CUDA is off the beaten path, budget a build. On Windows this node is the one that pushes you into a matching toolchain.
Common issues
- "nvdiffrast not found" - the extra dep isn't installed; see above.
- "No texture found" - the mesh has no base-color texture (or it got stripped in conversion). Run it through bake +
Hy3DApplyTexturefirst, or switchrender_typetovertex_colors. - Orbit is empty / object missing -
camera_distanceorfovframing is off, or the mesh has a degenerate geometry that rasterizes away. Start with defaults.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| trimesh | TRIMESH | — | |
| render_type | COMBO | 4 options: textured, vertex_colors, normals, depth | |
| width | INT | 51264–4096 | Width of the rendered image |
| height | INT | 51264–4096 | Height of the rendered image |
| ssaa | INT | 11–8 | Super-sampling anti-aliasing |
| num_frames | INT | 301–1000 | Number of frames to render |
| camera_distance | FLOAT | 2.00-100.1–1000 | Camera distance from the object |
| yaw | FLOAT | 0.00-90–90 | Start yaw in radians |
| pitch | FLOAT | 0.00-180–180 | Start pitch in radians |
| fov | FLOAT | 60.001–179 | Camera field of view in degrees |
| near | FLOAT | 0.100.001–1000 | Camera near clipping plane |
| far | FLOAT | 1000.001–10000 | Camera far clipping plane |
| pan_x | FLOAT | 0.000-1–1 | Pan in x direction |
| pan_y | FLOAT | 0.000-1–1 | Pan in y direction |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |