Pt Sqrt
Square root, element-wise — the stats workhorse
- tens_a
- TENSOR
Pt Sqrt takes the square root of every element in a tensor. On its own it's a one-liner; in context it's a workhorse. The moment you're doing anything statistical in ComfyUI-Pt-Wrapper - and the pack is full of summary stats nodes - sqrt shows up constantly: converting variance to standard deviation, normalizing values, scaling data, undoing a square in a formula. It's the small node you don't think about until it's missing.
What it actually does
It's a direct wrapper around torch.sqrt(tens_a). One TENSOR in, one TENSOR out, same shape, each element replaced by its square root. No parameters to set, no options. The only input is tens_a, and the only output is the resulting TENSOR.
The pair it with most often is Pt Std or Pt Sum - the pack's reduction nodes. Standard deviation is literally the square root of variance, so the classic mini-graph is: compute variance, feed it into Pt Sqrt, and you've got a standard deviation derived from parts. If you're building a training pipeline from scratch with the pack's math nodes, sqrt is the glue between squares and real-world scale.
Only one input:
- tens_a - the tensor to take the square root of.
Output is a single TENSOR.
How to install it
It's part of the ComfyUI-Pt-Wrapper pack. ComfyUI Manager: search ComfyUI-Pt-Wrapper, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/HowToSD/ComfyUI-Pt-Wrapper
Restart after. The pack's requirements.txt is the heavy training stack (transformers, datasets, accelerate, peft, gensim, sentencepiece, pandas, scikit-learn, scipy) - slow first install and possible version conflicts with other nodes pinning different transformers versions.
Gotchas
The one real trap: negative inputs. torch.sqrt of a negative number gives you NaN (and a warning), not an error - the graph keeps running, the bad value just quietly poisons everything downstream. This is the silent-failure pattern that wastes the most debugging time with this node. If your output looks like garbage, check whether your input can go negative and clamp it first.
Also remember it's element-wise and dtype-faithful. Feed it a float tensor and you get float results; feed it something exotic and the behavior follows the tensor. For stats math, floats are what you want.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| tens_a | TENSOR | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| TENSOR | TENSOR | — |