Nodes/D2 Nodes ComfyUI/D2 XY Model List
ComfyUI Node

D2 XY Model List

Stop typing checkpoint names into XY plots — pull the whole folder in

By da2el-ai·Created 2 years ago·Updated about a month ago· 66
D2 XY Model List
  • get_list
  • x / y_list
  • LIST
model_type
filter
mode
sort_byName
order_byA-Z
model_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, or controlnet.
  • filter - keep only names matching this substring or regex (case-insensitive). Leave blank for everything.
  • mode - simple lists plain filenames; a1111 wraps LoRA names as <lora:name:1> so they work directly in A1111-style prompts.
  • sort_by - Name or Date (file modification time).
  • order_by - A-Z or Z-A.
  • get_list - the button that triggers the fetch. This is the whole point of the node.
  • model_list - the editable text area. After get_list fills 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-ComfyUI and 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.

CategoryD2/XY Plot

Inputs (7)

NameTypeDefaultDescription
model_typeCOMBO8 options: checkpoints, loras, diffusion_models, samplers, schedulers, upscaler, +2
filterSTRING
modeCOMBO2 options: simple, a1111
sort_byCOMBOName2 options: Name, Date
order_byCOMBOA-Z2 options: A-Z, Z-A
get_listoptD2_BUTTON
model_listoptSTRING

Outputs (2)

NameTypeDescription
x / y_listSTRING
LISTLIST