4-Prompt Checkpoint Cycler Loader (Nukun)
Four prompts per checkpoint, one seed scheme that actually syncs
- text
- MODEL
- CLIP
- VAE
- modelname
- filename_modelname
- ckpt_name
- folder
- prompt_index
- model_index
- model_count
- seed
The checkpoint cycler gives you "every model × one prompt". The 4-prompt cycler is the upgrade when you want "every model × four prompts" - and you want the seeds to behave sensibly while you do it. NukunFourPromptCheckpointCyclerLoader cycles through checkpoints in one folder and, for each one, steps through four multiline prompts you typed in. It's a batch-comparison workhorse for testing how a set of prompts performs across a model lineup.
This is the checkpoint flavor of the pack's 4-prompt design; the sibling 4-Prompt Model Cycler Loader does the same for split diffusion-model files instead of monolithic checkpoints.
How the cycle works
cycle_index drives everything. Keep it on control after generate = increment and it advances through the four prompts for the current checkpoint, then moves to the next naturally-sorted checkpoint and starts back at prompt 1. The outputs hand you prompt_index (0-3) and model_index, plus model_count, so your filenames can record exactly where in the sweep each image came from. Empty text fields are intentional positions - if one of your four slots is blank, that's a deliberate cycle slot, not an error.
The seed modes - the part worth reading twice
A comparison run is only fair if seeds are handled deliberately, and this is where the node earns its keep. seed_mode has three settings:
increment- the seed advances once per checkpoint. Same seed across the four prompts for one model, different seed per model. Good default for "each model gets a clean roll".fixed- the enteredseedis used for everything. Every image, every prompt, every checkpoint shares one seed. That's your strict A/B/C test.random- a fresh seed is generated only when a new four-prompt group starts. The four prompts for one model keep the same seed; random seeds stay fixed inside their group.
One wrinkle to know: in random mode, the seed widget only updates when the frontend queues a new group. If you're queuing from an API without the frontend, the supplied seed is used unchanged - the frontend is what actually rolls the fresh ones.
What you get out
text (the currently active prompt), then the full MODEL, CLIP, VAE, plus modelname, filename_modelname, ckpt_name, folder, the indices, model_count, and seed. The classic wiring: text → CLIP Text Encode, modelname/prompt_index/seed → filename prefix, MODEL/CLIP/VAE → sampler.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/OnekoSL/Nukun_ComfyUI_Nodes.git
Restart ComfyUI or use ComfyUI Manager ("Nukun"). Light runtime deps only.
The caveat
Four prompts per model means the run count multiplies fast - 8 checkpoints × 4 prompts = 32 generations before you've added seed variation. That's the design, but plan your folder size accordingly, and use model_count / prompt_index in filenames from day one or you'll be reverse-engineering which image is which. And as always with cyclers: control_after_generate applies after the run, so flip widget control mode to Before for controlled comparisons.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| cycle_index | INT | 00–18446744073709550000 | Advances through four prompts per checkpoint. Keep control after generate on increment. |
| checkpoint_folder | COMBO | (root) | Exact checkpoint folder to cycle; nested folders are separate choices. |
| text_1 | STRING | — | |
| text_2 | STRING | — | |
| text_3 | STRING | — | |
| text_4 | STRING | — | |
| seed | INT | 00–18446744073709550000 | Starting or fixed seed. Random mode updates this widget only when a new four-prompt checkpoint group is queued. |
| seed_mode | COMBO | increment | Increment once per checkpoint, stay fixed, or choose a new random seed once per checkpoint. |
Outputs (12)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |
| modelname | STRING | — |
| filename_modelname | STRING | — |
| ckpt_name | STRING | — |
| folder | STRING | — |
| prompt_index | INT | — |
| model_index | INT | — |
| model_count | INT | — |
| seed | INT | — |