ComfyUI Node

Model Loader Pipe

The same loader, one wire instead of five

By r-vage·Created 29 days ago·Updated 3 days ago· 2
Model Loader Pipe
    • pipe
    featuresmemory_cleanup
    model_typeStandard Checkpoint
    ckpt_nameNone
    unet_nameNone
    nunchaku_nameNone
    qwen_nameNone
    zimage_nameNone
    gguf_nameNone
    weight_dtypedefault
    data_typebfloat16
    cache_threshold0.000
    attentionflash-attention2
    i2f_modeenabled
    cpu_offloadauto
    num_blocks_on_gpu30
    use_pin_memoryenable
    gguf_dequant_dtypedefault
    gguf_patch_dtypedefault
    gguf_patch_on_devicefalse
    enable_clip_layertrue
    stop_at_clip_layer-2
    lora_count1
    lora_switch_1false
    lora_name_1None
    lora_weight_11.00
    lora_switch_2false
    lora_name_2None
    lora_weight_21.00
    lora_switch_3false
    lora_name_3None
    lora_weight_31.00
    sampling_methodNone
    sampling_subtypeeps
    shift3.00
    base_shift0.50
    sampling_width1024
    sampling_height1024
    original_timesteps50
    zsnrfalse
    sigma_max120.000
    sigma_min0.002
    blocks_to_swap5
    offload_embeddingsfalse
    ltx_text_encoderNone

    This is the same model-loading engine as Model Loader [Eclipse], with exactly one difference you care about: instead of model/clip/vae/audio_vae/model_name on separate sockets, everything comes out of a single PIPE output. Nothing about the loading itself changes - same model_type, same name dropdowns, same LoRA slots, same blocks_to_swap. You're just choosing how the result travels.

    Think of it as the middle ground in this pack. The Smart Model Loader is the all-in-one that also creates your latent, sets your sampler, and manages templates. The plain Model Loader gives you direct wires for a conventional graph. Model Loader Pipe keeps your hands on the individual model files but commits to the pipe-first philosophy: one wire from here to wherever the model's actually used, with far less canvas sprawl between them.

    The PIPE it emits carries model (always), clip and vae when the checkpoint has them baked, plus model_name, is_nunchaku, and - if you enabled the LoRA or CLIP-trim features - lora_names and clip_skip. So a UNet flow works too: load your diffusion model here, add CLIP Loader and VAE Loader separately, and merge everything with the pack's IO Checkpoint Loader, which takes the pipe in and unpacks every field onto individual sockets. Or skip the unpack entirely and feed the pipe straight into Eclipse KSampler (Pipe), which reads the model and VAE out of it itself.

    One honest caveat before you adopt pipe-first everywhere: a single context wire is a wonderful tangle-killer, but it also hides which version of each value is inside. If you unpack model from a pipe that was assembled before a LoRA got applied, you'll silently run base weights - the connection is present, the contents are wrong. It's the same trade every context-bus design makes, and it's worth knowing about it before it bites you mid-experiment. Keep the pipe line short and don't be shy about unpacking at the point where you're actively iterating.

    Installing

    Same as every node in this pack:

    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 search ComfyUI Smart Model Loader in ComfyUI Manager. Restart ComfyUI. Nunchaku and GGUF model types need the respective ComfyUI-Nunchaku and ComfyUI-GGUF extensions; standard checkpoints and UNets don't.

    When to reach for it

    • You want a single authoritative model source feeding several consumers (KSampler + VAE Decode + metadata) without three copies of the file selected.
    • You're building a modular UNet/quantized graph and want one bundle to carry through IO Checkpoint Loader.
    • You like the Smart Model Loader's pipe style but find the chip bar and templates overkill for a fixed setup.

    It's a variant node, so there's no deep troubleshooting lore: if the pipe comes out empty, the usual suspects are a model_type that doesn't match your file, a missing extension for quantized formats, or a checkpoint with no baked CLIP/VAE when you expected one - which shows up as clip/vae being None inside the pipe rather than on a socket you can see.

    Category🌒 Smart Model Loader/ Loader

    Inputs (44)

    NameTypeDefaultDescription
    featuresSTRINGmemory_cleanupComma-separated feature list. JS combo-chip replaces this widget.
    model_typeCOMBOStandard CheckpointSelect model format
    ckpt_nameCOMBONoneSelect checkpoint file
    unet_nameCOMBONoneSelect UNet diffusion model
    nunchaku_nameCOMBONoneSelect Nunchaku Flux model
    qwen_nameCOMBONoneSelect Nunchaku Qwen model
    zimage_nameCOMBONoneSelect Nunchaku ZImage model
    gguf_nameCOMBONoneSelect GGUF model
    weight_dtypeCOMBOdefaultWeight dtype for UNet model
    data_typeCOMBObfloat16Model data type for Nunchaku
    cache_thresholdFLOAT0.0000–1Cache threshold for Nunchaku
    attentionCOMBOflash-attention2Attention implementation
    i2f_modeCOMBOenabledGEMM implementation
    cpu_offloadCOMBOautoCPU offload
    num_blocks_on_gpuINT301–60Blocks on GPU (Nunchaku Qwen/ZImage)
    use_pin_memoryCOMBOenableUse pinned memory
    gguf_dequant_dtypeCOMBOdefaultDequantization dtype
    gguf_patch_dtypeCOMBOdefaultLoRA patch dtype
    gguf_patch_on_deviceBOOLEANfalseApply patches on GPU
    enable_clip_layerBOOLEANtrueTrim baked CLIP to specific layer (Standard Checkpoint only)
    stop_at_clip_layerINT-2-24–-1CLIP layer to stop at
    lora_countCOMBO1Number of LoRA slots
    lora_switch_1BOOLEANfalseEnable LoRA 1
    lora_name_1COMBONoneLoRA 1 file
    lora_weight_1FLOAT1.00-10–10LoRA 1 model weight
    lora_switch_2BOOLEANfalseEnable LoRA 2
    lora_name_2COMBONoneLoRA 2 file
    lora_weight_2FLOAT1.00-10–10LoRA 2 model weight
    lora_switch_3BOOLEANfalseEnable LoRA 3
    lora_name_3COMBONoneLoRA 3 file
    lora_weight_3FLOAT1.00-10–10LoRA 3 model weight
    sampling_methodCOMBONoneSampling method: SD3 (shift=3.0), AuraFlow (shift=1.73), Flux (max_shift=1.15), Stable Cascade (shift=2.0), LCM (distilled), ContinuousEDM/V (continuous sampling), LTXV (video)
    sampling_subtypeCOMBOepsSubtype for ContinuousEDM sampling
    shiftFLOAT3.000–100Universal shift parameter (SD3: 3.0, AuraFlow: 1.73, Flux max_shift: 1.15, Stable Cascade: 2.0)
    base_shiftFLOAT0.500–100Base shift for Flux/LTXV sampling (default: 0.5)
    sampling_widthINT102416–32768Width for Flux sampling shift calculation
    sampling_heightINT102416–32768Height for Flux sampling shift calculation
    original_timestepsINT501–1000Original timesteps for LCM sampling (default: 50)
    zsnrBOOLEANfalseEnable zero-terminal SNR for LCM sampling
    sigma_maxFLOAT120.0000–1000Maximum sigma for ContinuousEDM/V sampling (EDM: 120.0, V: 500.0)
    sigma_minFLOAT0.0020–1000Minimum sigma for ContinuousEDM/V sampling (EDM: 0.002, V: 0.03)
    blocks_to_swapINT50–100Number of transformer blocks to offload from GPU to CPU. Higher = more VRAM saved but slower inference. Suggested ~value (max total blocks): flux/chroma ~10 (max 57), sd3 ~8 (max 24-38), wan ~10 (max 30-40), hunyuan-video ~10 (max 60), ltxv ~6 (max 28), cosmos ~8 (max 28-36), zimage ~10 (max 30), qwenimage ~20 (max 60), mochi ~10 (max 48), hidream ~10 (max 48). Set to 0 to disable.
    offload_embeddingsBOOLEANfalseAlso offload embedding and projection layers for extra VRAM savings.
    ltx_text_encoderCOMBONoneOptional LTX2/LTXV gemma text encoder (from the text_encoders/clip folder, GGUF or safetensors). When set, it is combined with the loaded Standard Checkpoint / UNet file's baked text-projection to build a correct LTXAV CLIP, overriding the (empty) baked CLIP. Leave as None for normal baked-CLIP behavior.

    Outputs (1)

    NameTypeDescription
    pipePIPE