ComfyUI Node

Hy3D Sample MultiView

The texture brain — six-view diffusion that paints your mesh into a textured asset

By kijai·Created 2 years ago·Updated 5 months ago· 1,033
Hy3D Sample MultiView
  • pipeline
  • ref_image
  • normal_maps
  • position_maps
  • camera_config
  • scheduler
  • samples
  • image
view_size512
steps30
seed0
denoise_strength1.00

Hy3DSampleMultiView is where Hunyuan3D goes from "a gray blob with good bones" to "a textured asset." It runs the actual texture-paint diffusion - Hunyuan3D-Paint-v2-1, a 2B diffusers model - which takes your reference image plus the normal and position maps from Hy3DRenderMultiView, and hallucinates six consistent colored views of the object. Those painted views then get baked into the UV texture map. This node is the texturing stage of the whole pipeline.

It's also the easy place to get confused, because the pipeline input here is not the one from Hy3DModelLoader. That node outputs a HY3DMODEL for the shape stage; this node wants a HY3DDIFFUSERSPIPE, which comes from DownloadAndLoadHy3DPaintModel (the diffusers texture pipeline, autodownloaded on first use). Wrong pipeline type, and it won't even plug in.

The inputs, in order of "you'll actually touch this"

  • ref_image (IMAGE) - your original source image. This is what the paint model uses to know what the object is supposed to look like.
  • normal_maps and position_maps (IMAGE) - straight from Hy3DRenderMultiView. These are the control images that keep the six painted views geometrically consistent with each other.
  • view_size (default 512) - the resolution each view is diffused at. 512 is the sensible default; bumping it costs real time and VRAM.
  • steps (default 30) and seed - standard diffusion knobs. Lower steps = faster but rougher paint.
  • denoise_strength (default 1.0) - set it below 1 to re-paint over existing views (samples input) instead of fresh. This is your "redo the texture without redoing geometry" lever.
  • scheduler (optional) - from Hy3DDiffusersSchedulerConfig; skip it and use the pipeline's built-in scheduler.
  • camera_config (optional) - must match the render's if you used Hy3DCameraConfig.

The single output, image, is the batch of painted multiview images. It feeds Hy3DBakeFromMultiview, which projects them onto the UV map using the renderer you threaded through from the render stage.

How the views stay consistent

The six cameras get encoded into the conditioning (the source maps them to a camera_info per angle), the normal and position maps are resized to view_size, and the ref image plus both map stacks go into the multiview diffusers call in one batch. Consistent cameras + consistent control maps = a texture that doesn't have seams where you turn the corner.

Install

Pack-level: Manager search "Hunyuan3DWrapper" or git clone https://github.com/kijai/ComfyUI-Hunyuan3DWrapper, then pip install -r requirements.txt. This is the node that needs the whole texture-gen stack running, so Windows users: the prebuilt custom_rasterizer wheel from wheels/ must match your torch/CUDA (+torch260.cuda126 for the current portable), or you're compiling. The paint model itself autodownloads from HuggingFace on first run.

Common issues

  • "Wrong socket" when wiring - you grabbed the pipeline from Hy3DModelLoader. It needs the paint pipeline's HY3DDIFFUSERSPIPE.
  • First run downloads forever - the 2B paint model is big and auto-downloads once. Let it finish; it's not hung.
  • Views disagree / seams - you changed cameras between render and sample, or denoise_strength is too high for the re-paint case. Keep camera configs identical across the chain.
  • OOM - drop view_size to 384 or steps to 20; the batch of six views eats VRAM.
CategoryHunyuan3DWrapper

Inputs (11)

NameTypeDefaultDescription
pipelineHY3DDIFFUSERSPIPE
ref_imageIMAGE
normal_mapsIMAGE
position_mapsIMAGE
view_sizeINT51264–4096
stepsINT30
seedINT00–18446744073709550000
camera_configoptHY3DCAMERA
scheduleroptNOISESCHEDULER
denoise_strengthoptFLOAT1.000–1
samplesoptLATENT

Outputs (1)

NameTypeDescription
imageIMAGE