Diffusion Model List
Pick a stack of UNet models without typing a single filename
- model names
- count
If you've ever hand-typed a checkpoint filename into a text field because the dropdown didn't exist, this node is the apology. HYBS_DiffusionModelList builds a LIST of UNet/diffusion model filenames straight from your models/unet folder - not from models/checkpoints. It's the model-selection half of a batch or XY-plot run where you want to flip between several UNets without rebuilding the graph or fat-fingering a path.
A quick vocabulary check, because this trips up people coming from SD 1.5/SDXL: a checkpoint bundles the UNet, the text encoder, and the VAE into one file. A standalone UNet is just the denoiser half, and you load it separately (that's the Load Diffusion Model / UNETLoader pattern Flux and friends use). This node only lists what ComfyUI registers under models/unet. If you've never downloaded a standalone UNet, the list will be empty and the node will complain - that's expected, not a bug.
How it works
The node reads folder_paths.get_filename_list("diffusion_models") at startup and hands the full list to a frontend widget. Start with one model selector; pick a model and the widget grows a second row. Each pick appends to the internal selection state, which is all the node's backend cares about. There's exactly one input, selection, and it's socketless - it's the widget's own JSON, not something you wire to. You set it by clicking rows in the UI.
Outputs are the honest part:
- model names (
LIST) - the selected filenames in visible-row order - count (
INT) - how many models you actually selected
The author's docs call out the intended use: feed model names into ComfyLab's XY Plot as row labels, so each cell runs the same workflow with a different UNet and the plot tells you which filename produced which image. That's the whole pitch - a proper list input for nodes that iterate over lists, instead of one hard-coded Load Diffusion Model node per run.
Installation
Same as every node in this pack, and it's a light one - no model downloads, no CUDA deps, just the toml requirement that's really for a sibling node:
cd path/to/ComfyUI/custom_nodes
git clone https://github.com/hybskgks28275/ComfyUI-hybs-nodes.git
pip install -r ComfyUI-hybs-nodes/requirements.txt
Or skip all that and install "ComfyUI-hybs-nodes" via ComfyUI Manager's Custom Nodes search. Restart ComfyUI after either route.
Where people get burned
- Empty dropdown means nothing lives in
models/unetyet. If you only have checkpoints, this node has nothing to list. - The model list is snapshot at node-schema build, i.e. startup. Drop a new UNet into the folder and it won't appear until you restart ComfyUI (or at least reload).
validate_inputshard-fails if you select a filename that isn't inmodels/unetanymore - say you renamed the file. The error message names the offender, so it's a quick fix, but the node is strict on purpose: a batch run with one missing file would otherwise silently produce a broken cell.
For most people the built-in checkpoints loader is fine. Reach for this one when you're doing multi-model comparisons - XY plots, A/B runs, prompt sweeps - and you want the list of candidates as data in the graph, not as muscle memory.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| selection | STRING | [] | Internal selection state managed by the frontend widget. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model names | LIST | Selected UNet/diffusion model filenames. |
| count | INT | Number of selected models. |