Nodes/AUN ComfyUI Nodes/Model and Text Selector
ComfyUI Node

Model and Text Selector

Swap models and their labels together, like a package deal

By loz2754·Created 8 months ago·Updated a day ago· 5
Model and Text Selector
  • base_model
  • model_1
  • model_2
  • model_3
  • model_4
  • model_5
  • model_6
  • model_7
  • model_8
  • model_9
  • model_10
  • MODEL
  • selected_text
  • index
  • label
modeSelect
slot_count3
select1
minimum1
maximum3
range1,2,3
text_1
label_1
text_2
label_2
text_3
label_3
text_4
label_4
text_5
label_5
text_6
label_6
text_7
label_7
text_8
label_8
text_9
label_9
text_10
label_10

Switching the active model in a ComfyUI workflow is easy. Keeping the metadata that goes with it in sync - the label that shows in your filename, the text note about which checkpoint you meant - is the fiddly part. Model and Text Selector picks one of up to 10 model slots and hands you the model and its paired text and label in one go. It's the model equivalent of a bundle deal: change the slot, and model, text, label, and index all change together, consistently.

How it works

Each of the 10 slots has three optional inputs: model_N (MODEL), text_N (STRING - metadata, e.g. "SDXL portrait base"), and label_N (STRING - a short human name). Selection is driven by the same mode family as the pack's index nodes: None (pass through base_model untouched), Select (fixed select), Increment, Random, or Range (list like 1,3,5-6), with slot_count controlling how many slots are active from the top.

Outputs: MODEL (the chosen model), selected_text (STRING - the slot's text), index (INT - the winning slot), and label (STRING - the slot's label). Wire MODEL into your sampler, label into a filename builder or display node, and index into any controller that needs to stay in sync.

Why the text/label pair is the point

A bare model switch gives you a MODEL and nothing else; you still can't tell what's in the sampler without squinting at the loader. This node makes the choice observable: label goes to your filename (AUN Path Filename V2's Labels input is a natural home), selected_text documents the slot, and index feeds controllers. So a random model rotation also produces files named after the model you actually used, automatically.

What you'll set

  • mode, select, minimum, maximum, range, slot_count - the selection mechanics.
  • model_N - wire each slot from a loader (e.g. a checkpoint loader or AUN Ckpt Load With Clip Skip).
  • text_N / label_N - the metadata. Optional, but they're why this node exists.
  • base_model - passthrough used when mode is None.

Honest notes: this node switches models, not CLIPs - if your slots differ in CLIP or VAE, pair it with the matching loader wiring, because the node only carries the MODEL. And with Random mode, remember maximum should match your configured slot_count, or you'll land on empty slots. No trigger handling here - that's what the LoRA loaders are for.

Install

Part of AUN ComfyUI Nodes (loz2754):

cd ComfyUI/custom_nodes
git clone https://github.com/loz2754/AUN-ComfyUI-Nodes

or ComfyUI Manager → "AUN ComfyUI Nodes" → install → restart. Pack deps (piexif, opencv-python-headless, imageio-ffmpeg, requests) install via Manager; no model downloads - it switches whatever you feed it.

If you're looking for random LoRA selection with trigger words, that's the pack's Random LoRA Model Loader. This node is specifically for swapping whole checkpoints while keeping the paperwork - text, label, index - traveling with them.

CategoryAUN Nodes/Loras

Inputs (37)

NameTypeDefaultDescription
modeCOMBOSelectSelection mode for active slot.
slot_countINT31–10How many slots are active from top to bottom.
selectINT11–10Slot index used in Select mode.
minimumINT11–10Minimum slot index for Increment/Random.
maximumINT31–10Maximum slot index for Increment/Random.
rangeSTRING1,2,3Comma-separated explicit index range for Range mode (for example 1,3,5-6).
base_modeloptMODELUnpatched model passthrough used when mode is None.
model_1optMODELModel input for slot 1.
text_1optSTRINGOptional text metadata for slot 1.
label_1optSTRINGOptional custom label for slot 1.
model_2optMODELModel input for slot 2.
text_2optSTRINGOptional text metadata for slot 2.
label_2optSTRINGOptional custom label for slot 2.
model_3optMODELModel input for slot 3.
text_3optSTRINGOptional text metadata for slot 3.
label_3optSTRINGOptional custom label for slot 3.
model_4optMODELModel input for slot 4.
text_4optSTRINGOptional text metadata for slot 4.
label_4optSTRINGOptional custom label for slot 4.
model_5optMODELModel input for slot 5.
text_5optSTRINGOptional text metadata for slot 5.
label_5optSTRINGOptional custom label for slot 5.
model_6optMODELModel input for slot 6.
text_6optSTRINGOptional text metadata for slot 6.
label_6optSTRINGOptional custom label for slot 6.
model_7optMODELModel input for slot 7.
text_7optSTRINGOptional text metadata for slot 7.
label_7optSTRINGOptional custom label for slot 7.
model_8optMODELModel input for slot 8.
text_8optSTRINGOptional text metadata for slot 8.
label_8optSTRINGOptional custom label for slot 8.
model_9optMODELModel input for slot 9.
text_9optSTRINGOptional text metadata for slot 9.
label_9optSTRINGOptional custom label for slot 9.
model_10optMODELModel input for slot 10.
text_10optSTRINGOptional text metadata for slot 10.
label_10optSTRINGOptional custom label for slot 10.

Outputs (4)

NameTypeDescription
MODELMODEL
selected_textSTRING
indexINT
labelSTRING