CheckpointLoaderAdvancedDisTorch2MultiGPU
Independent offload control for UNet, CLIP, and VAE
- MODEL
- CLIP
- VAE
This is the most parameters you'll find on any node in this pack, and there's a real reason for it. Where CheckpointLoaderSimpleDisTorch2MultiGPU applies one virtual_vram_gb slider that mostly targets the UNet, this node gives the UNet and the CLIP their own complete DisTorch2 control sets, plus a plain device pin for the VAE - one node, three independently-tunable components.
The inputs, grouped by component
- UNet:
unet_compute_device,unet_virtual_vram_gb(default 4),unet_donor_device,unet_expert_mode_allocations- the standard DisTorch2 pattern, scoped to just the diffusion weights. - CLIP:
clip_compute_device,clip_virtual_vram_gb(default 2 - half the UNet's default, which tracks: text encoders are usually smaller, so you need less headroom pushed off to make room),clip_donor_device,clip_expert_mode_allocations. - VAE:
vae_device- just a device pin, no split controls at all. The VAE is small and runs briefly (once to encode, once to decode), so DisTorch2's per-layer slicing isn't worth the complexity here; you pin it whole to wherever's convenient instead.
high_precision_loras
The one field unique to this node in the whole batch, defaulting to true. When a checkpoint's weights are spread across devices and precisions rather than sitting whole in one place, applying a LoRA patch on top of that split risks losing more accuracy than the same patch applied to a model at full precision in one location. This echoes a documented problem in quantized formats generally: GGUF, for instance, has to dequantize, patch, and requantize each layer when a LoRA is applied, and the community's own advice on VRAM-capped setups is to drop a quant level rather than fight that cycle. Leaving high_precision_loras on trades a little speed or memory for keeping LoRA math accurate across the split; if you're not using any LoRAs, it's a no-op you can safely ignore.
The rest
eject_models (default true) applies to the whole bundle. Outputs: MODEL, CLIP, VAE.
How to install it
ComfyUI Manager: search ComfyUI-MultiGPU, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/pollockjj/ComfyUI-MultiGPU
then restart. No extra dependencies.
Common issues & troubleshooting
When to actually reach for this over the Simple variant. Once CheckpointLoaderSimpleDisTorch2MultiGPU's single slider isn't granular enough - say you want to be aggressive offloading the UNet while keeping CLIP fully resident because your workflow does heavy prompt-encoding work - this is the node that lets you tune each independently instead of accepting one shared setting.
Six device/VRAM fields is a lot of surface area to mistune at once. Start from the defaults (UNet at 4GB virtual VRAM, CLIP at 2GB) and the console's memory-budget summary at load time, then adjust one component at a time rather than guessing all three simultaneously.
LoRAs and this node together. If quality looks off after applying a LoRA on a heavily-split checkpoint, confirm high_precision_loras is actually on - it should be, by default, but it's the first thing worth checking.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | 0 options: | |
| unet_compute_device | COMBO | cpu | 1 options: cpu |
| unet_virtual_vram_gb | FLOAT | 4.00–128 | — |
| unet_donor_device | COMBO | cpu | 1 options: cpu |
| clip_compute_device | COMBO | cpu | 1 options: cpu |
| clip_virtual_vram_gb | FLOAT | 2.00–128 | — |
| clip_donor_device | COMBO | cpu | 1 options: cpu |
| vae_device | COMBO | cpu | 1 options: cpu |
| unet_expert_mode_allocationsopt | STRING | — | |
| clip_expert_mode_allocationsopt | STRING | — | |
| high_precision_lorasopt | BOOLEAN | true | — |
| eject_modelsopt | BOOLEAN | true | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |