Nodes/Comfy UI Text List Product/Text List Product With Single A
ComfyUI Node

Text List Product With Single A

Keep list A's prompts standalone, plus every combo

By opvelll·Created 2 years ago·Updated a day ago· 1
Text List Product With Single A
  • list_a
  • list_b
  • list
separator,
max_results0

You've got a list of things that should stand on their own - character names, subjects - and a second list of modifiers to try on top of them. Plain TextListProduct would only ever give you the pairings, and you'd have to remember to hand-add the bare items. This node adds them for you.

Mechanically it's exactly TextListProduct with an empty string prepended to list_b. The author's README says as much, and it's worth understanding why that works: the pack drops empty strings from every combination, so prepending "" to list_b makes the product emit (a, "") → "a" for every a, alongside (a, b) → "a, b". In concrete terms, with list_a = ["1girl", "1boy"] and list_b = ["blonde_hair", "crown"] you get:

1girl
1girl, blonde_hair
1girl, crown
1boy
1boy, blonde_hair
1boy, crown

Each A item appears first as a standalone, then paired with every B. The output order is worth knowing if you're feeding this into a batch: all the A entries come out before the pairs do.

Inputs and outputs

Same four inputs as TextListProduct - separator (default ", "), max_results (0 = unlimited), plus list_a and list_b, both forced LIST types. Output is one LIST of combined strings. max_results counts the standalone entries too, which is the difference between 8 lines and 12 if you don't cap it.

When to reach for it

Reach for it whenever the A side is meaningful on its own. Character names are the classic case - you want each character alone and each character in each scene, and you don't want to type the bare names yourself. Use TextListProductWithSingleB when it's the other list that stands alone, and SingleBoth when both do.

Same pack-wide gotchas apply: LIST inputs only accept list-typed outputs (build lists first with MultilineStringToList or StringsToList), and max_results = 0 means unlimited, not zero.

Install

ComfyUI Manager → Install Custom Nodes → search "Comfy UI Text List Product", or:

cd ComfyUI/custom_nodes
git clone https://github.com/opvelll/ComfyUI_TextListProduct

Restart ComfyUI. No dependencies or model downloads - pure stdlib Python.

CategoryTextListProduct

Inputs (4)

NameTypeDefaultDescription
separatorSTRING,
max_resultsINT0
list_aLIST
list_bLIST

Outputs (1)

NameTypeDescription
listLIST