XStringGet
The receiving end of XDataHub's clipboard for text
- Content
- Header
XStringGet is one half of a handshake. The other half is XDataHub, the pack's built-in floating panel - a browser for your images, videos, audio, LoRAs, and saved text. XStringGet sits in your workflow and pulls the latest text that XDataHub sent to it, then hands it to your graph as a plain string.
If that sounds niche, it is. This node only makes sense inside the Xz3r0 pack's ecosystem: you open the XDataHub window, send a piece of text (or a title) to the node, and the node's outputs update to match. It's a way to get text into a workflow without editing a node's text box - handy when you're browsing content and want to drop a tag or description into the prompt pipeline on the fly.
How it works
The clever part is invisible. XStringGet has two inputs, text_value (multiline) and title_value (single line), but they're socketless and hidden - the web extension populates them behind the scenes via an internal xdatahub:send_to_node message whenever you send from the panel. The node just re-emits whatever arrived.
Two behaviors worth knowing:
- If both inputs are empty, the node outputs nothing (returns None) rather than empty strings. So an untouched XStringGet produces no output at all, and downstream nodes will skip or complain depending on how they handle a missing value.
- There's a fingerprinting step that only triggers re-execution when the received text actually changed. ComfyUI re-runs nodes based on input changes, and this keeps a workflow from re-saving or re-queuing just because you opened a panel.
The outputs are Content (STRING) - the latest text - and Header (STRING) - the latest title/header. Both come from what the panel last sent.
The inputs that matter
Honestly, none of them, for a beginner. text_value and title_value are auto-filled by the extension; you don't type into them. Everything happens from the XDataHub panel: pick text in the panel, hit send, and this node's outputs update. If you're not using XDataHub at all, this node has no visible way to feed it - skip it.
Installing
It ships in ComfyUI-Xz3r0-Nodes, same pack as everything else. ComfyUI Manager → search "ComfyUI-Xz3r0-Nodes" → install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Xz3r0-M/ComfyUI-Xz3r0-Nodes.git
cd ComfyUI-Xz3r0-Nodes
pip install -r requirements.txt
Restart ComfyUI - the frontend extension needs the reload to register. There are no models to download; the pack's only Python dependency is ffmpeg-python, and XStringGet itself doesn't touch it.
Gotchas
- The node is only useful with the XDataHub panel open. No panel, no sends, no output.
- If the workflow runs with empty inputs, outputs are None rather than "". Wire that into a node that tolerates missing values, or make sure something was actually sent.
- This is a data-bridge node, not a text-processing one. For combining or wrapping strings, the pack's XStringGroup and XStringWrap are the tools; XStringGet is specifically the "latest from XDataHub" receiver.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| none_on_empty | BOOLEAN | true | When enabled, output None if no content; when disabled, output empty string instead |
| text_value | STRING | XDataHub text content (empty means no output) | |
| title_value | STRING | XDataHub header text |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| Content | STRING | Latest text received from XDataHub |
| Header | STRING | Latest header received from XDataHub |