ComfyUI Node

Texture Scaler

The plain resize knob every material pipeline needs

By amtarr·Created 9 months ago·Updated 4 months ago· 58
Texture Scaler
  • image
  • image
scale_factor2.000
methodbicubic

Texture Scaler is the pack's plain multiplier resize: you tell it "2x" or "0.5x", it resizes, done. There's no target-megapixel logic, no GPU-friendly rounding, no cleverness. In a pack full of opinionated tools, this one is refreshingly dumb - and for a lot of texture work, dumb is exactly what you want.

Reach for it when you need a LOD variant of a material (half the resolution, half the VRAM cost), when you're upscaling one map in a set to match the others, or when you want a quick higher-res preview of a normal or height map without dragging an AI upscaler into it. Resizing textures is a different job from upscaling images for display: you almost always want the boring, faithful result, not invented detail.

How it works

It's a single F.interpolate call under the hood, with four methods on the dial:

  • nearest - hard pixels, for pixel art and height maps where you want zero blending.
  • bilinear - fast, soft.
  • bicubic - the default, and the right call for photographic albedo.
  • lanczos - here's the honest bit: PyTorch has no Lanczos implementation, so the code maps "lanczos" to bicubic with antialiasing enabled. The label oversells slightly, but bicubic+antialias is genuinely the best interpolator this node can produce, so pick it when you want the cleanest downscale and don't sweat the branding.

Note what it doesn't do: it won't snap your dimensions to a multiple of 8 or 16. Feed it a 1003×1003 texture and you'll get a 2006×2006 out, which some engines quietly choke on. For GPU-safe sizes, the same pack's Smart Texture Resizer is the better tool; this node is for when you want a plain factor.

Inputs

  • image - the texture.
  • scale_factor (0.125–8.0) - the multiplier. 0.5 = half size, 2.0 = double. This is the whole decision.
  • method - nearest, bilinear, bicubic, lanczos.

One output, image, which slots straight into Save Image or into the rest of your material graph.

Installing it

Texture Scaler ships in ComfyUI-TextureAlchemy. Easiest: ComfyUI Manager → search "Texture Alchemy" → install → restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/amtarr/ComfyUI-TextureAlchemy
# restart ComfyUI

No requirements.txt, no model files - pure PyTorch on ComfyUI's bundled environment. Find it under Add Node → Texture Alchemist → Texture. Ignore the README's stale "copy the ComfyUI_PBR_MaterialProcessor folder" line; that's the pack's pre-rebrand name, and Manager or git clone is the real install.

The usual move

For a material set, generate everything at full res, then drop a Texture Scaler at 0.5x on each map and save to a _LOD1 folder. If you're working from scanned or photographed textures, bicubic downscaling to 1024 or 2048 is also a solid anti-aliasing step before you run the equalizer and seamless tiling - clean your source, then resize, then process.

CategoryTexture Alchemist/Texture

Inputs (3)

NameTypeDefaultDescription
imageIMAGE
scale_factorFLOAT2.0000.125–8Scale multiplier (0.5 = half size, 2.0 = double size)
methodCOMBObicubicScaling method: nearest (pixel art), bilinear (fast), bicubic (quality), lanczos (best)

Outputs (1)

NameTypeDescription
imageIMAGE