Nodes/RF Nodes/To string (VEC3)
ComfyUI Node

To string (VEC3)

3D coordinates to text, for motion and camera workflows

By foxtrot-roger·Created 3 years ago·Updated 2 years ago· 2
To string (VEC3)
  • value
  • STRING

If you've ever built a camera-motion workflow and wondered what the graph is actually doing with those (x, y, z) values, this is the node that tells you. It takes a VEC3 - a three-component vector - and converts it to a STRING you can read, log, or embed in text.

It's the 3D sibling of the pack's "To string (VEC2)", and it earns its keep in the same way: vector types are produced by other nodes and consumed in the dark, and sometimes you need to look at the numbers.

How it works

Input is value, a VEC3 - three coordinates, usually position or motion for camera/3D helpers. Output is a single STRING, produced by Python's str(). That's the entire mechanism.

Two source-level details that matter:

  • The input is forceInput, so you can't hand-type a vector - it must be wired in from a node that emits VEC3. An unconnected input means no output.
  • The output is Python's repr: something like (1.0, 2.0, 3.0). Parentheses, commas, no rounding. Readable, but not pretty.

Where it fits

Camera and motion workflows are where VEC3 values live - pan, tilt, orbit paths, position curves. Wire this node onto a motion output and pipe it into a log or display node, and suddenly you can verify a camera path is doing what you think it's doing instead of discovering it in the final render. It's also handy for folding coordinates into text: a filename, a label, or a prompt fragment that mentions a position. For video and 3D-adjacent work - where the KB's ecosystem threads emphasize that the graph is the workflow - being able to read intermediate values is a real debugging superpower.

Installing it

Part of RF Nodes (foxtrot-roger/comfyui-rf-nodes). Install via ComfyUI Manager (search "RF Nodes") and restart, or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/foxtrot-roger/comfyui-rf-nodes

Zero dependencies, no model files - the pack is plain Python, and this node is a one-liner under the hood.

Gotchas

  • Must be wired. With forceInput, an unconnected VEC3 input leaves you with nothing - this node is a converter, not a generator.
  • Formatting is raw. (x, y, z) straight from Python. If you want rounded or labeled output, you'll reformat downstream.
  • Single vector in, single string out. No lists, no batching.

It's a small node with a narrow job: make invisible 3D coordinates visible. When a camera path misbehaves, it's the difference between guessing and knowing.

CategoryRF

Inputs (1)

NameTypeDefaultDescription
valueVEC3

Outputs (1)

NameTypeDescription
STRINGSTRING