Checkpoint Loader v2
One loader that gives you model, VAE, CLIP — and the latent to go with it
- model
- vae
- clip
- latent
Checkpoint Loader v2 [RvTools] loads a checkpoint and, in one shot, hands you model, VAE, CLIP, and a ready-made empty latent at a chosen resolution. The extra latent output is the whole reason this node exists - most loaders stop at the model trio, and you'd grab an Empty Latent Image node to finish the job. This one folds the latent in, with baked-in aspect-ratio presets.
Why you'd reach for it
Think of it as a loader plus a "start here" node. You pick a checkpoint, pick a VAE (or "Baked VAE"), decide whether to use the CLIP and at which clip-skip layer, and choose a resolution from a preset list or set width/height manually. The output latent is an empty tensor of exactly that resolution (divisible by 8, since latent space is 8× smaller than pixels), so you can wire model → KSampler, clip → text encode, and latent → sampler straight away. For quick single-model experiments it replaces three nodes with one.
The Baked_Clip toggle and stop_at_clip_layer (default -2, the classic CLIP skip for SD1.5/SDXL) mean you can apply clip-skip right at load time instead of bolting on a separate CLIP Set Last Layer node.
How it works
Under the hood it's comfy.sd.load_checkpoint_guess_config - the same engine the stock loader uses - with a few opinions layered on. vae_name of "Baked VAE" uses the VAE inside the checkpoint; pick a separate .safetensors and it loads that instead. If Baked_Clip is off, the CLIP output is None (fine for Flux-style models that don't use a CLIP, or when you're loading CLIP separately). The latent is torch.zeros([batch_size, 4, height//8, width//8]) - pure zeros, so the sampler starts from empty rather than noise.
The resolution presets cover the classic SD1.5 list (512×512, 512×768, 3:4, 16:9…) up through the SDXL set (1024×1024, 1216×832, 1536×640…). Pick a preset and it overrides width/height; pick "Custom" and the width/height widgets rule.
Inputs that matter: ckpt_name, vae_name, Baked_Clip, Use_Clip_Layer + stop_at_clip_layer, resolution (or width/height), batch_size.
Outputs: model, vae, clip, latent.
Install
Standard RvTools install:
- ComfyUI Manager → search "RvTools" → install ComfyUI-RvTools_v2 → restart.
- Or:
cd ComfyUI/custom_nodes && git clone https://github.com/r-vage/ComfyUI-RvTools_v2, then restart.
No downloads beyond your checkpoints - the loader reads whatever's in your models/checkpoints and models/vae folders. Pack deps (OpenCV, pilgram) install with it.
Gotchas
Watch the clip-skip setting if your checkpoint isn't SD1.5/SDXL. stop_at_clip_layer only means something to a CLIP-based text encoder; flow-matching models (Flux, Wan) don't use CLIP skip, and cranking it there does nothing useful. Same for the SD1.5/SDXL-centric resolution presets - a modern video or flow model won't care about 512×512. The Baked VAE option also assumes your checkpoint actually has a baked VAE; older or stripped checkpoints may not, in which case pick the separate VAE.
Pack context, briefly: RvTools v1's repo was pulled in early 2025 (breaking saved workflows, forcing users to copy the folder between installs), v2 renamed every node - that's why you'll see "Loader v2" instead of the v1 name in old graphs - and the pack is now deprecated in favor of ComfyUI_Eclipse. This loader is one of the pieces that migrated.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | 0 options: | |
| vae_name | COMBO | 1 options: Baked VAE | |
| Baked_Clip | BOOLEAN | true | — |
| Use_Clip_Layer | BOOLEAN | true | — |
| stop_at_clip_layer | INT | -2-24–-1 | — |
| resolution | COMBO | 23 options: Custom, 512x512 (1:1), 512x682 (3:4), 512x768 (2:3), 512x910 (9:16), 512x952 (1:1.85), +17 | |
| width | INT | 51216–32768 | — |
| height | INT | 51216–32768 | — |
| batch_size | INT | 11–4096 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| vae | VAE | — |
| clip | CLIP | — |
| latent | LATENT | — |