4-Prompt Model Cycler Loader (Nukun)
Four prompts per diffusion model, for the separate-file crowd
- text
- MODEL
- CLIP
- VAE
- modelname
- filename_modelname
- unet_name
- folder
- prompt_index
- model_index
- model_count
- seed
If you read the 4-Prompt Checkpoint Cycler Loader article, you know the shape: cycle four prompts, step through every model, keep the seeds honest. This is the same machine for a different model type - it cycles diffusion models out of the diffusion_models/ folder, with the CLIP and VAE as separate, fixed inputs. It's the batch-comparison node for FLUX, SD3, and every workflow where the weights live in separate files.
The two loaders look nearly identical because they're siblings sharing a design. Pick the checkpoint version for monolithic .safetensors, this one for split-model workflows.
How it works
cycle_index (keep it on increment) walks through four multiline prompts - text_1 through text_4 - for the first naturally-sorted model in your chosen unet_folder, then moves to the next model and restarts at prompt 1. Empty text fields are legitimate cycle slots, not mistakes. prompt_index, model_index, and model_count come out alongside the active text, so you can encode position in filenames.
The difference from the checkpoint version is in the fixed companions:
clip_name- one text encoder shared by every model in the cycle.vae_name- defaults topixel_space, shared across the run.weight_dtype(default, or the three fp8 options) - how the core loader handles quantization for whatever model is currently selected.clip_type- architecture of the CLIP file (stable_diffusion,sd3,ltxv,wan, ...).clip_device- normal or forced CPU for the encoder.
The seed modes (same as the checkpoint version)
seed_mode = increment, fixed, or random. The honest summary: increment advances the seed once per model (same seed across that model's four prompts), fixed pins one seed to everything, and random rolls a fresh seed per model-group - with the caveat that the fresh rolls happen when the frontend queues a new group, so API-only queues use your entered seed as-is.
That seed discipline is the actual point of the node. A "does this model suite handle this prompt set?" test is only meaningful if each prompt gets a fair shake per model, and these three modes are the three standard ways of defining "fair".
Outputs
text, MODEL, CLIP, VAE, modelname, filename_modelname, unet_name, folder, prompt_index, model_index, model_count, seed. Wire text to your text encoder, everything else to the sampler and filename builder.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/OnekoSL/Nukun_ComfyUI_Nodes.git
Restart ComfyUI or install via Manager ("Nukun").
Where it sits in your workflow
This one is aimed squarely at people running multi-model comparisons on FLUX/SD3-class architectures, where "just batch over checkpoints" isn't an option. If you're on SDXL/Pony/Illustrious and only use monolithic checkpoints, you don't need this - the checkpoint 4-prompt cycler is the simpler fit. But if you maintain a folder of quantized diffusion models and want to sweep prompts across all of them with clean per-model seeds, this is the node that does the bookkeeping for you.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| cycle_index | INT | 00–18446744073709550000 | Advances through four prompts per model. Keep control after generate on increment. |
| unet_folder | COMBO | (root) | Exact diffusion-model folder to cycle; nested folders are separate choices. |
| text_1 | STRING | — | |
| text_2 | STRING | — | |
| text_3 | STRING | — | |
| text_4 | STRING | — | |
| clip_name | COMBO | Text encoder/CLIP shared by every model in the cycle. | |
| vae_name | COMBO | pixel_space | VAE shared by every model in the cycle. |
| weight_dtype | COMBO | default | 4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2 |
| clip_type | COMBO | stable_diffusion | 25 options: stable_diffusion, stable_cascade, sd3, stable_audio, mochi, ltxv, +19 |
| clip_device | COMBO | default | 2 options: default, cpu |
| seed | INT | 00–18446744073709550000 | Starting or fixed seed. Random mode updates this widget only when a new four-prompt model group is queued. |
| seed_mode | COMBO | increment | Increment once per model, stay fixed, or choose a new random seed once per model. |
Outputs (12)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |
| modelname | STRING | — |
| filename_modelname | STRING | — |
| unet_name | STRING | — |
| folder | STRING | — |
| prompt_index | INT | — |
| model_index | INT | — |
| model_count | INT | — |
| seed | INT | — |