Hunyuan 3D 2.1 Resize Images
The quiet utility that keeps your view sizes consistent — and stops bakes from breaking
- images
- images
A Resize Images node is not an exciting node, and Hy3D21ResizeImages doesn't try to be one. It takes a batch of IMAGE tensors, resizes them to a target width and height with a chosen sampling filter, and hands the batch back. But in this pack it earns its place: the multiview pipeline has opinions about image sizes, and when you're feeding upscaled views back into a bake (the whole point of the pack's WithMetaData upscaling flow), mismatched sizes are exactly what makes things misbehave.
The inputs
- images - any
IMAGEtensor batch. Up to you to feed it views, textures, or plain old pictures. - width / height (both default 1024, range 16–8192) - the target dimensions. Aspect ratio is not preserved; it just stretches the batch to fit, so keep the ratio yourself if that matters.
- sampling - the resampling filter:
NEAREST,LANCZOS,BILINEAR,BICUBIC,BOX,HAMMING, defaultBICUBIC. For texture work,LANCZOSis the sharp choice when you're downscaling, andBICUBICis the safe all-rounder.NEARESTis for pixel-art and masks only.
How it works
Plain Pillow resizing - it converts tensors to PIL images, calls .resize(), and converts back, handling single images, lists, and batches. Nothing clever, which is the point: it's the pack's own lightweight answer to "make these all the same size," tuned for the image formats the pipeline already uses. It's also a useful general-purpose resize node outside this pack's workflows - a batch-resize you can drop anywhere in a graph.
Where it fits
You'll reach for it in two spots. First, before Hy3DBakeMultiViews when your painted views came out at a different resolution than the pipeline expects - the bake compares view dimensions against the pipeline config, and the metadata variant explicitly checks whether an image is "upscaled" by comparing its width to pipeline.config.resolution. Second, in an upscale workflow: run your albedo/MR views through a real upscaler (the example Mesh_Texturing_UpscaleWithAuraSR workflow does exactly this), then this node to normalize sizes before baking. Consistency is the whole game here.
Installing it
Boring in the best way - it ships with the pack, needs only Pillow, and works even when the C++ extensions are still broken:
cd ComfyUI/custom_nodes
git clone https://github.com/visualbruno/ComfyUI-Hunyuan3d-2-1
cd ComfyUI-Hunyuan3d-2-1
pip install -r requirements.txt
Common issues
The only real trap is the aspect ratio - if you resize non-square views into a square canvas, you'll get distortion that shows up as stretched texture. And if you resize to something the bake can't handle (like 4096 views when you only planned for 1024), the memory bill is yours. Otherwise this is one of those nodes you forget exists until a bake silently produces smeared textures from a mismatched batch - then you remember.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| width | INT | 102416–8192 | — |
| height | INT | 102416–8192 | — |
| sampling | COMBO | BICUBIC | 6 options: NEAREST, LANCZOS, BILINEAR, BICUBIC, BOX, HAMMING |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |