🔶 Load Checkpoint by Frame
Swap up to nine checkpoints mid-sequence
- activ_frame
- lora
- Info
- MODEL
- POSITIV
- NEGATIV
- VAE
This is the flagship node of the pack - the one behind the "Checkpoint Changer" example workflow, and the reason the author built the whole thing in the first place. It's a checkpoint loader that swaps models automatically as your queue count climbs, up to nine checkpoints deep, each one kicking in at a frame number you set. One node replaces the loader and the branching logic you'd otherwise need to build by hand.
Worth being precise about what "frame" means here, because it trips people coming from real video models: this is Chaosaiart's word for one generated image, one run through the queue - not a frame inside a video clip. There's no motion module, no temporal awareness, nothing like AnimateDiff or Wan under the hood. It's closer to the old A1111-era trick of chaining img2img runs with a changing checkpoint underneath, which the author has said in public was exactly the technique they were porting over from a previous A1111 extension - low VRAM, frame by frame, batch count rather than batch size. If you want actual temporal coherence between frames, that's a different pack; this is for testing model transitions, automating checkpoint swaps across a long batch, or building a "style shifts partway through" sequence without touching the graph mid-run.
Inputs and outputs
activ_frame- required,ACTIV_FRAMEtype. This is the running frame counter the whole node reacts to; it comes from Chaosaiart'sconvertnode (feed it a plain number and it'll outputACTIV_FRAMEamong other types).positiv_txt,negativ_txt- your prompt and negative prompt, plain multiline text, shared across every checkpoint in the chain.ckpt_1- required. Your starting checkpoint; theckpt_1_infofield is just an informational note confirming it's the one that runs first ("ckpt_1_Start will start").ckpt_2throughckpt_9- optional, each paired with its ownckpt_N_Frame_start(an INT, 0–150000). Set the checkpoint and the frame count where it should take over; leave a slot's checkpoint unset and it's simply not used.lora(optional,LORAtype) - feeds a LoRA into the chain if you're using one of Chaosaiart's LoRA nodes upstream.- Outputs:
Info(string, useful for confirming which checkpoint is active),MODEL,POSITIV,NEGATIV,VAE- the standard set you'd wire into a KSampler, just resolved dynamically per frame instead of fixed.
Installing it
ComfyUI Manager: Install via Git URL → https://github.com/chaosaiart/Chaosaiart-Nodes - the exact method the README documents. A plain title search for "Chaosaiart" should also surface it.
Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/chaosaiart/Chaosaiart-Nodes
Linux (activate your venv first if you use one):
pip install opencv-python
pip install tqdm
Windows ships an Install_windows script in the folder that installs the same two packages. Restart ComfyUI. No extra models to download - you're pointing this at checkpoints you've already got in ComfyUI/models/checkpoints.
Common issues
Frame numbers that don't match how far you actually queue. If ckpt_2_Frame_start is set to 40 but you only ever run 20 generations in a batch, ckpt_2 never activates - this node has no idea how long your batch is going to be, it just compares the counter each run.
Positive/negative prompt is shared, not per-checkpoint. If you need a different prompt for each checkpoint stage as well as a different model, this node alone won't do it - pair it with the CKPT_PROMPT-based nodes (CheckpointPrompt_Frame + the FrameMixer) instead, which bundle a prompt with each checkpoint change.
One shared Python module. All ~20 nodes in this pack live in one module, so a broken opencv-python/tqdm install takes the whole pack offline, this node included - check the ComfyUI startup console for an import error first.
Inputs (22)
| Name | Type | Default | Description |
|---|---|---|---|
| activ_frame | ACTIV_FRAME | — | |
| positiv_txt | STRING | — | |
| negativ_txt | STRING | — | |
| ckpt_1 | COMBO | 0 options: | |
| ckpt_1_info | COMBO | 1 options: ckpt_1_Start will start | |
| ckpt_2opt | COMBO | 0 options: | |
| ckpt_2_Frame_startopt | INT | 00–150000 | — |
| ckpt_3opt | COMBO | 0 options: | |
| ckpt_3_Frame_startopt | INT | 00–150000 | — |
| ckpt_4opt | COMBO | 0 options: | |
| ckpt_4_Frame_startopt | INT | 00–150000 | — |
| ckpt_5opt | COMBO | 0 options: | |
| ckpt_5_Frame_startopt | INT | 00–150000 | — |
| ckpt_6opt | COMBO | 0 options: | |
| ckpt_6_Frame_startopt | INT | 00–150000 | — |
| ckpt_7opt | COMBO | 0 options: | |
| ckpt_7_Frame_startopt | INT | 00–150000 | — |
| ckpt_8opt | COMBO | 0 options: | |
| ckpt_8_Frame_startopt | INT | 00–150000 | — |
| ckpt_9opt | COMBO | 0 options: | |
| ckpt_9_Frame_startopt | INT | 00–150000 | — |
| loraopt | LORA | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| Info | STRING | — |
| MODEL | MODEL | — |
| POSITIV | CONDITIONING | — |
| NEGATIV | CONDITIONING | — |
| VAE | VAE | — |