CR Cycle Models (Legacy)
Rotate checkpoints across an animation frame by frame (legacy)
- model
- clip
- model_list
- MODEL
- CLIP
- VAE
- show_help
The heaviest of the cycle family: this one rotates whole checkpoints across an animation. As the frame counter advances, it swaps in a different model from a list - holding each for a set number of frames - so your clip can shift from one base model's look to another as it plays.
The now-familiar caveat: it's a legacy node. Comfyroll's maintained equivalent is CR Load Scheduled Models, and honestly, cycling full checkpoints per frame is a niche, expensive thing to do. Use this to keep an old workflow running; don't architect something new on it.
How it works
You pass in a starting model and clip, plus a model_list (a MODEL_LIST assembled by a companion Comfyroll node that names which checkpoints participate). The timing is the standard trio: frame_interval holds each model for that many frames, loops repeats the cycle, and current_frame tells the node which frame is rendering so it can pick the active checkpoint.
The mode offers Sequential (walk the list as frames advance) or Off (pass through, no swapping). Notably, this node outputs a VAE alongside the model and CLIP - because it's loading full checkpoints, it can hand you the matching VAE from whichever model is current, which a LoRA cycle can't.
The inputs that matter
model/clip- the starting model and CLIP.model_list- the checkpoints to cycle, as aMODEL_LISTfrom a Comfyroll list-builder.mode(Off/Sequential) - cycle on, or bypass.frame_interval(default 30) - frames each model holds.current_frame- the frame being rendered, which selects the active checkpoint.
Outputs are the current MODEL, CLIP, and VAE, plus the show_help wiki link. Wire the three into your sampler and decode chain.
Where you'd actually reach for it
Cross-model morph animations - start a clip on one checkpoint's aesthetic and drift into another's, or rotate through several models to compare how a scene renders across them within one timed sequence. It's a distinctive effect you can't easily get any other way.
But be clear-eyed: loading a fresh checkpoint mid-animation is slow and memory-hungry, and the swaps land as hard cuts on frame_interval boundaries. For most people this is more of a curiosity than a daily tool. If you just want to compare models, an XY grid is faster; if you want scheduled model changes with more control, the scheduler node supersedes this.
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 models ship with the pack - your checkpoints live in ComfyUI/models/checkpoints as usual.
Common issues
Missing node usually means the whole pack didn't load: on newer ComfyUI builds Comfyroll can throw a submodule import error at startup (NameError: name 'CR_...' is not defined) and hide every CR node. Read the first traceback (the real cause) and update via Manager.
Node-specifically, watch two things. First, the model_list input needs a proper MODEL_LIST from a Comfyroll list-builder, not loose checkpoint files. Second, expect this to be slow - swapping checkpoints reloads gigabytes per switch, so a long cycle with a short frame_interval will crawl and can spike VRAM. That's inherent to the node, not a bug. And as always, if nothing's changing across the render, confirm mode is Sequential and current_frame is actually advancing.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | 2 options: Off, Sequential | |
| model | MODEL | β | |
| clip | CLIP | β | |
| model_list | MODEL_LIST | β | |
| frame_interval | INT | 300β999 | β |
| loops | INT | 11β1000 | β |
| current_frame | INT | 00β9999 | β |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | β |
| CLIP | CLIP | β |
| VAE | VAE | β |
| show_help | STRING | β |