Checkpoint Loader v3 (Pipe)
Load Flux and SD3's split files like a human
- pipe
The era of "one .safetensors file contains everything" is over for modern models. Flux ships as a separate diffusion model plus two or three text encoders, SD3 does the same, and the stock checkpoint loader chokes on that layout. Checkpoint Loader v3 (Pipe) is RvTools' answer: it can load either a classic all-in-one checkpoint or a split unet + separate CLIPs combo, apply fp8 weight dtypes, and still hand you a single standard pipe on the way out.
How it works
The node branches on load_unet_checkpoint:
false(default) - loads a regularckpt_namewithload_checkpoint_guess_config, the classic path.true- loads a diffusion model file fromunet_nameviaload_diffusion_model, withweight_dtypeapplied:fp8_e4m3fn,fp8_e4m3fn_fast, orfp8_e5m2for memory savings (the_fastvariant also turns on fp8 optimizations). This is the path for Flux/SD3-style unet files.
On the CLIP side, baked_clip (default on) uses the checkpoint's own CLIP when available. Turn it off and you supply up to three separate CLIP files (clip_name1–clip_name3) plus a clip_type_ dropdown that tells ComfyUI what family they belong to - flux, flux2, sd3, sdxl, wan, ltxv, hunyuan_video, and a couple dozen more. The node then merges the one/two/three clips it finds into a single CLIP and packs the usual 9-slot RvTools pipe.
The inputs that matter
ckpt_name+load_unet_checkpoint = false- the classic path.unet_name+load_unet_checkpoint = true+weight_dtype- the split-model path.clip_name1/2/3+clip_type_- whenbaked_clipis off. For Flux you'll typically feed t5 and clip_l, and the clip_type matters.vae_name-Baked VAEworks for classic checkpoints; a split unet load has no baked VAE, so you must pick a real VAE file there (the node raises a clear error if you don't).enable_clip_layer+stop_at_clip_layer- optional CLIP truncation when using the baked clip.
Output is a single pipe - model, clip, vae, latent, width (8), height (8), batch_size (1), model_name, vae_name.
What it saves you
For a Flux workflow this replaces the usual tangle of "Load Diffusion Model" + separate "Load CLIP" nodes with one node, and the fp8 options let you run bigger unets on a tight VRAM budget - Q8-style quantizers get all the love, but fp8_e4m3fn is a legit middle ground. The clip_type_ list is also a nice tour of how far the ecosystem has spread, from stable_cascade to ovis.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI-RvTools_v2
Restart ComfyUI or use ComfyUI Manager (search "ComfyUI-RvTools_v2"). No downloads from the pack - you supply the checkpoint/unet and CLIP files.
Gotchas
The error messages are the useful kind, but read them: mismatched load_unet_checkpoint + missing VAE is the #1 way people hit a wall here, and the node tells you exactly what combination it wants. The clip_type_ must match the files you picked - feeding sd3-type files with clip_type_=flux will misbehave. And the usual pack story: deprecated in favor of ComfyUI_Eclipse (which inherited and improved this loader), and v1-repo node names can't be installed anymore. This is the most genuinely useful node in the loader family - if you run Flux or SD3 on a single pipe, it earns its keep.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | None | 1 options: None |
| unet_name | COMBO | None | 1 options: None |
| weight_dtype | COMBO | 4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2 | |
| clip_name1 | COMBO | None | 1 options: None |
| clip_name2 | COMBO | None | 1 options: None |
| clip_name3 | COMBO | None | 1 options: None |
| clip_type_ | COMBO | flux | 25 options: flux, flux2, sd3, sdxl, stable_cascade, stable_audio, +19 |
| vae_name | COMBO | 1 options: Baked VAE | |
| baked_clip | BOOLEAN | true | — |
| enable_clip_layer | BOOLEAN | true | — |
| stop_at_clip_layer | INT | -2-24–-1 | — |
| load_unet_checkpoint | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pipe | pipe | — |