Nodes/D2 Nodes ComfyUI/D2 Checkpoint Loader
ComfyUI Node

D2 Checkpoint Loader

A plain checkpoint loader that actually tells you which file it loaded

By da2el-ai·Created 2 years ago·Updated about a month ago· 66
D2 Checkpoint Loader
  • d2_pipe
  • model
  • clip
  • vae
  • ckpt_name
  • ckpt_hash
  • ckpt_fullpath
  • sampling
  • d2_pipe
ckpt_name
auto_vpredtrue
sampling
zsnrfalse
multiplier0.60

The stock CheckpointLoaderSimple gives you model, clip, and VAE and leaves it at that. D2 Checkpoint Loader does the same loading but hands you the receipts: the checkpoint's filename, its hash, its full path on disk, and the sampling mode that ended up being applied - plus a d2_pipe output so one wire carries the whole loaded set into a D2 KSampler. If you've ever spent a morning wondering which of three folders a workflow actually pulled its model from, you'll understand why this exists.

It's part of the D2 pack's "pipe" philosophy: instead of drawing three wires out of a loader, you get one d2_pipe that bundles model / clip / vae / ckpt_name, and the D2 KSampler just takes it in. Fewer wires, and the sampler still knows which checkpoint you're on for filename templating and XY plot runs.

What the extra knobs do

  • ckpt_name - the dropdown of checkpoints, same list as the core loader.
  • auto_vpred (default on) - if the filename contains "vpred", it automatically switches to v_prediction sampling and patches the model with a RescaleCFG at your multiplier. This is the one beginners should leave alone until they're dealing with v-prediction checkpoints.
  • sampling - normal / eps / v_prediction / lcm / x0, applied via ModelSamplingDiscrete when it's not normal.
  • zsnr - toggles zero-SNR sigma discretization. This is the setting the Illustrious/NoobAI vpred community pairs with v_prediction (KB context: ModelSamplingDiscrete set to v_prediction with discrete_zsnr enabled, and a RescaleCFG helping at low CFG). If you're not on a vpred model, leave it false.
  • multiplier (default 0.6) - the RescaleCFG strength when a sampling patch is applied.

The v-prediction machinery is the same stuff you'd hand-wire with ModelSamplingDiscrete and RescaleCFG nodes in stock ComfyUI; this node just does it for you when the filename smells like vpred. For a normal eps checkpoint, it behaves exactly like the core loader plus extra string outputs.

Outputs

model, clip, vae as usual, then ckpt_name, ckpt_hash (an actual file hash - handy for logging or exact reproduction), ckpt_fullpath, sampling (the resolved mode, so you can see if auto_vpred kicked in), and d2_pipe. Wire that last one to a D2 KSampler and you're done with connections.

Installing it

Via ComfyUI Manager, search "D2-nodes-ComfyUI", or:

cd ComfyUI/custom_nodes
git clone https://github.com/da2el-ai/D2-nodes-ComfyUI

Then restart. No extra Python deps beyond piexif and charset-normalizer, no model downloads. Since v32.0.0 the pack needs ComfyUI's newer V3 schema; on an old build, use a version before 32.0.0.

Watch out for

The d2_pipe input on this node is for merging into an existing pipe (used with XY Plot Easy loops), not something you need day one. And remember: auto_vpred keys off the filename, so a vpred model renamed to something innocuous won't get the patch - and conversely a normal model with "vpred" in its name will. Check the sampling output if behavior surprises you.

CategoryD2

Inputs (6)

NameTypeDefaultDescription
ckpt_nameCOMBO0 options:
auto_vpredBOOLEANtrue
samplingCOMBO5 options: normal, eps, v_prediction, lcm, x0
zsnrBOOLEANfalse
multiplierFLOAT0.600–1
d2_pipeoptD2_TD2Pipe

Outputs (8)

NameTypeDescription
modelMODEL
clipCLIP
vaeVAE
ckpt_nameSTRING
ckpt_hashSTRING
ckpt_fullpathSTRING
samplingSTRING
d2_pipeD2_TD2Pipe