To string (VEC3)
3D coordinates to text, for motion and camera workflows
- 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.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| value | VEC3 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |