📝 AGSoft Loop Fix Text
Ten text boxes that become one list — even the empty strings
- STRING
The text member of the "Loop Fix" family, and arguably the most useful of the three. AGSoft Loop Fix Text takes up to ten text fields and outputs them as a single STRING list. Which means it's the natural way to feed a loop a set of prompts, a batch of negative prompts, or a series of labels - without wrangling wildcard files or CSV loaders.
The headline detail, straight from the node's description: all values including empty strings are passed. That's the "Fix" in the name. Prompt loops are the classic place this bites - you set up an array like ["", "cinematic", "harsh light"] where the first entry is deliberately empty (a clean baseline pass), and a list builder that drops empty strings silently eats your first iteration. This node doesn't.
How it works
text_1 through text_10, plain STRING fields. number_of_inputs (1–10, default 10) decides how many get collected - set it to 3 and you get a three-item list from the first three fields, keeping the node compact when you only need a few prompts. Empty strings are included as empty list entries, so the list length is exactly number_of_inputs every time. Output: a single STRING list, ready for whatever loop or batch node consumes it.
Installation
From comfyui-AGSoft:
cd ComfyUI/custom_nodes
git clone https://github.com/Art-xmaster/comfyui-AGSoft.git
# restart ComfyUI
Or ComfyUI Manager → search "comfyui-AGSoft". No models, no extra dependencies beyond the pack baseline.
Where it fits
If you're doing prompt variation loops - the classic "keep everything fixed, swap the prompt each pass" pattern that's the backbone of seed farming and style testing - this is the node that holds your prompt list. The integer and float siblings cover numeric schedules; this one covers the prose. For generated text sequences you'd use something else, and for huge prompt libraries a CSV loader is more appropriate. But for ten prompts you want to hand-type and loop over, this is the one you'll reach for, and the empty-string guarantee is the kind of detail you only appreciate after it's saved a botched iteration. Honest note: if your loop framework already handles lists natively, you may not need it - but you'll know that the first time a prompt disappears from your run.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| number_of_inputs | INT | 101–10 | How many inputs to use (1-10). Сколько входов использовать (1-10). |
| text_1 | STRING | Text value 1. Текстовое значение 1. | |
| text_2 | STRING | Text value 2. Текстовое значение 2. | |
| text_3 | STRING | Text value 3. Текстовое значение 3. | |
| text_4 | STRING | Text value 4. Текстовое значение 4. | |
| text_5 | STRING | Text value 5. Текстовое значение 5. | |
| text_6 | STRING | Text value 6. Текстовое значение 6. | |
| text_7 | STRING | Text value 7. Текстовое значение 7. | |
| text_8 | STRING | Text value 8. Текстовое значение 8. | |
| text_9 | STRING | Text value 9. Текстовое значение 9. | |
| text_10 | STRING | Text value 10. Текстовое значение 10. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |