Nodes/JNComfy/STRING MULTILINE
ComfyUI Node

STRING MULTILINE

A text box for anything that isn't a prompt

By jn-jairo·Created 2 years ago·Updated 2 years ago· 5
STRING MULTILINE
    • STRING
    value

    Mechanically, this is the exact same node as the pack's JN_PrimitivePrompt - a multiline text box, a STRING output, no processing in between. The difference is purely which one you reach for: JN_PrimitivePrompt is labeled for text headed to a CLIP encoder, and this one is the generic version for everything else that needs more than one line - a JSON snippet feeding some other node, a multi-line template, a list of filenames typed one per line.

    It's from JNComfy (jn-jairo/jn_comfyui), a one-person pack that bundles audio, face restoration, sampling patches, and this family of primitives. There's no real community discussion of the pack anywhere online, so what's here - README plus the node's own inputs - is genuinely the complete picture rather than a summary of a bigger conversation.

    How it works

    value is a plain multiline text field, default empty, and it comes out the other side as a STRING with nothing done to it. If you're building a list of items one per line - filenames, tags, prompts to iterate over - pair it with something that actually splits a string into pieces; the README names JN_PrimitiveStringToArray for exactly that (not covered in this batch, but worth knowing it exists rather than trying to make this node itself do the splitting).

    Beyond prompts specifically, this is the node to reach for anywhere a graph needs a chunk of free-form text held as a single value - a system message for something downstream that talks to an LLM, a template string with placeholder tokens another node fills in, notes-to-self left in the graph for whoever opens it next (including future you).

    The inputs and outputs that matter

    • value (required, multiline STRING, default empty) - the text.
    • Output: STRING - unchanged.

    Installing it

    ComfyUI Manager: search "JNComfy". Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/jn-jairo/jn_comfyui
    

    Restart ComfyUI. No models, no dependencies.

    Common issues & troubleshooting

    You wanted separate items, not one big block of text. This node hands back one STRING - line breaks and all - not a list. If you need each line treated individually downstream, you need a splitting node on top of this one, not a different setting on it.

    Copy-pasted JSON or code loses its formatting. The widget is a plain text box; ComfyUI itself doesn't reformat or validate what's in it, so whatever whitespace and line breaks you paste in are preserved exactly. If a downstream JSON parser chokes, check for stray characters from the copy source before assuming the node mangled anything.

    Unsure whether to use this or JN_PrimitivePrompt. They're the same mechanism - pick based on intent, not capability. Use JN_PrimitivePrompt for text headed to a text encoder, and this one for anything that isn't conceptually a prompt; it keeps a busy graph readable, which is the entire point of the two nodes existing separately.

    CategoryJN/Primitive

    Inputs (1)

    NameTypeDefaultDescription
    valueSTRING

    Outputs (1)

    NameTypeDescription
    STRINGSTRING