ComfyUI Node

FP Tab

Pulling a single prompt out of a tabbed text area

By akawana·Created 9 months ago·Updated 8 days ago· 6
FP Tab
    • text
    owner_id
    tab_name
    __fp_tab_text__

    If you keep a bunch of prompts around - a handful of character descriptions, a set of style blocks, a small library of variants - the obvious upgrade from a wall of text is tabs. The sibling FP Tabbed Text Area node gives you that: one node, many tabs, with a Separate Tabs, Chained Tabs, or Separate Outputs mode. FP Tab is the tap. It reads the text from a single tab of a single tabbed text area and passes it out as a plain string, so you can route "the current character prompt" into one encoder and "the current background prompt" into another without rewiring anything.

    The useful pattern: keep a library of prompts in tabs, and let the graph decide which tab feeds which node by just changing the dropdown. Switch tabs, re-run, done. No cutting wires, no hunting for the right text node in a messy canvas.

    How it works

    This node is almost entirely frontend. Two dropdowns drive everything:

    • owner_id - pick which FP Tabbed Text Area node in your graph you're reading from. The JS scans the workflow and fills this list automatically; if there are none, it just shows the placeholder -.
    • tab_name - pick which tab of that node you want. This list also updates itself once you've chosen an owner.

    Behind the scenes the JavaScript keeps a third, hidden input - __fp_tab_text__ (tooltip: internal, managed by JS) - in sync with your selection. At execution time the node does essentially nothing clever: it passes that text straight through to the output. The author's fingerprint_inputs hook keys off the same internal value, so switching tabs produces a fresh prompt string and ComfyUI treats it as a real change.

    The single output is a STRING named text - wire it to a CLIP Text Encode like any other prompt. It's just text, so it composes with everything.

    The input you actually touch

    Two fields to care about, both combos:

    • owner_id - "Select the FP Tabbed Text Area node to read from."
    • tab_name - "Select the tab to read from."

    And that's the whole manual surface. The __fp_tab_text__ input has no tooltip hand-waving: it's marked internal, so leave it alone - typing into it does nothing, since the JS overwrites it on every interaction.

    Installing it

    Same pack as the rest of the Folded Prompts family, so the install is identical: in ComfyUI Manager search "Folded prompts", or clone it manually.

    cd ComfyUI/custom_nodes
    git clone https://github.com/akawana/ComfyUI-Folded-Prompts.git
    

    Restart and it lives under AK/Folded Prompts next to its tabbed sibling. No Python dependencies, no model downloads - this one is all JS and a thin Python pass-through.

    Where it bites

    The obvious one: FPTab only works if there's an FP Tabbed Text Area in your workflow. Without a source node, both dropdowns sit at - and the output is empty - it's not a bug, it's a node with nothing to read. Also, the dropdown values come from the live graph, so if you delete or rename the source node, FPTab's selection resets to - and silently outputs nothing. Since the mechanism is JS-managed state rather than a real wire, it's worth checking after you've moved nodes around. And as with everything in this pack, it expects a current ComfyUI - the comfy_api.latest extension API is a hard requirement.

    The honest verdict: FPTab is a narrow tool that only makes sense if you're already using FP Tabbed Text Area. If you are, it's the clean way to fan those tabs out to different parts of your graph. If you're not, it's a solution looking for a problem - skip it until the tabbed node earns a place in your workflow.

    CategoryAK/Folded Prompts

    Inputs (3)

    NameTypeDefaultDescription
    owner_idCOMBOSelect the FP Tabbed Text Area node to read from.
    tab_nameCOMBOSelect the tab to read from.
    __fp_tab_text__STRINGInternal: tab text. Managed by JS.

    Outputs (1)

    NameTypeDescription
    textSTRING