CR Cycle Images (Legacy)
Step through an image list frame by frame (legacy)
- image_list
- IMAGE
- show_help
Heads up before you wire this in: Comfyroll marks CR Cycle Images as a legacy node. It still works, but the pack has since moved its animation tooling to the Schedulers (CR Simple Value Scheduler, CR Prompt Scheduler, and friends), which are the maintained path. If you're building something new, start there. If you're keeping an old workflow alive, here's what this node does.
Cycle Images steps through a list of images across an animation, showing one image per stretch of frames. As the frame counter advances, the node picks which image from the list is "current" and outputs it - so a sequence of stills becomes a timed slideshow you can render out.
How it works
You feed it an image_list (an IMAGE_LIST, built by a companion node like CR Load Image List), and three timing controls decide the pacing. frame_interval is how many frames each image holds before the node moves to the next one - at the default 30, image one shows for 30 frames, then image two, and so on. loops repeats the whole cycle that many times. current_frame tells the node which frame you're rendering right now, which is how it knows which image to emit - typically driven by CR Current Frame or an incrementer.
The mode is fixed at Sequential here - it walks the list in order.
The inputs that matter
image_list- the images to cycle through, as anIMAGE_LISTfrom a list-builder node.frame_interval(default 30) - frames each image holds. This sets your pacing.loops(default 1) - how many times to repeat the full cycle.current_frame- the frame being rendered; the node uses it to pick the active image.
Output is a single IMAGE (the current frame's image) plus the show_help wiki link you don't wire.
Where you'd actually reach for it
This is for old-school, frame-by-frame Comfyroll animations - timed image sequences, slideshows with hold durations, cutting between generated stills on a schedule. Paired with the pack's frame counter and an image saver, it renders a full clip.
But be realistic about it: it's legacy for a reason. Modern animation in ComfyUI runs through AnimateDiff and video models, and even within Comfyroll the Schedulers supersede this. Reach for Cycle Images only to maintain something that already uses it - don't build a new pipeline around it.
How to install it
- ComfyUI Manager: search
Comfyroll Studio, install, restart. - Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git, then restart.
No downloads - it's list-and-timing logic.
Common issues
The most common "it's gone" is the whole pack failing to load. On newer ComfyUI builds Comfyroll can throw at startup, filling the console with NameError: name 'CR_...' is not defined and hiding every CR node. Read the first traceback (the real cause) and update via Manager.
Node-specifically: the biggest snag is the image_list input. It wants a proper IMAGE_LIST from a Comfyroll list-builder, not a raw batch - if you can't get the wire to connect, that's the type mismatch, and CR Cycle Images Simple (which takes plain image slots) is the friendlier option. Also make sure current_frame is actually advancing between runs; if it's stuck, every frame renders the same image and the "animation" never moves.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | 1 options: Sequential | |
| image_list | IMAGE_LIST | β | |
| frame_interval | INT | 300β999 | β |
| loops | INT | 11β1000 | β |
| current_frame | INT | 00β9999 | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | β |
| show_help | STRING | β |