Select Image Indices
The boring node that makes MotionCtrl + AnimateDiff scribble work
- images
- IMAGE
Of all the nodes in this pack, this is the one that isn't really about MotionCtrl at all. Select Image Indices is a plain frame picker: give it a batch of images and a comma-separated list of indices, and it gives you back just the frames you asked for. Its job in this pack is specific, though - it's the hinge of the "MotionCtrl deployed on AnimateDiff" workflow, which is honestly the coolest thing this pack does.
That workflow goes: generate a 16-frame MotionCtrl clip (camera or object motion already baked in), then use those frames to drive an AnimateDiff pass through AnimateDiff's SparseCtrl scribble control. But you don't feed AnimateDiff all sixteen frames - you feed it a few keyframes, converted to scribbles. That's what this node is for: pick frames 1,2,3 (or 0:4 for a range), they get scaled and turned into scribble sketches, and AnimateDiff animates between them. The README's summary is literally "Select Images → Scribble."
How it works
You give it a batch of images and a string of indices. It splits the string on commas and, for each entry, either grabs that exact frame or - if the entry contains a : - expands a start:end range. Malformed entries are silently skipped. If nothing ends up selected, it passes the original batch through untouched rather than erroring.
The inputs and output
- images (
IMAGE) - a batch of frames, typically the output ofMotionctrl Sample Simplein the AnimateDiff workflow, or aVHS_VideoCombine-style frame stream from any video source. - selected_indexes (
STRING) - comma-separated list, default1,2,3. Supports ranges like0:4too.
Output is IMAGE - the selected frames as a new batch, wired into the scale/scribble preprocessing of the AnimateDiff side.
Where people get burned
Two things, and both are indexing traps. First, it's zero-based: 1,2,3 skips the first frame, it doesn't select frames one through three. If you meant "the first three frames," write 0:3. Second, silent failure: if you type a garbage index or one past the end of the batch, the node just ignores it - you can get back fewer frames than you asked for with no warning, and the downstream scribble pass will happily run on whatever it got. Check your index list against the batch size if output frames go missing.
It's a 30-line utility node, not a marquee feature, but it's the piece that ties the pack's best workflow together. And if you ever just need "subset of a frame batch" in another context, it works fine for that too - it doesn't care that it lives in a motion-control pack.
Installing it
It's part of ComfyUI-MotionCtrl, so it installs with the pack - see the install steps in the Load Motionctrl Checkpoint article. No extra model downloads, no dependencies of its own. That's part of why it's so easy to overlook: it's the least demanding node here, and the one that quietly enables the most interesting output.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| selected_indexes | STRING | 1,2,3 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |