Nodes/NH-Nodes/Load Diffusion Model Index (NH)
ComfyUI Node

Load Diffusion Model Index (NH)

Pick a diffusion model by index — or hand the choice to a boolean

By jetthuangai·Created 6 months ago·Updated about a month ago· 7
Load Diffusion Model Index (NH)
    • model
    • filename
    • index
    ◄select_modeindex►
    ◄index1►
    ◄model_count5►
    ◄weight_dtype▾►
    ◄diffusion_model_1▾►
    ◄enable_1false►
    ◄diffusion_model_2▾►
    ◄enable_2false►
    ◄diffusion_model_3▾►
    ◄enable_3false►
    ◄diffusion_model_4▾►
    ◄enable_4false►
    ◄diffusion_model_5▾►
    ◄enable_5false►
    ◄diffusion_model_6▾►
    ◄enable_6false►
    ◄diffusion_model_7▾►
    ◄enable_7false►
    ◄diffusion_model_8▾►
    ◄enable_8false►
    ◄diffusion_model_9▾►
    ◄enable_9false►
    ◄diffusion_model_10▾►
    ◄enable_10false►
    ◄diffusion_model_11▾►
    ◄enable_11false►
    ◄diffusion_model_12▾►
    ◄enable_12false►
    ◄diffusion_model_13▾►
    ◄enable_13false►
    ◄diffusion_model_14▾►
    ◄enable_14false►
    ◄diffusion_model_15▾►
    ◄enable_15false►
    ◄diffusion_model_16▾►
    ◄enable_16false►
    ◄diffusion_model_17▾►
    ◄enable_17false►
    ◄diffusion_model_18▾►
    ◄enable_18false►
    ◄diffusion_model_19▾►
    ◄enable_19false►
    ◄diffusion_model_20▾►
    ◄enable_20false►
    ◄diffusion_model_21▾►
    ◄enable_21false►
    ◄diffusion_model_22▾►
    ◄enable_22false►
    ◄diffusion_model_23▾►
    ◄enable_23false►
    ◄diffusion_model_24▾►
    ◄enable_24false►
    ◄diffusion_model_25▾►
    ◄enable_25false►
    ◄diffusion_model_26▾►
    ◄enable_26false►
    ◄diffusion_model_27▾►
    ◄enable_27false►
    ◄diffusion_model_28▾►
    ◄enable_28false►
    ◄diffusion_model_29▾►
    ◄enable_29false►
    ◄diffusion_model_30▾►
    ◄enable_30false►
    ◄diffusion_model_31▾►
    ◄enable_31false►
    ◄diffusion_model_32▾►
    ◄enable_32false►
    ◄diffusion_model_33▾►
    ◄enable_33false►
    ◄diffusion_model_34▾►
    ◄enable_34false►
    ◄diffusion_model_35▾►
    ◄enable_35false►
    ◄diffusion_model_36▾►
    ◄enable_36false►
    ◄diffusion_model_37▾►
    ◄enable_37false►
    ◄diffusion_model_38▾►
    ◄enable_38false►
    ◄diffusion_model_39▾►
    ◄enable_39false►
    ◄diffusion_model_40▾►
    ◄enable_40false►
    ◄diffusion_model_41▾►
    ◄enable_41false►
    ◄diffusion_model_42▾►
    ◄enable_42false►
    ◄diffusion_model_43▾►
    ◄enable_43false►
    ◄diffusion_model_44▾►
    ◄enable_44false►
    ◄diffusion_model_45▾►
    ◄enable_45false►
    ◄diffusion_model_46▾►
    ◄enable_46false►
    ◄diffusion_model_47▾►
    ◄enable_47false►
    ◄diffusion_model_48▾►
    ◄enable_48false►
    ◄diffusion_model_49▾►
    ◄enable_49false►
    ◄diffusion_model_50▾►
    ◄enable_50false►
    ◄diffusion_model_51▾►
    ◄enable_51false►
    ◄diffusion_model_52▾►
    ◄enable_52false►
    ◄diffusion_model_53▾►
    ◄enable_53false►
    ◄diffusion_model_54▾►
    ◄enable_54false►
    ◄diffusion_model_55▾►
    ◄enable_55false►
    ◄diffusion_model_56▾►
    ◄enable_56false►
    ◄diffusion_model_57▾►
    ◄enable_57false►
    ◄diffusion_model_58▾►
    ◄enable_58false►
    ◄diffusion_model_59▾►
    ◄enable_59false►
    ◄diffusion_model_60▾►
    ◄enable_60false►
    ◄diffusion_model_61▾►
    ◄enable_61false►
    ◄diffusion_model_62▾►
    ◄enable_62false►
    ◄diffusion_model_63▾►
    ◄enable_63false►
    ◄diffusion_model_64▾►
    ◄enable_64false►

    If you test checkpoints for a living, you've rebuilt the same node over and over: one model dropdown you keep changing between runs. Load Diffusion Model Index (NH) is that pattern formalized. It lists up to 64 diffusion models in a single node, and you select one with a 1-based index - which means the selection can be driven by a Counter (NH), a random node, or any integer your graph produces. Batch-test five checkpoints by queuing five times, never touching a dropdown.

    It's the same DNA as the pack's Load Clip Index (NH) and LoRA index loaders: a big configuration surface, one number that chooses.

    How it works

    It reads everything in ComfyUI's models/diffusion_models folder and lays it out as diffusion_model_1 through diffusion_model_64. The controls:

    • select_mode - index picks by the index widget; boolean ignores the number and picks the first enable_N box you've ticked. Boolean mode is nice for humans ("this run, use the one I flipped on"), index mode is nice for automation.
    • model_count - how many of the 64 slots are active. Set it to the number you actually populate so empty slots don't clutter the dropdown.
    • weight_dtype - weight loading precision: default, fp8_e4m3fn, fp8_e4m3fn_fast, or fp8_e5m2. The two e4m3fn variants are the standard fp8 formats; _fast also enables fp8 optimizations (faster inference where supported, at a small quality cost). If you're on a VRAM-limited card, fp8 is how you fit bigger models; on a beefy card, default keeps full precision. This is the same dtype knob you'd find on ComfyUI's native diffusion model loader, just exposed here.

    The loader goes through ComfyUI's standard load_diffusion_model path, so anything you could load with the built-in Load Diffusion Model node loads here - including fp8 variants of SDXL and newer architectures.

    Outputs

    • model - the loaded MODEL, ready for a KSampler or model patching.
    • filename - the file that loaded, for logging and output captions.
    • index - which slot won, passed back so downstream logic knows.

    Empty or out-of-range slots return a blocked output rather than a crash - the sampler downstream simply doesn't run. Safe-fail behavior while you're still filling slots.

    Where it earns its keep

    The killer workflow is a sweep: Counter (NH) → this loader → sample → save, queue it N times, and you've tested N models with zero manual intervention. The filename output makes it easy to label each result with the checkpoint that produced it. The cost is the upfront slot assignment, and it only pays off if you genuinely rotate models. For one-model-per-workflow setups, the built-in loader is simpler - don't over-engineer.

    Installing

    cd ComfyUI/custom_nodes
    git clone https://github.com/jetthuangai/NH-Nodes.git
    cd NH-Nodes
    pip install -r requirements.txt
    

    Or install NH-Nodes via ComfyUI Manager and restart. No extra downloads - the node reads models you already own. First run shows empty dropdowns until you assign files, which trips people up for about ten seconds.

    CategoryNH-Nodes/Loaders

    Inputs (132)

    NameTypeDefaultDescription
    select_modeCOMBOindex2 options: index, boolean
    indexINT11–64—
    model_countINT51–64—
    weight_dtypeCOMBO4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2
    diffusion_model_1optCOMBO1 options:
    enable_1optBOOLEANfalse—
    diffusion_model_2optCOMBO1 options:
    enable_2optBOOLEANfalse—
    diffusion_model_3optCOMBO1 options:
    enable_3optBOOLEANfalse—
    diffusion_model_4optCOMBO1 options:
    enable_4optBOOLEANfalse—
    diffusion_model_5optCOMBO1 options:
    enable_5optBOOLEANfalse—
    diffusion_model_6optCOMBO1 options:
    enable_6optBOOLEANfalse—
    diffusion_model_7optCOMBO1 options:
    enable_7optBOOLEANfalse—
    diffusion_model_8optCOMBO1 options:
    enable_8optBOOLEANfalse—
    diffusion_model_9optCOMBO1 options:
    enable_9optBOOLEANfalse—
    diffusion_model_10optCOMBO1 options:
    enable_10optBOOLEANfalse—
    diffusion_model_11optCOMBO1 options:
    enable_11optBOOLEANfalse—
    diffusion_model_12optCOMBO1 options:
    enable_12optBOOLEANfalse—
    diffusion_model_13optCOMBO1 options:
    enable_13optBOOLEANfalse—
    diffusion_model_14optCOMBO1 options:
    enable_14optBOOLEANfalse—
    diffusion_model_15optCOMBO1 options:
    enable_15optBOOLEANfalse—
    diffusion_model_16optCOMBO1 options:
    enable_16optBOOLEANfalse—
    diffusion_model_17optCOMBO1 options:
    enable_17optBOOLEANfalse—
    diffusion_model_18optCOMBO1 options:
    enable_18optBOOLEANfalse—
    diffusion_model_19optCOMBO1 options:
    enable_19optBOOLEANfalse—
    diffusion_model_20optCOMBO1 options:
    enable_20optBOOLEANfalse—
    diffusion_model_21optCOMBO1 options:
    enable_21optBOOLEANfalse—
    diffusion_model_22optCOMBO1 options:
    enable_22optBOOLEANfalse—
    diffusion_model_23optCOMBO1 options:
    enable_23optBOOLEANfalse—
    diffusion_model_24optCOMBO1 options:
    enable_24optBOOLEANfalse—
    diffusion_model_25optCOMBO1 options:
    enable_25optBOOLEANfalse—
    diffusion_model_26optCOMBO1 options:
    enable_26optBOOLEANfalse—
    diffusion_model_27optCOMBO1 options:
    enable_27optBOOLEANfalse—
    diffusion_model_28optCOMBO1 options:
    enable_28optBOOLEANfalse—
    diffusion_model_29optCOMBO1 options:
    enable_29optBOOLEANfalse—
    diffusion_model_30optCOMBO1 options:
    enable_30optBOOLEANfalse—
    diffusion_model_31optCOMBO1 options:
    enable_31optBOOLEANfalse—
    diffusion_model_32optCOMBO1 options:
    enable_32optBOOLEANfalse—
    diffusion_model_33optCOMBO1 options:
    enable_33optBOOLEANfalse—
    diffusion_model_34optCOMBO1 options:
    enable_34optBOOLEANfalse—
    diffusion_model_35optCOMBO1 options:
    enable_35optBOOLEANfalse—
    diffusion_model_36optCOMBO1 options:
    enable_36optBOOLEANfalse—
    diffusion_model_37optCOMBO1 options:
    enable_37optBOOLEANfalse—
    diffusion_model_38optCOMBO1 options:
    enable_38optBOOLEANfalse—
    diffusion_model_39optCOMBO1 options:
    enable_39optBOOLEANfalse—
    diffusion_model_40optCOMBO1 options:
    enable_40optBOOLEANfalse—
    diffusion_model_41optCOMBO1 options:
    enable_41optBOOLEANfalse—
    diffusion_model_42optCOMBO1 options:
    enable_42optBOOLEANfalse—
    diffusion_model_43optCOMBO1 options:
    enable_43optBOOLEANfalse—
    diffusion_model_44optCOMBO1 options:
    enable_44optBOOLEANfalse—
    diffusion_model_45optCOMBO1 options:
    enable_45optBOOLEANfalse—
    diffusion_model_46optCOMBO1 options:
    enable_46optBOOLEANfalse—
    diffusion_model_47optCOMBO1 options:
    enable_47optBOOLEANfalse—
    diffusion_model_48optCOMBO1 options:
    enable_48optBOOLEANfalse—
    diffusion_model_49optCOMBO1 options:
    enable_49optBOOLEANfalse—
    diffusion_model_50optCOMBO1 options:
    enable_50optBOOLEANfalse—
    diffusion_model_51optCOMBO1 options:
    enable_51optBOOLEANfalse—
    diffusion_model_52optCOMBO1 options:
    enable_52optBOOLEANfalse—
    diffusion_model_53optCOMBO1 options:
    enable_53optBOOLEANfalse—
    diffusion_model_54optCOMBO1 options:
    enable_54optBOOLEANfalse—
    diffusion_model_55optCOMBO1 options:
    enable_55optBOOLEANfalse—
    diffusion_model_56optCOMBO1 options:
    enable_56optBOOLEANfalse—
    diffusion_model_57optCOMBO1 options:
    enable_57optBOOLEANfalse—
    diffusion_model_58optCOMBO1 options:
    enable_58optBOOLEANfalse—
    diffusion_model_59optCOMBO1 options:
    enable_59optBOOLEANfalse—
    diffusion_model_60optCOMBO1 options:
    enable_60optBOOLEANfalse—
    diffusion_model_61optCOMBO1 options:
    enable_61optBOOLEANfalse—
    diffusion_model_62optCOMBO1 options:
    enable_62optBOOLEANfalse—
    diffusion_model_63optCOMBO1 options:
    enable_63optBOOLEANfalse—
    diffusion_model_64optCOMBO1 options:
    enable_64optBOOLEANfalse—

    Outputs (3)

    NameTypeDescription
    modelMODEL—
    filenameSTRING—
    indexINT—