Nodes/ComfyUI-MultiGPU/CheckpointLoaderAdvancedDisTorch2MultiGPU
ComfyUI Node

CheckpointLoaderAdvancedDisTorch2MultiGPU

Independent offload control for UNet, CLIP, and VAE

By pollockjj·Created 2 years ago·Updated 3 months ago· 925
CheckpointLoaderAdvancedDisTorch2MultiGPU
    • MODEL
    • CLIP
    • VAE
    ckpt_name
    unet_compute_devicecpu
    unet_virtual_vram_gb4.0
    unet_donor_devicecpu
    clip_compute_devicecpu
    clip_virtual_vram_gb2.0
    clip_donor_devicecpu
    vae_devicecpu
    unet_expert_mode_allocations
    clip_expert_mode_allocations
    high_precision_lorastrue
    eject_modelstrue

    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.

    Categorymultigpu/distorch_2

    Inputs (12)

    NameTypeDefaultDescription
    ckpt_nameCOMBO0 options:
    unet_compute_deviceCOMBOcpu1 options: cpu
    unet_virtual_vram_gbFLOAT4.00–128
    unet_donor_deviceCOMBOcpu1 options: cpu
    clip_compute_deviceCOMBOcpu1 options: cpu
    clip_virtual_vram_gbFLOAT2.00–128
    clip_donor_deviceCOMBOcpu1 options: cpu
    vae_deviceCOMBOcpu1 options: cpu
    unet_expert_mode_allocationsoptSTRING
    clip_expert_mode_allocationsoptSTRING
    high_precision_lorasoptBOOLEANtrue
    eject_modelsoptBOOLEANtrue

    Outputs (3)

    NameTypeDescription
    MODELMODEL
    CLIPCLIP
    VAEVAE