ComfyUI Node

XStringGet

The receiving end of XDataHub's clipboard for text

By Xz3r0-M·Created 8 months ago·Updated about 9 hours ago· 13
XStringGet
    • Content
    • Header
    none_on_emptytrue
    text_value
    title_value

    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.
    Category♾️ Xz3r0/XDataHub

    Inputs (3)

    NameTypeDefaultDescription
    none_on_emptyBOOLEANtrueWhen enabled, output None if no content; when disabled, output empty string instead
    text_valueSTRINGXDataHub text content (empty means no output)
    title_valueSTRINGXDataHub header text

    Outputs (2)

    NameTypeDescription
    ContentSTRINGLatest text received from XDataHub
    HeaderSTRINGLatest header received from XDataHub