Nodes/ComfyUI Smart Model Loader/IO Checkpoint Loader
ComfyUI Node

IO Checkpoint Loader

Unpack, override, and merge the pipe

By r-vage·Created 29 days ago·Updated 4 days ago· 2
IO Checkpoint Loader
  • pipe
  • model
  • clip
  • vae
  • audio_vae
  • latent
  • sampler_name
  • scheduler
  • pipe
  • model
  • clip
  • vae
  • audio_vae
  • latent
  • steps
  • cfg
  • sampler_name
  • scheduler
  • flux_guidance
  • clip_skip
  • width
  • height
  • batch_size
  • model_name
  • vae_name
  • lora_names
  • seed
  • denoise
steps
cfg
flux_guidance
clip_skip
width
height
batch_size
model_name
vae_name
lora_names
seed
denoise

The pipe-first style is great until you need a value out of the pipe - or you need to change one thing mid-chain without rebuilding the whole bundle. IO Checkpoint Loader [Eclipse] is the valve that sits on that pipe. It takes an incoming PIPE plus a pile of optional direct inputs, merges them, and pushes the result back out in two forms: a new merged PIPE, and every field on its own individual socket.

It's the unpacker and the overrider in one. The merge rule is simple and worth internalizing: direct inputs win; the pipe fills in anything you didn't connect. Wire a model in and it replaces the pipe's model; leave it unwired and the pipe's value flows through. If a value is missing from both, that output is None - the node doesn't invent anything. One detail from the source: if width/height are absent but a latent is present, it derives dimensions from the latent's spatial downscale ratio (8 by default), so you don't need dimension wires for simple resolution math.

The inputs

The pipe input plus up to 19 optional direct values: model, clip, vae, audio_vae (the LTXV/LTX2 extra, slotted right after vae), latent, steps, cfg, sampler_name, scheduler, flux_guidance, clip_skip, width, height, batch_size, model_name, vae_name, lora_names, seed, denoise. sampler_name and scheduler are * (any-type) sockets so they'll accept a string from anywhere.

The outputs

All twenty, in stable order: the merged pipe first, then model, clip, vae, audio_vae, latent, the sampler fields (steps, cfg, sampler_name, scheduler, flux_guidance, clip_skip), the dimensions (width, height, batch_size), the names (model_name, vae_name, lora_names), and seed/denoise. Socket order is locked for workflow compatibility - saved graphs reload with the same layout, no re-wiring.

That flat mirror of every pipe key is the real feature. Wire the pipe from your Smart Model Loader in here, then drag individual outputs to a KSampler, a CLIP Text Encode, a VAE Decode, and a Save Image metadata field - without ever pulling the bundle apart manually. Or use it mid-graph to override one field (say, steps from a UI control) while the rest of the pipe flows through untouched.

Installing

cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI_SmartModelLoader.git
cd ComfyUI_SmartModelLoader
python -m pip install -r requirements.txt

or ComfyUI Manager → ComfyUI Smart Model Loader, restart. It's part of the pack, so no separate install.

Common issues

  • Output is None when you expected a value - you didn't connect that input and the pipe didn't carry it. Check the upstream loader actually emitted it (e.g. vae is only in the pipe if a VAE chip/source was active).
  • "Why did my override not stick?" - the override only applies if the direct input is actually connected. An unwired socket silently passes the pipe value through.
  • Video pipeline missing audio - you need the audio_vae output specifically; it's the LTXV/LTX2 socket, and it only carries a value if the pipe has one.
Category🌒 Smart Model Loader/ Pipe

Inputs (20)

NameTypeDefaultDescription
pipeoptPIPEOptional input for 'pipe'.
modeloptMODELOptional input for 'model'.
clipoptCLIPOptional input for 'clip'.
vaeoptVAEOptional input for 'vae'.
audio_vaeoptVAEOptional input for 'audio_vae'.
latentoptLATENTOptional input for 'latent'.
stepsoptINTOptional input for 'steps'.
cfgoptFLOATOptional input for 'cfg'.
sampler_nameopt*Optional input for 'sampler_name'.
scheduleropt*Optional input for 'scheduler'.
flux_guidanceoptFLOATOptional input for 'flux_guidance'.
clip_skipoptINTOptional input for 'clip_skip'.
widthoptINTOptional input for 'width'.
heightoptINTOptional input for 'height'.
batch_sizeoptINTOptional input for 'batch_size'.
model_nameoptSTRINGOptional input for 'model_name'.
vae_nameoptSTRINGOptional input for 'vae_name'.
lora_namesoptSTRINGOptional input for 'lora_names'.
seedoptINTOptional input for 'seed'.
denoiseoptFLOATOptional input for 'denoise'.

Outputs (20)

NameTypeDescription
pipePIPE
modelMODEL
clipCLIP
vaeVAE
audio_vaeVAE
latentLATENT
stepsINT
cfgFLOAT
sampler_name*
scheduler*
flux_guidanceFLOAT
clip_skipINT
widthINT
heightINT
batch_sizeINT
model_nameSTRING
vae_nameSTRING
lora_namesSTRING
seedINT
denoiseFLOAT