Nodes/Chaosaiart-Nodes/🔶 Load Checkpoint by Frame
ComfyUI Node

🔶 Load Checkpoint by Frame

Swap up to nine checkpoints mid-sequence

By chaosaiart·Created 2 years ago·Updated about a year ago· 117
🔶 Load Checkpoint by Frame
  • activ_frame
  • lora
  • Info
  • MODEL
  • POSITIV
  • NEGATIV
  • VAE
◄positiv_txt—►
◄negativ_txt—►
◄ckpt_1▾►
◄ckpt_1_info▾►
◄ckpt_2▾►
â—„ckpt_2_Frame_start0â–º
◄ckpt_3▾►
â—„ckpt_3_Frame_start0â–º
◄ckpt_4▾►
â—„ckpt_4_Frame_start0â–º
◄ckpt_5▾►
â—„ckpt_5_Frame_start0â–º
◄ckpt_6▾►
â—„ckpt_6_Frame_start0â–º
◄ckpt_7▾►
â—„ckpt_7_Frame_start0â–º
◄ckpt_8▾►
â—„ckpt_8_Frame_start0â–º
◄ckpt_9▾►
â—„ckpt_9_Frame_start0â–º

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_FRAME type. This is the running frame counter the whole node reacts to; it comes from Chaosaiart's convert node (feed it a plain number and it'll output ACTIV_FRAME among 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; the ckpt_1_info field is just an informational note confirming it's the one that runs first ("ckpt_1_Start will start").
  • ckpt_2 through ckpt_9 - optional, each paired with its own ckpt_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, LORA type) - 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.

Category🔶Chaosaiart/checkpoint

Inputs (22)

NameTypeDefaultDescription
activ_frameACTIV_FRAME—
positiv_txtSTRING—
negativ_txtSTRING—
ckpt_1COMBO0 options:
ckpt_1_infoCOMBO1 options: ckpt_1_Start will start
ckpt_2optCOMBO0 options:
ckpt_2_Frame_startoptINT00–150000—
ckpt_3optCOMBO0 options:
ckpt_3_Frame_startoptINT00–150000—
ckpt_4optCOMBO0 options:
ckpt_4_Frame_startoptINT00–150000—
ckpt_5optCOMBO0 options:
ckpt_5_Frame_startoptINT00–150000—
ckpt_6optCOMBO0 options:
ckpt_6_Frame_startoptINT00–150000—
ckpt_7optCOMBO0 options:
ckpt_7_Frame_startoptINT00–150000—
ckpt_8optCOMBO0 options:
ckpt_8_Frame_startoptINT00–150000—
ckpt_9optCOMBO0 options:
ckpt_9_Frame_startoptINT00–150000—
loraoptLORA—

Outputs (5)

NameTypeDescription
InfoSTRING—
MODELMODEL—
POSITIVCONDITIONING—
NEGATIVCONDITIONING—
VAEVAE—