ComfyUI Node

Pt To Float16

Half the memory, double the speed — casting tensors to fp16 mid-pipeline

By HowToSD·Created about a year ago·Updated about a year ago· 7
Pt To Float16
  • tens_a
  • TENSOR

Pt To Float16 casts a tensor to 16-bit floating point (float16). Half the memory of the standard float32, and on modern GPUs with tensor cores, often faster to crunch. It's the precision switch you flip when a tensor pipeline is eating more VRAM than you have, or when the model you're feeding wants half precision.

The node ships in ComfyUI-Pt-Wrapper, the ~200-node pack that brings PyTorch's tensor math and model training into ComfyUI's graph. It's one of a family of type-cast nodes - PtToFloat16, PtToFloat32, PtToBfloat16, PtToInt32, PtToUint8 and friends - that let you change a tensor's dtype anywhere between the big pipeline steps.

How it works

Mechanically it's tens_a.to(torch.float16) under the hood: it reinterprets the tensor in half precision and returns a new tensor, leaving the original untouched. The shape stays the same; only the dtype changes. You'll see it most often in one of two spots:

  • VRAM relief. A fp32 tensor takes exactly twice the memory of its fp16 twin. If a dataset or a big intermediate tensor is the thing blowing up your VRAM, casting it to half before it enters the heavy stage can make the difference between "OOM" and "runs."
  • Feeding models that expect half precision. Many training/inference setups in this pack work best when model weights and inputs share a dtype. Cast the inputs to match the model and you sidestep a class of dtype-mismatch errors.

Inputs and outputs

The whole interface:

  • tens_a (TENSOR) - the tensor to cast.
  • TENSOR output - the same data in float16.

That's it. Wire the output into the next node in your pipeline, exactly as you would any tensor.

Installing the pack

This is a pack-level install - Pt To Float16 is one node out of ~200:

cd ComfyUI/custom_nodes
git clone https://github.com/HowToSD/ComfyUI-Pt-Wrapper

Restart ComfyUI. Or use ComfyUI Manager and search "ComfyUI-Pt-Wrapper" - it's registered on the Comfy Registry, so Manager handles install and pulls the Python dependencies (pandas, scikit-learn, transformers, sentencepiece, and the rest of the list). Honest caveat: for a single cast node that's a hefty dependency set. The pack is really aimed at people doing training and data work in the graph, not just a quick dtype swap.

Common issues

  • Precision loss is real. float16 has only about 3-4 significant decimal digits and a limited range. Large values can overflow to inf, and accumulated math loses detail. This is the classic fp16 gotcha - it's why training tricks like loss scaling exist.
  • Type mismatch downstream. Casting one way and forgetting to cast back is the most common trap: the next node wants float32 and you handed it half precision. Drop a PtToFloat32 in to round-trip.
  • No speedup without the right hardware. Tensor cores matter. On older GPUs or if your pipeline is memory-bound rather than compute-bound, fp16 may not save you much - the memory saving is still real, though.

It's a boring node, which is exactly what you want a type-cast to be. When your pipeline is chewing VRAM or a model refuses a dtype, this is the fix.

CategoryData Analysis

Inputs (1)

NameTypeDefaultDescription
tens_aTENSOR

Outputs (1)

NameTypeDescription
TENSORTENSOR