VRGDG Easy Multi Cycling Text Picker
Twenty cycling text pickers, one friendly face
- combined_formatted_text
- results_json
- formatted_text_1
- formatted_text_2
- formatted_text_3
- formatted_text_4
- formatted_text_5
- formatted_text_6
- formatted_text_7
- formatted_text_8
- formatted_text_9
- formatted_text_10
- formatted_text_11
- formatted_text_12
- formatted_text_13
- formatted_text_14
- formatted_text_15
- formatted_text_16
- formatted_text_17
- formatted_text_18
- formatted_text_19
- formatted_text_20
A music video prompt isn't one sentence - it's camera motion, subject, style, lighting, mood, and a dozen other slots, each one cycling through its own list as the scenes roll. Stack twenty individual CyclingTextPicker nodes and your graph looks like a bowl of noodles before you've generated a single frame. VRGDG Easy Multi Cycling Text Picker is the pack's answer: up to twenty independent cycling pickers packed into one node, with presets so you don't have to retype the same camera lists everywhere.
What it actually is. Per the author's own description, it's "a friendlier UI wrapper" around the pack's multi-picker node - same picker behavior, same outputs, just a cleaner front end. Each of the 20 slots is a full picker in miniature: a preset_# dropdown (with a "Custom" option for your own label and list), items_# for the choices, label_#, selection_mode_# (index, random, random no-repeat), two_item_template_#, and pick_count_#. The first slot ships preloaded with a 15-entry camera-motion list - slow push-ins, orbits, crane moves, the works - which tells you exactly what this node is for.
The controls that matter.
picker_count- how many of the 20 pickers are active. Set 0 to disable. This is the master switch; unused pickers just sit there.joiner- how the active pickers' text gets glued together into one combined string:newline,blank line,comma, orpipe.- The per-picker
preset_#/items_#/label_#trio - pick a preset or go Custom and type your own list.
The outputs. combined_formatted_text is the headline: all active pickers joined with your chosen joiner, ready to drop into a prompt. results_json gives you the same results as structured data if another node needs to consume them. And each picker also exposes its own formatted_text_# output, so you can pull a single slot out (camera motion alone, say) when one slice of the prompt needs to go somewhere else. Keep the index values straight though - with up to 20 slots, it's easy to wire formatted_text_7 when you meant slot 3.
Installing. This is one node in the VRGameDevGirl pack:
cd ComfyUI/custom_nodes
git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl
Or search vrgamedev in ComfyUI Manager and restart. The node's dynamic UI comes from a JS file in the pack, so if the preset dropdowns ever look broken, a hard refresh of the ComfyUI page (Ctrl+Shift+R) usually fixes it - that's the classic "my node has a custom widget and it's stale" gotcha.
Where people get confused: the two-item template. If a picker has pick_count set to 2, it builds a sentence using the template ("start with {item1} then follow with {item2}") - if you set a template and keep seeing single items, check pick_count. And remember picker_count gates everything: edit slot 5 all you like, but if picker_count is 3, slot 5 never runs.
Inputs (162)
| Name | Type | Default | Description |
|---|---|---|---|
| picker_count | INT | 00–20 | How many independent cycling text pickers to use. Set 0 to disable advanced prompt details. |
| joiner | COMBO | How to combine the active formatted_text outputs into combined_formatted_text. | |
| preset_1 | STRING | Camera Motion | Picker 1: choose a preset label/list, or Custom for your own label and editable list. |
| items_1 | STRING | Slow push-in Track right Track left Dolly backward Handheld follow Over-the-shoulder push-in Slow pan right Slow pan left Tilt up Tilt down Arc around subject Orbit shot Low-angle tracking shot Crane rising move Slow zoom-in | Picker 1: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. |
| label_1 | STRING | Camera Motion | Picker 1: optional label placed before this picker output. |
| selection_mode_1 | STRING | index | Picker 1: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_1 | STRING | start with {item1} then follow with {item2} | Picker 1: sentence template used when this picker selects exactly two items. |
| pick_count_1 | INT | 11–50 | Picker 1: how many items to select from this picker at once. |
| preset_2 | STRING | Custom | Picker 2: choose a preset label/list, or Custom for your own label and editable list. |
| items_2 | STRING | Picker 2: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_2 | STRING | Picker 2: optional label placed before this picker output. | |
| selection_mode_2 | STRING | index | Picker 2: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_2 | STRING | start with {item1} then follow with {item2} | Picker 2: sentence template used when this picker selects exactly two items. |
| pick_count_2 | INT | 11–50 | Picker 2: how many items to select from this picker at once. |
| preset_3 | STRING | Custom | Picker 3: choose a preset label/list, or Custom for your own label and editable list. |
| items_3 | STRING | Picker 3: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_3 | STRING | Picker 3: optional label placed before this picker output. | |
| selection_mode_3 | STRING | index | Picker 3: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_3 | STRING | start with {item1} then follow with {item2} | Picker 3: sentence template used when this picker selects exactly two items. |
| pick_count_3 | INT | 11–50 | Picker 3: how many items to select from this picker at once. |
| preset_4 | STRING | Custom | Picker 4: choose a preset label/list, or Custom for your own label and editable list. |
| items_4 | STRING | Picker 4: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_4 | STRING | Picker 4: optional label placed before this picker output. | |
| selection_mode_4 | STRING | index | Picker 4: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_4 | STRING | start with {item1} then follow with {item2} | Picker 4: sentence template used when this picker selects exactly two items. |
| pick_count_4 | INT | 11–50 | Picker 4: how many items to select from this picker at once. |
| preset_5 | STRING | Custom | Picker 5: choose a preset label/list, or Custom for your own label and editable list. |
| items_5 | STRING | Picker 5: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_5 | STRING | Picker 5: optional label placed before this picker output. | |
| selection_mode_5 | STRING | index | Picker 5: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_5 | STRING | start with {item1} then follow with {item2} | Picker 5: sentence template used when this picker selects exactly two items. |
| pick_count_5 | INT | 11–50 | Picker 5: how many items to select from this picker at once. |
| preset_6 | STRING | Custom | Picker 6: choose a preset label/list, or Custom for your own label and editable list. |
| items_6 | STRING | Picker 6: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_6 | STRING | Picker 6: optional label placed before this picker output. | |
| selection_mode_6 | STRING | index | Picker 6: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_6 | STRING | start with {item1} then follow with {item2} | Picker 6: sentence template used when this picker selects exactly two items. |
| pick_count_6 | INT | 11–50 | Picker 6: how many items to select from this picker at once. |
| preset_7 | STRING | Custom | Picker 7: choose a preset label/list, or Custom for your own label and editable list. |
| items_7 | STRING | Picker 7: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_7 | STRING | Picker 7: optional label placed before this picker output. | |
| selection_mode_7 | STRING | index | Picker 7: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_7 | STRING | start with {item1} then follow with {item2} | Picker 7: sentence template used when this picker selects exactly two items. |
| pick_count_7 | INT | 11–50 | Picker 7: how many items to select from this picker at once. |
| preset_8 | STRING | Custom | Picker 8: choose a preset label/list, or Custom for your own label and editable list. |
| items_8 | STRING | Picker 8: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_8 | STRING | Picker 8: optional label placed before this picker output. | |
| selection_mode_8 | STRING | index | Picker 8: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_8 | STRING | start with {item1} then follow with {item2} | Picker 8: sentence template used when this picker selects exactly two items. |
| pick_count_8 | INT | 11–50 | Picker 8: how many items to select from this picker at once. |
| preset_9 | STRING | Custom | Picker 9: choose a preset label/list, or Custom for your own label and editable list. |
| items_9 | STRING | Picker 9: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_9 | STRING | Picker 9: optional label placed before this picker output. | |
| selection_mode_9 | STRING | index | Picker 9: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_9 | STRING | start with {item1} then follow with {item2} | Picker 9: sentence template used when this picker selects exactly two items. |
| pick_count_9 | INT | 11–50 | Picker 9: how many items to select from this picker at once. |
| preset_10 | STRING | Custom | Picker 10: choose a preset label/list, or Custom for your own label and editable list. |
| items_10 | STRING | Picker 10: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_10 | STRING | Picker 10: optional label placed before this picker output. | |
| selection_mode_10 | STRING | index | Picker 10: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_10 | STRING | start with {item1} then follow with {item2} | Picker 10: sentence template used when this picker selects exactly two items. |
| pick_count_10 | INT | 11–50 | Picker 10: how many items to select from this picker at once. |
| preset_11 | STRING | Custom | Picker 11: choose a preset label/list, or Custom for your own label and editable list. |
| items_11 | STRING | Picker 11: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_11 | STRING | Picker 11: optional label placed before this picker output. | |
| selection_mode_11 | STRING | index | Picker 11: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_11 | STRING | start with {item1} then follow with {item2} | Picker 11: sentence template used when this picker selects exactly two items. |
| pick_count_11 | INT | 11–50 | Picker 11: how many items to select from this picker at once. |
| preset_12 | STRING | Custom | Picker 12: choose a preset label/list, or Custom for your own label and editable list. |
| items_12 | STRING | Picker 12: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_12 | STRING | Picker 12: optional label placed before this picker output. | |
| selection_mode_12 | STRING | index | Picker 12: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_12 | STRING | start with {item1} then follow with {item2} | Picker 12: sentence template used when this picker selects exactly two items. |
| pick_count_12 | INT | 11–50 | Picker 12: how many items to select from this picker at once. |
| preset_13 | STRING | Custom | Picker 13: choose a preset label/list, or Custom for your own label and editable list. |
| items_13 | STRING | Picker 13: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_13 | STRING | Picker 13: optional label placed before this picker output. | |
| selection_mode_13 | STRING | index | Picker 13: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_13 | STRING | start with {item1} then follow with {item2} | Picker 13: sentence template used when this picker selects exactly two items. |
| pick_count_13 | INT | 11–50 | Picker 13: how many items to select from this picker at once. |
| preset_14 | STRING | Custom | Picker 14: choose a preset label/list, or Custom for your own label and editable list. |
| items_14 | STRING | Picker 14: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_14 | STRING | Picker 14: optional label placed before this picker output. | |
| selection_mode_14 | STRING | index | Picker 14: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_14 | STRING | start with {item1} then follow with {item2} | Picker 14: sentence template used when this picker selects exactly two items. |
| pick_count_14 | INT | 11–50 | Picker 14: how many items to select from this picker at once. |
| preset_15 | STRING | Custom | Picker 15: choose a preset label/list, or Custom for your own label and editable list. |
| items_15 | STRING | Picker 15: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_15 | STRING | Picker 15: optional label placed before this picker output. | |
| selection_mode_15 | STRING | index | Picker 15: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_15 | STRING | start with {item1} then follow with {item2} | Picker 15: sentence template used when this picker selects exactly two items. |
| pick_count_15 | INT | 11–50 | Picker 15: how many items to select from this picker at once. |
| preset_16 | STRING | Custom | Picker 16: choose a preset label/list, or Custom for your own label and editable list. |
| items_16 | STRING | Picker 16: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_16 | STRING | Picker 16: optional label placed before this picker output. | |
| selection_mode_16 | STRING | index | Picker 16: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_16 | STRING | start with {item1} then follow with {item2} | Picker 16: sentence template used when this picker selects exactly two items. |
| pick_count_16 | INT | 11–50 | Picker 16: how many items to select from this picker at once. |
| preset_17 | STRING | Custom | Picker 17: choose a preset label/list, or Custom for your own label and editable list. |
| items_17 | STRING | Picker 17: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_17 | STRING | Picker 17: optional label placed before this picker output. | |
| selection_mode_17 | STRING | index | Picker 17: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_17 | STRING | start with {item1} then follow with {item2} | Picker 17: sentence template used when this picker selects exactly two items. |
| pick_count_17 | INT | 11–50 | Picker 17: how many items to select from this picker at once. |
| preset_18 | STRING | Custom | Picker 18: choose a preset label/list, or Custom for your own label and editable list. |
| items_18 | STRING | Picker 18: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_18 | STRING | Picker 18: optional label placed before this picker output. | |
| selection_mode_18 | STRING | index | Picker 18: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_18 | STRING | start with {item1} then follow with {item2} | Picker 18: sentence template used when this picker selects exactly two items. |
| pick_count_18 | INT | 11–50 | Picker 18: how many items to select from this picker at once. |
| preset_19 | STRING | Custom | Picker 19: choose a preset label/list, or Custom for your own label and editable list. |
| items_19 | STRING | Picker 19: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_19 | STRING | Picker 19: optional label placed before this picker output. | |
| selection_mode_19 | STRING | index | Picker 19: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_19 | STRING | start with {item1} then follow with {item2} | Picker 19: sentence template used when this picker selects exactly two items. |
| pick_count_19 | INT | 11–50 | Picker 19: how many items to select from this picker at once. |
| preset_20 | STRING | Custom | Picker 20: choose a preset label/list, or Custom for your own label and editable list. |
| items_20 | STRING | Picker 20: list of text choices. Supports lines, blank-line chunks, comma, pipe, JSON/Python lists, or objects with items/values/motions. | |
| label_20 | STRING | Picker 20: optional label placed before this picker output. | |
| selection_mode_20 | STRING | index | Picker 20: choose by wrapped index, seeded random, or seeded random no-repeat. |
| two_item_template_20 | STRING | start with {item1} then follow with {item2} | Picker 20: sentence template used when this picker selects exactly two items. |
| pick_count_20 | INT | 11–50 | Picker 20: how many items to select from this picker at once. |
| index_1opt | INT | 0-999999–999999 | Picker 1: step number used to choose from this picker list. |
| seed_1opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 1: seed used by random modes. |
| index_2opt | INT | 0-999999–999999 | Picker 2: step number used to choose from this picker list. |
| seed_2opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 2: seed used by random modes. |
| index_3opt | INT | 0-999999–999999 | Picker 3: step number used to choose from this picker list. |
| seed_3opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 3: seed used by random modes. |
| index_4opt | INT | 0-999999–999999 | Picker 4: step number used to choose from this picker list. |
| seed_4opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 4: seed used by random modes. |
| index_5opt | INT | 0-999999–999999 | Picker 5: step number used to choose from this picker list. |
| seed_5opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 5: seed used by random modes. |
| index_6opt | INT | 0-999999–999999 | Picker 6: step number used to choose from this picker list. |
| seed_6opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 6: seed used by random modes. |
| index_7opt | INT | 0-999999–999999 | Picker 7: step number used to choose from this picker list. |
| seed_7opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 7: seed used by random modes. |
| index_8opt | INT | 0-999999–999999 | Picker 8: step number used to choose from this picker list. |
| seed_8opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 8: seed used by random modes. |
| index_9opt | INT | 0-999999–999999 | Picker 9: step number used to choose from this picker list. |
| seed_9opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 9: seed used by random modes. |
| index_10opt | INT | 0-999999–999999 | Picker 10: step number used to choose from this picker list. |
| seed_10opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 10: seed used by random modes. |
| index_11opt | INT | 0-999999–999999 | Picker 11: step number used to choose from this picker list. |
| seed_11opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 11: seed used by random modes. |
| index_12opt | INT | 0-999999–999999 | Picker 12: step number used to choose from this picker list. |
| seed_12opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 12: seed used by random modes. |
| index_13opt | INT | 0-999999–999999 | Picker 13: step number used to choose from this picker list. |
| seed_13opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 13: seed used by random modes. |
| index_14opt | INT | 0-999999–999999 | Picker 14: step number used to choose from this picker list. |
| seed_14opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 14: seed used by random modes. |
| index_15opt | INT | 0-999999–999999 | Picker 15: step number used to choose from this picker list. |
| seed_15opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 15: seed used by random modes. |
| index_16opt | INT | 0-999999–999999 | Picker 16: step number used to choose from this picker list. |
| seed_16opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 16: seed used by random modes. |
| index_17opt | INT | 0-999999–999999 | Picker 17: step number used to choose from this picker list. |
| seed_17opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 17: seed used by random modes. |
| index_18opt | INT | 0-999999–999999 | Picker 18: step number used to choose from this picker list. |
| seed_18opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 18: seed used by random modes. |
| index_19opt | INT | 0-999999–999999 | Picker 19: step number used to choose from this picker list. |
| seed_19opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 19: seed used by random modes. |
| index_20opt | INT | 0-999999–999999 | Picker 20: step number used to choose from this picker list. |
| seed_20opt | INT | 0-18446744073709550000–18446744073709550000 | Picker 20: seed used by random modes. |
Outputs (22)
| Name | Type | Description |
|---|---|---|
| combined_formatted_text | STRING | — |
| results_json | STRING | — |
| formatted_text_1 | STRING | — |
| formatted_text_2 | STRING | — |
| formatted_text_3 | STRING | — |
| formatted_text_4 | STRING | — |
| formatted_text_5 | STRING | — |
| formatted_text_6 | STRING | — |
| formatted_text_7 | STRING | — |
| formatted_text_8 | STRING | — |
| formatted_text_9 | STRING | — |
| formatted_text_10 | STRING | — |
| formatted_text_11 | STRING | — |
| formatted_text_12 | STRING | — |
| formatted_text_13 | STRING | — |
| formatted_text_14 | STRING | — |
| formatted_text_15 | STRING | — |
| formatted_text_16 | STRING | — |
| formatted_text_17 | STRING | — |
| formatted_text_18 | STRING | — |
| formatted_text_19 | STRING | — |
| formatted_text_20 | STRING | — |