ComfyUI Node
VRGDG Cycling Text Picker
A ComfyUI node in VRGDG/General with 11 inputs and 5 outputs.
VRGDG Cycling Text Picker
- formatted_text
- selected_item
- selected_items
- wrapped_index
- item_count
◄index0►
◄itemsslow push in
wide orbit
handheld follow
low angle reveal
crane up►
◄labelCamera Motion►
◄max_items0►
◄split_mode▾►
◄selection_mode▾►
◄seed0►
◄multi_format▾►
◄two_item_templatestart with {item1} then follow with {item2}►
◄keep_emptyfalse►
◄pick_count1►
CategoryVRGDG/General
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| index | INT | 0-999999–999999 | The step number used to choose from the list. In index mode this wraps around automatically: with 5 items, index 0 selects item 1, index 4 selects item 5, and index 5 starts over at item 1. In random modes, this still acts like the current step so each frame/batch/index can pick a different item. |
| items | STRING | slow push in wide orbit handheld follow low angle reveal crane up | The list of text choices to pick from. Works with one item per line, blank-line-separated chunks, comma-separated text, pipe-separated text, JSON arrays like ["push in", "orbit left"], Python-style lists/sets, or JSON objects with an items/values/motions key. Example: slow push in, orbit left, handheld follow. |
| label | STRING | Camera Motion | Optional name placed before the selected text in the formatted output. Example label Camera Motion outputs: Camera Motion = slow push in. Leave blank if you only want the selected text with no prefix. |
| max_items | INT | 00–999999 | Optional limit for how many parsed list items are used. Leave at 0 to use the full list automatically. Example: if the list has 20 items and max_items is 5, only the first 5 items are used and the index loops through those 5. |
| split_mode | COMBO | How to split the items text into a list. Auto tries JSON/Python first, then detects blank lines, commas, pipes, or normal lines. Use line for one item per line, blank line for paragraph/chunk lists, comma for a,b,c, pipe for a|b|c, or json/python for structured input only. | |
| selection_mode | COMBO | How items are chosen. index selects by index and wraps around the list. random picks a seeded random item for each index. random no repeat creates a seeded shuffled order, walks through every item once, then reshuffles for the next cycle. Example with 5 items: indexes 0-4 use all 5 in random order before any item repeats. | |
| seed | INT | 0-18446744073709550000–18446744073709550000 | Controls the random order for random and random no repeat modes. Same seed plus same index gives the same result, which makes workflows repeatable. Change the seed to get a different random order. Ignored by normal index mode. |
| multi_format | COMBO | How multiple selected items are combined in formatted_text. auto uses the two_item_template when pick_count is 2, otherwise it uses commas. lines outputs each selected item on its own line. comma outputs item1, item2, item3. sentence uses the two_item_template for exactly 2 items. | |
| two_item_template | STRING | start with {item1} then follow with {item2} | Editable sentence template used when pick_count is 2 and multi_format is auto or sentence. Keep {item1} and {item2} where you want the selected items inserted. You can also use {items} for both items joined by commas. Example: begin with {item1}, then transition into {item2}. |
| keep_empty | BOOLEAN | false | Whether blank entries count as selectable items. Usually leave this off. If off, blank lines are ignored. If on, blank lines can be selected and may output an empty value, for example: Camera Motion = . |
| pick_count | INT | 11–50 | How many items to select at once. Use 1 for a single motion. Use 2 to combine two motions, such as: Camera Motion = start with slow push in then follow with orbit left. For more than 2, the selected items can be output as lines or comma-separated text. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| formatted_text | STRING | — |
| selected_item | STRING | — |
| selected_items | STRING | — |
| wrapped_index | INT | — |
| item_count | INT | — |