Nodes/ComfyUI Text-Driven Workflows/Text Line Selector (Text-Driven)
ComfyUI Node

Text Line Selector (Text-Driven)

A character/scenario preset switcher where the dropdown shows readable labels

By kanryu·Created 4 months ago·Updated 3 months ago· 0
Text Line Selector (Text-Driven)
    • string
    text_listCharacter A (Standard)|-|<lora:char_a_v1:1.0>, character_a, blue hair, school uniform Character B (Paper-Ratio Style)|-|<lora:char_b_v2:0.8>, character_b, red dress, long hair Character C (Cinematic)|-|<lora:char_c_fantasy:1.2>, character_c, armor, holding sword
    selected_line<lora:char_a_v1:1.0>, character_a, blue hair, school uniform

    Text Line Selector (Text-Driven) is the pack's "keep a library of prompts on hand and switch between them" node. It's a multiline text box full of presets plus a dropdown to recall them - but with one smart twist: each entry can have a human-readable label separate from the prompt that actually gets output. So your dropdown reads Character A (Standard), Character B (Cinematic) instead of a wall of <lora:char_a_v1:1.0>, character_a, blue hair, school uniform. That label/value split is the whole reason this node exists, and it's the difference between a workflow you can read and one you have to decode.

    How it works

    The text_list input is a multiline box. Each line is one preset, and the |-| character splits it: label on the left, actual prompt on the right.

    Character A (Standard)|-|<lora:char_a_v1:1.0>, character_a, blue hair, school uniform
    Character B (Cinematic)|-|<lora:char_b_fantasy:1.2>, character_b, armor, holding sword
    

    The selected_line dropdown shows the labels; a bit of JavaScript swaps in the prompt value when the graph runs. Lines without a |-| still work - the whole line becomes both label and value. The output is a single string pin carrying the chosen prompt, ready to feed your prompt-assembly chain (Join Strings is the obvious downstream partner).

    The defaults are character presets with LoRA tags baked into the prompt, which tells you exactly what the author had in mind: keep the character core in this node and swap the staging via Prompt Line. That decoupling - fixed character, variable scene - is the pack's whole design philosophy, and this is the node that plays the "fixed" role.

    What to watch

    The dropdown shows labels but the backend receives the prompt value, so don't expect to read the full prompt in the combo - that's the point, but it's worth knowing when you're debugging ("wait, which preset is selected?" is a real moment). Editing the text_list re-derives the dropdown live, so keeping this thing up to date is just text editing. And like every node here, the LoRA-tag-in-prompt pattern is pure CLIP-era convention - it works great on SD 1.5/SDXL/Illustrious-lineage checkpoints, and the tags themselves are just strings your checkpoint resolves or ignores.

    Install

    Part of ComfyUI Text-Driven Workflows. Install via ComfyUI Manager (search "ComfyUI Text-Driven Workflows") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/kanryu/ComfyUI-Text-Driven-Workflows.git
    

    Restart. No pip dependencies, no models. The usual pack-level caveat applies: it's built on ComfyUI's V3 extension API, so you need a current ComfyUI - on an old one you'll get "Failed to load nodes" in the console and no Text-Driven Workflows category until you update.

    Bottom line

    It's a small, focused idea executed cleanly: labeled presets for prompt assets you reuse constantly. If you juggle multiple characters or staging configurations and want to switch them from a readable dropdown, this is exactly the node for it. Nothing to fear, nothing heavy, just a tidy quality-of-life win.

    CategoryText-Driven Workflows

    Inputs (2)

    NameTypeDefaultDescription
    text_listSTRINGCharacter A (Standard)|-|<lora:char_a_v1:1.0>, character_a, blue hair, school uniform Character B (Paper-Ratio Style)|-|<lora:char_b_v2:0.8>, character_b, red dress, long hair Character C (Cinematic)|-|<lora:char_c_fantasy:1.2>, character_c, armor, holding sword
    selected_lineCOMBO<lora:char_a_v1:1.0>, character_a, blue hair, school uniform3 options: <lora:char_a_v1:1.0>, character_a, blue hair, school uniform, <lora:char_b_v2:0.8>, character_b, red dress, long hair, <lora:char_c_fantasy:1.2>, character_c, armor, holding sword

    Outputs (1)

    NameTypeDescription
    stringSTRING