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 5 months ago·Updated 21 days ago· 6
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