Powder Prompt List
Batch several scenes without duplicating the graph
- positive_prompts
- negative_prompts
The Powder Prompt List is the boring workhorse of the E2GO "Powder" pack, and that's a compliment. Its whole job: hold up to 20 prompt+negative pairs on one node, let you enable or disable each one, and output them as two lists. It's the "generate five different scenes with the same LoRAs and styles" node - the thing you wire up when you're tired of swapping text into a single CLIPTextEncode between runs.
Everything in ComfyUI that takes a list of prompts gets awkward fast with stock nodes. You end up with a row of text primitives, a bunch of concatenation, or a pile of duplicated sampler branches. This node collapses that into one compact node whose output shape matches what Powder Lora Loader and Powder Conditioner expect natively.
How it works
There are no wire inputs on this node - only the prompt_config slot (a JSON string the frontend manages for you) and the up to 20 prompt_N_text / negative_N_text fields that the + Add Prompt / - Remove Prompt buttons create. Each slot has an Enabled toggle and a multiline text field for the prompt and the negative.
On execution, it collects every enabled slot and returns the positives and negatives as two STRING lists. The lists are aligned - slot 2's negative pairs with slot 2's positive - and the node chain after it treats the lists as one unit.
The output feeds straight into the Powder pipeline: the Lora Loader consumes the prompt list and multiplies it against your LoRA combos, and the Conditioner encodes the results with caching, so re-running with the same prompts doesn't re-encode.
The inputs that matter
Honestly, there's one: Enabled. The most common workflow is to write a bunch of scene prompts, then toggle slots on and off to test subsets without deleting text. Since the node only outputs enabled slots, you can keep a growing library of scene prompts in the graph and generate whatever subset you care about today.
Everything else is just the text fields - and note that negatives are per-slot, so you can give each scene its own negative rather than one global string. That's genuinely nicer than the wildcard node for scenes that need different exclusions.
Outputs
- positive_prompts - STRING list, one per enabled slot.
- negative_prompts - STRING list, aligned with the positives.
Installation
One install for the whole pack:
cd ComfyUI/custom_nodes
git clone https://github.com/E2GO/e2go-comfyui-nodes.git e2go_nodes
Restart ComfyUI, or install via ComfyUI Manager by searching e2go_nodes / E2GO. No extra pip dependencies; targets ComfyUI 0.17+.
Common issues
The main trap is expecting a disabled slot to output an empty string. It doesn't - it outputs nothing, and the lists re-align. If you disable slot 2 of 3 and the third prompt suddenly pairs with the wrong negative, that's why: the lists only contain enabled slots. Keep disabled slots at the end of your list, or get comfortable with the re-alignment.
Second, this node has no text-processing smarts. No wildcard expansion, no line-splitting, no prefix/suffix logic - if you want to paste a big block of text where one line = one prompt, use Powder Prompt Wildcard instead. They output the same shape (positive/negative STRING lists), so they're drop-in interchangeable in a workflow; the usage guide calls that out explicitly. The Prompt List is for curated, per-slot, enabled/disabled scene management; the wildcard is for bulk text. Choose based on how you think about your prompts.
Inputs (41)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt_config | STRING | [] | — |
| prompt_1_textopt | STRING | — | |
| prompt_2_textopt | STRING | — | |
| prompt_3_textopt | STRING | — | |
| prompt_4_textopt | STRING | — | |
| prompt_5_textopt | STRING | — | |
| prompt_6_textopt | STRING | — | |
| prompt_7_textopt | STRING | — | |
| prompt_8_textopt | STRING | — | |
| prompt_9_textopt | STRING | — | |
| prompt_10_textopt | STRING | — | |
| prompt_11_textopt | STRING | — | |
| prompt_12_textopt | STRING | — | |
| prompt_13_textopt | STRING | — | |
| prompt_14_textopt | STRING | — | |
| prompt_15_textopt | STRING | — | |
| prompt_16_textopt | STRING | — | |
| prompt_17_textopt | STRING | — | |
| prompt_18_textopt | STRING | — | |
| prompt_19_textopt | STRING | — | |
| prompt_20_textopt | STRING | — | |
| negative_1_textopt | STRING | — | |
| negative_2_textopt | STRING | — | |
| negative_3_textopt | STRING | — | |
| negative_4_textopt | STRING | — | |
| negative_5_textopt | STRING | — | |
| negative_6_textopt | STRING | — | |
| negative_7_textopt | STRING | — | |
| negative_8_textopt | STRING | — | |
| negative_9_textopt | STRING | — | |
| negative_10_textopt | STRING | — | |
| negative_11_textopt | STRING | — | |
| negative_12_textopt | STRING | — | |
| negative_13_textopt | STRING | — | |
| negative_14_textopt | STRING | — | |
| negative_15_textopt | STRING | — | |
| negative_16_textopt | STRING | — | |
| negative_17_textopt | STRING | — | |
| negative_18_textopt | STRING | — | |
| negative_19_textopt | STRING | — | |
| negative_20_textopt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive_prompts | STRING | — |
| negative_prompts | STRING | — |