Nodes/Nukun_ComfyUI_Nodes/4-Prompt Model Cycler Loader (Nukun)
ComfyUI Node

4-Prompt Model Cycler Loader (Nukun)

Four prompts per diffusion model, for the separate-file crowd

By OnekoSL·Created 3 months ago·Updated 11 days ago· 1
4-Prompt Model Cycler Loader (Nukun)
    • text
    • MODEL
    • CLIP
    • VAE
    • modelname
    • filename_modelname
    • unet_name
    • folder
    • prompt_index
    • model_index
    • model_count
    • seed
    cycle_index0
    unet_folder(root)
    text_1
    text_2
    text_3
    text_4
    clip_name
    vae_namepixel_space
    weight_dtypedefault
    clip_typestable_diffusion
    clip_devicedefault
    seed0
    seed_modeincrement

    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 to pixel_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.

    CategoryNukun/Loaders

    Inputs (13)

    NameTypeDefaultDescription
    cycle_indexINT00–18446744073709550000Advances through four prompts per model. Keep control after generate on increment.
    unet_folderCOMBO(root)Exact diffusion-model folder to cycle; nested folders are separate choices.
    text_1STRING
    text_2STRING
    text_3STRING
    text_4STRING
    clip_nameCOMBOText encoder/CLIP shared by every model in the cycle.
    vae_nameCOMBOpixel_spaceVAE shared by every model in the cycle.
    weight_dtypeCOMBOdefault4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2
    clip_typeCOMBOstable_diffusion25 options: stable_diffusion, stable_cascade, sd3, stable_audio, mochi, ltxv, +19
    clip_deviceCOMBOdefault2 options: default, cpu
    seedINT00–18446744073709550000Starting or fixed seed. Random mode updates this widget only when a new four-prompt model group is queued.
    seed_modeCOMBOincrementIncrement once per model, stay fixed, or choose a new random seed once per model.

    Outputs (12)

    NameTypeDescription
    textSTRING
    MODELMODEL
    CLIPCLIP
    VAEVAE
    modelnameSTRING
    filename_modelnameSTRING
    unet_nameSTRING
    folderSTRING
    prompt_indexINT
    model_indexINT
    model_countINT
    seedINT