D2 XY Model List
Stop typing checkpoint names into XY plots — pull the whole folder in
- get_list
- x / y_list
- LIST
Model-list XY plots are the standard way to A/B test checkpoints, but the setup is tedious: open your models folder, copy a dozen filenames, paste them into the plot. D2 XY Model List automates the whole step. Click a button and it pulls the model names straight from ComfyUI's folder_paths - checkpoints, LoRAs, diffusion models, samplers, schedulers, upscalers, controlnets, even YOLO bbox/segm models - filters them, sorts them, and hands you a list you can edit before it goes into the plot.
The inputs that matter
model_type- what to list:checkpoints,loras,diffusion_models,samplers,schedulers,upscaler,bbox_segm, orcontrolnet.filter- keep only names matching this substring or regex (case-insensitive). Leave blank for everything.mode-simplelists plain filenames;a1111wraps LoRA names as<lora:name:1>so they work directly in A1111-style prompts.sort_by-NameorDate(file modification time).order_by-A-ZorZ-A.get_list- the button that triggers the fetch. This is the whole point of the node.model_list- the editable text area. Afterget_listfills it, you trim it to the models you actually want; the outputs come from this field, so editing it changes what the plot runs.
Outputs: x / y_list (the newline-separated model names, for an XY Plot) and LIST (the same as an array).
How to use it
The intended flow is fetch, edit, plot: click get_list, let the node populate model_list, delete the models you don't want to test (maybe cut 40 down to 5), then wire x / y_list into the x_list of D2 XY Plot Easy with x_type set to ckpt_name. Because it lists by type, this is also how you'd sweep samplers or schedulers without hand-typing the dropdown options - set model_type to samplers and it grabs the same list ComfyUI's KSampler dropdown uses.
A note on the filter regex: if you're searching for a string containing a backslash, write it as \\. And if you want the newest models first, sort_by = Date with order_by = Z-A.
Installing
Part of the D2-nodes-ComfyUI pack - install the pack, not the node.
- ComfyUI Manager → search "D2-nodes-ComfyUI" → Install → restart.
- Or
cd ComfyUI/custom_nodes && git clone https://github.com/da2el-ai/D2-nodes-ComfyUIand restart.
Dependencies: piexif, charset-normalizer - no model downloads. Pack gotcha: v32.0.0+ requires the newer ComfyUI V3 schema; older ComfyUI → pre-32.0.0 release.
Where people get burned
The model_list text field is the source of truth - if you click get_list and then hand-edit the field, your edits are what runs. That's a feature, but it means a stale workflow can carry an old list that doesn't reflect the folder anymore; re-click get_list after adding models. Also remember the outputs are just names - the plot loop then has to actually load each one, so a 40-checkpoint sweep is 40 full model loads. Sort by Date and trim hard, or your first "test everything" run turns into a lunch break.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| model_type | COMBO | 8 options: checkpoints, loras, diffusion_models, samplers, schedulers, upscaler, +2 | |
| filter | STRING | — | |
| mode | COMBO | 2 options: simple, a1111 | |
| sort_by | COMBO | Name | 2 options: Name, Date |
| order_by | COMBO | A-Z | 2 options: A-Z, Z-A |
| get_listopt | D2_BUTTON | — | |
| model_listopt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| x / y_list | STRING | — |
| LIST | LIST | — |