Nodes/Crystools/πŸͺ› Primitive string multiline
ComfyUI Node Runs on cloud

πŸͺ› Primitive string multiline

Primitive String Multiline (Crystools)

By crystianΒ·Created 3 years agoΒ·Updated 10 months agoΒ· 1,946
πŸͺ› Primitive string multiline
    • string
    β—„stringβ–Ί

    A big multi-line text box that outputs a STRING. It's the sibling of Primitive string, which gets a cramped single line - this one is for anything with actual line breaks: paragraphs, long prompts, a chunk of JSON you're pasting in by hand, notes you want visible in the graph itself.

    Why you'd reach for it

    Crystools' primitives are deliberately dumb on purpose: instead of one clever node that infers or switches its type, the pack gives you a separate node per type, and you pick the shape you need up front. This is the one to grab whenever the single-line Primitive string field is too small for what you're storing - a system prompt for an LLM node elsewhere in your graph, a long negative prompt you want to define once and fan out to several samplers, or scratch space for pasting a JSON blob you'll later feed into something that parses it.

    It's also a reasonable place to keep a shared negative-prompt library if you run the same handful of quality/anatomy negatives across most of your workflows - write it once here, wire it to every sampler that needs it, and update it in one spot instead of five when you find a better negative phrase.

    How it works

    There's no logic here - it's a widget and an output. Type or paste text into the box, including line breaks, and the exact same text comes out the string socket.

    Inputs and outputs

    One required field: string, multiline, empty by default. One output: string. That's the entire node.

    Installing it

    Through ComfyUI Manager, search crystools. Manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/crystian/ComfyUI-Crystools.git
    cd ComfyUI-Crystools
    pip install -r requirements.txt
    

    Restart ComfyUI. No models, no extra dependencies for this node specifically.

    Common issues

    It's a passthrough with zero formatting help - no syntax highlighting, no JSON validation - so pasting malformed JSON here won't be caught until whatever's downstream tries to parse it and fails. If you're using this as a JSON staging area, check the text is valid before wiring it further.

    The other thing to keep in mind: line breaks survive the trip through this node exactly as typed, which is the whole point, but some downstream nodes that expect a single-line value (a filename, a short label) will choke or behave oddly if you accidentally feed them multi-line text from here. If a downstream node is erroring on a string you built in this node, check for stray newlines first - it's a far more common cause than anything actually wrong with the receiving node.

    Categorycrystools πŸͺ›/Primitive

    Inputs (1)

    NameTypeDefaultDescription
    stringSTRINGβ€”

    Outputs (1)

    NameTypeDescription
    stringSTRINGβ€”