Load Clip Index (NH)
Load one of 64 CLIPs by number, and stop dragging dropdowns
- clip
- filename
- index
Every text encoder has its own CLIP model, and if you run multiple model families you end up with a lot of .safetensors files in models/clip and a lot of scrolling through dropdowns. Load Clip Index (NH) turns that dropdown into a number: it lists up to 64 CLIP files in one node, and you pick one by a 1-based index. Hand the index to a Counter (NH), a random node, or a math node, and the loader swaps CLIPs automatically between runs.
It's the same idea as the pack's indexed LoRA and diffusion loaders - one big config surface, one wire that chooses. You pay a little setup time up front; you save a lot of manual swapping later.
How it works
The node reads every file in ComfyUI's models/clip folder and lays them out as clip_1 through clip_64 inputs. Two controls shape the selection:
- select_mode -
indexpicks by theindexwidget;booleanignores the number and picks the firstenable_Ncheckbox you've ticked. Boolean mode is the lazy person's toggle: flip the enable box on the CLIP you want this run, and the loader follows. - clip_count - how many of the 64 slots are active (so you only see the ones you've actually populated). Set it to your real count and the rest disappear.
- type - which CLIP architecture to load:
stable_diffusion,stable_cascade,sd3,stable_audio,mochi,ltxv,pixart, orhunyuan_video. Get this wrong and the load fails or produces garbage, so match it to the checkpoint family you're pairing with.
The loader uses ComfyUI's standard load_clip path with your models/embeddings folder attached, so your text encoders behave exactly like the built-in Load CLIP node.
Outputs
- clip - the loaded CLIP, ready to wire into a CLIP Text Encode node.
- filename - the name of the file that got loaded. Great for logging or for a Save Image caption showing which CLIP produced the result.
- index - the index that was selected, passed back out so downstream nodes know what happened.
If the selected slot is empty or out of range, you get a blocked output instead of a crash - downstream text encoding simply doesn't run. That's the safe-fail behavior, and it's usually what you want while you're still populating slots.
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 model downloads - the node just reads whatever CLIPs you already have. First run will show empty dropdowns until you assign files to slots, which trips people up for about ten seconds.
Inputs (132)
| Name | Type | Default | Description |
|---|---|---|---|
| select_mode | COMBO | index | 2 options: index, boolean |
| type | COMBO | 8 options: stable_diffusion, stable_cascade, sd3, stable_audio, mochi, ltxv, +2 | |
| index | INT | 11–64 | — |
| clip_count | INT | 51–64 | — |
| clip_1opt | COMBO | 1 options: | |
| enable_1opt | BOOLEAN | false | — |
| clip_2opt | COMBO | 1 options: | |
| enable_2opt | BOOLEAN | false | — |
| clip_3opt | COMBO | 1 options: | |
| enable_3opt | BOOLEAN | false | — |
| clip_4opt | COMBO | 1 options: | |
| enable_4opt | BOOLEAN | false | — |
| clip_5opt | COMBO | 1 options: | |
| enable_5opt | BOOLEAN | false | — |
| clip_6opt | COMBO | 1 options: | |
| enable_6opt | BOOLEAN | false | — |
| clip_7opt | COMBO | 1 options: | |
| enable_7opt | BOOLEAN | false | — |
| clip_8opt | COMBO | 1 options: | |
| enable_8opt | BOOLEAN | false | — |
| clip_9opt | COMBO | 1 options: | |
| enable_9opt | BOOLEAN | false | — |
| clip_10opt | COMBO | 1 options: | |
| enable_10opt | BOOLEAN | false | — |
| clip_11opt | COMBO | 1 options: | |
| enable_11opt | BOOLEAN | false | — |
| clip_12opt | COMBO | 1 options: | |
| enable_12opt | BOOLEAN | false | — |
| clip_13opt | COMBO | 1 options: | |
| enable_13opt | BOOLEAN | false | — |
| clip_14opt | COMBO | 1 options: | |
| enable_14opt | BOOLEAN | false | — |
| clip_15opt | COMBO | 1 options: | |
| enable_15opt | BOOLEAN | false | — |
| clip_16opt | COMBO | 1 options: | |
| enable_16opt | BOOLEAN | false | — |
| clip_17opt | COMBO | 1 options: | |
| enable_17opt | BOOLEAN | false | — |
| clip_18opt | COMBO | 1 options: | |
| enable_18opt | BOOLEAN | false | — |
| clip_19opt | COMBO | 1 options: | |
| enable_19opt | BOOLEAN | false | — |
| clip_20opt | COMBO | 1 options: | |
| enable_20opt | BOOLEAN | false | — |
| clip_21opt | COMBO | 1 options: | |
| enable_21opt | BOOLEAN | false | — |
| clip_22opt | COMBO | 1 options: | |
| enable_22opt | BOOLEAN | false | — |
| clip_23opt | COMBO | 1 options: | |
| enable_23opt | BOOLEAN | false | — |
| clip_24opt | COMBO | 1 options: | |
| enable_24opt | BOOLEAN | false | — |
| clip_25opt | COMBO | 1 options: | |
| enable_25opt | BOOLEAN | false | — |
| clip_26opt | COMBO | 1 options: | |
| enable_26opt | BOOLEAN | false | — |
| clip_27opt | COMBO | 1 options: | |
| enable_27opt | BOOLEAN | false | — |
| clip_28opt | COMBO | 1 options: | |
| enable_28opt | BOOLEAN | false | — |
| clip_29opt | COMBO | 1 options: | |
| enable_29opt | BOOLEAN | false | — |
| clip_30opt | COMBO | 1 options: | |
| enable_30opt | BOOLEAN | false | — |
| clip_31opt | COMBO | 1 options: | |
| enable_31opt | BOOLEAN | false | — |
| clip_32opt | COMBO | 1 options: | |
| enable_32opt | BOOLEAN | false | — |
| clip_33opt | COMBO | 1 options: | |
| enable_33opt | BOOLEAN | false | — |
| clip_34opt | COMBO | 1 options: | |
| enable_34opt | BOOLEAN | false | — |
| clip_35opt | COMBO | 1 options: | |
| enable_35opt | BOOLEAN | false | — |
| clip_36opt | COMBO | 1 options: | |
| enable_36opt | BOOLEAN | false | — |
| clip_37opt | COMBO | 1 options: | |
| enable_37opt | BOOLEAN | false | — |
| clip_38opt | COMBO | 1 options: | |
| enable_38opt | BOOLEAN | false | — |
| clip_39opt | COMBO | 1 options: | |
| enable_39opt | BOOLEAN | false | — |
| clip_40opt | COMBO | 1 options: | |
| enable_40opt | BOOLEAN | false | — |
| clip_41opt | COMBO | 1 options: | |
| enable_41opt | BOOLEAN | false | — |
| clip_42opt | COMBO | 1 options: | |
| enable_42opt | BOOLEAN | false | — |
| clip_43opt | COMBO | 1 options: | |
| enable_43opt | BOOLEAN | false | — |
| clip_44opt | COMBO | 1 options: | |
| enable_44opt | BOOLEAN | false | — |
| clip_45opt | COMBO | 1 options: | |
| enable_45opt | BOOLEAN | false | — |
| clip_46opt | COMBO | 1 options: | |
| enable_46opt | BOOLEAN | false | — |
| clip_47opt | COMBO | 1 options: | |
| enable_47opt | BOOLEAN | false | — |
| clip_48opt | COMBO | 1 options: | |
| enable_48opt | BOOLEAN | false | — |
| clip_49opt | COMBO | 1 options: | |
| enable_49opt | BOOLEAN | false | — |
| clip_50opt | COMBO | 1 options: | |
| enable_50opt | BOOLEAN | false | — |
| clip_51opt | COMBO | 1 options: | |
| enable_51opt | BOOLEAN | false | — |
| clip_52opt | COMBO | 1 options: | |
| enable_52opt | BOOLEAN | false | — |
| clip_53opt | COMBO | 1 options: | |
| enable_53opt | BOOLEAN | false | — |
| clip_54opt | COMBO | 1 options: | |
| enable_54opt | BOOLEAN | false | — |
| clip_55opt | COMBO | 1 options: | |
| enable_55opt | BOOLEAN | false | — |
| clip_56opt | COMBO | 1 options: | |
| enable_56opt | BOOLEAN | false | — |
| clip_57opt | COMBO | 1 options: | |
| enable_57opt | BOOLEAN | false | — |
| clip_58opt | COMBO | 1 options: | |
| enable_58opt | BOOLEAN | false | — |
| clip_59opt | COMBO | 1 options: | |
| enable_59opt | BOOLEAN | false | — |
| clip_60opt | COMBO | 1 options: | |
| enable_60opt | BOOLEAN | false | — |
| clip_61opt | COMBO | 1 options: | |
| enable_61opt | BOOLEAN | false | — |
| clip_62opt | COMBO | 1 options: | |
| enable_62opt | BOOLEAN | false | — |
| clip_63opt | COMBO | 1 options: | |
| enable_63opt | BOOLEAN | false | — |
| clip_64opt | COMBO | 1 options: | |
| enable_64opt | BOOLEAN | false | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| clip | CLIP | — |
| filename | STRING | — |
| index | INT | — |