IndicesListTo50
The boring 50-output adapter that unblocks LTX keyframing
- index_1
- index_2
- index_3
- index_4
- index_5
- index_6
- index_7
- index_8
- index_9
- index_10
- index_11
- index_12
- index_13
- index_14
- index_15
- index_16
- index_17
- index_18
- index_19
- index_20
- index_21
- index_22
- index_23
- index_24
- index_25
- index_26
- index_27
- index_28
- index_29
- index_30
- index_31
- index_32
- index_33
- index_34
- index_35
- index_36
- index_37
- index_38
- index_39
- index_40
- index_41
- index_42
- index_43
- index_44
- index_45
- index_46
- index_47
- index_48
- index_49
- index_50
This is the least glamorous node in the pack and honestly one of the most useful. IndicesListTo50 takes a Python list of integers - the kind of thing ImageListSampler in the same pack emits - and splits it into 50 individual INT outputs, padding with zeros if the list is shorter. Why would anyone want that? Because a bunch of ComfyUI nodes expose 50 separate widgets you have to fill by hand (the LTX family's sequencer-style nodes are the classic case), and if you right-click such a node and "Convert Widget to Input," each widget becomes a socket. This node is the bridge: list in, 50 wires out, no manual typing.
The source docstring puts it plainly: it's built to drive nodes with 50 individual widgets "like LTXSequencer." If you've fought with multi-keyframe LTX workflows - setting frame 1, frame 2, ... frame N by hand every single run - you know exactly what this solves. It's the plumbing that makes the keyframe workflow repeatable instead of a chore.
How it works
The node is declared with INPUT_IS_LIST = True, so the single indices input receives a whole list at once rather than one value. Its split() function flattens the input (handling the nested-list edge case where each item is itself a list), takes the first 50 values, and pads the result with 0s to exactly 50 entries. Then it returns 50 separate INT sockets, named index_1 through index_50, in order.
That padding matters: it means the downstream node always gets all 50 inputs even when your list has only, say, 12 keyframes. The unwired tail just reads 0, which for frame-index purposes usually means "first frame" - so keep that in mind if your workflow is sensitive to it.
Inputs and outputs
indices(INT, list) - the list to split.- Outputs:
index_1…index_50, all INT.
To actually use it: run ImageListSampler (or anything that outputs an index list), wire it here, then right-click your 50-widget target node → "Convert Widget to Input" and connect the sockets one-to-one. The ordering is preserved, so index_n maps to the widget's Nth slot.
Install
ComfyUI Manager → search AnotherUtils, or:
cd ComfyUI/custom_nodes
git clone https://github.com/marcoc2/ComfyUI-AnotherUtils.git
Restart ComfyUI. No dependencies at all - this is pure list shuffling.
Common issues
Two things bite people. First, if you don't see 50 sockets on the target node, you haven't converted its widgets to inputs - the "Convert Widget to Input" right-click step is mandatory, and it's easy to miss. Second, empty or over-long lists: an empty list returns all zeros, and anything past 50 entries is silently truncated, so if your keyframe count exceeds 50 the extra indices just vanish. That's an edge case, not a bug, but it's worth knowing before you build a 60-keyframe sequence on top of it.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| indices | INT | — |
Outputs (50)
| Name | Type | Description |
|---|---|---|
| index_1 | INT | — |
| index_2 | INT | — |
| index_3 | INT | — |
| index_4 | INT | — |
| index_5 | INT | — |
| index_6 | INT | — |
| index_7 | INT | — |
| index_8 | INT | — |
| index_9 | INT | — |
| index_10 | INT | — |
| index_11 | INT | — |
| index_12 | INT | — |
| index_13 | INT | — |
| index_14 | INT | — |
| index_15 | INT | — |
| index_16 | INT | — |
| index_17 | INT | — |
| index_18 | INT | — |
| index_19 | INT | — |
| index_20 | INT | — |
| index_21 | INT | — |
| index_22 | INT | — |
| index_23 | INT | — |
| index_24 | INT | — |
| index_25 | INT | — |
| index_26 | INT | — |
| index_27 | INT | — |
| index_28 | INT | — |
| index_29 | INT | — |
| index_30 | INT | — |
| index_31 | INT | — |
| index_32 | INT | — |
| index_33 | INT | — |
| index_34 | INT | — |
| index_35 | INT | — |
| index_36 | INT | — |
| index_37 | INT | — |
| index_38 | INT | — |
| index_39 | INT | — |
| index_40 | INT | — |
| index_41 | INT | — |
| index_42 | INT | — |
| index_43 | INT | — |
| index_44 | INT | — |
| index_45 | INT | — |
| index_46 | INT | — |
| index_47 | INT | — |
| index_48 | INT | — |
| index_49 | INT | — |
| index_50 | INT | — |