Nodes/ComfyUI-MultiGPU/DiffControlNetLoaderDisTorch2MultiGPU
ComfyUI Node

DiffControlNetLoaderDisTorch2MultiGPU

The legacy 'diff' ControlNet format, offload-aware

By pollockjj·Created 2 years ago·Updated 3 months ago· 925
DiffControlNetLoaderDisTorch2MultiGPU
  • model
  • CONTROL_NET
control_net_name
compute_devicecpu
virtual_vram_gb4.0
donor_devicecpu
expert_mode_allocations
eject_modelstrue

This is the one ControlNet loader in the batch with an extra required input: model (MODEL). That's because it's built for "diff" ControlNets - an older publishing format from ControlNet's earliest days, where the file stores a weight delta relative to a specific base model rather than shipping as a standalone network. To reconstruct the actual ControlNet, the loader needs your base model as a reference to apply that delta against. DiffControlNetLoaderDisTorch2MultiGPU is the DisTorch2-aware version of core ComfyUI's DiffControlNetLoader, with the split-across-devices toolkit layered on top.

Should you actually be using this one?

Only if the specific file you have is genuinely published in diff format - check the model card before assuming. Almost everything released since the SDXL era (union checkpoints, Flux ControlNets) ships as a standalone network through the plain ControlNetLoader path instead. This node exists for compatibility with older releases, not as the default choice for anything you download today.

The format itself is a holdover from ControlNet's earliest SD1.x/2.x days, when some releases shipped only the delta between a base model's weights and the ControlNet-augmented ones rather than a full standalone network, to keep file sizes down. It's rarer now that storage and bandwidth aren't the constraint they once were, but old downloads in this format still turn up, which is why ComfyUI core - and by extension this pack - keeps the loader around.

The inputs and outputs that matter

  • model - your base checkpoint's MODEL output, required. This is what the delta gets applied against.
  • control_net_name - the diff ControlNet file.
  • compute_device, virtual_vram_gb (default 4), donor_device, expert_mode_allocations, eject_models (default true) - the standard DisTorch2 controls.
  • Output: CONTROL_NET → your ControlNetApply node, same as any other ControlNet loader.

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

Nonsensical conditioning. If a modern, non-diff ControlNet file gets fed through this loader - or the model doesn't match the base architecture the diff file was published against - the computed delta won't make sense. First confirm the file is genuinely diff-format and that model is the same family it was trained against.

You probably don't need aggressive offloading here. Legacy diff ControlNets tend to be smaller, single-purpose files from the SD1.x/2.x era, unlike today's large multi-condition union checkpoints. Start with the default virtual_vram_gb rather than assuming you need a big number.

Not sure if your file needs this loader at all? Try the plain ControlNetLoaderDisTorch2MultiGPU first - most current downloads work through that path, and this node is specifically for the older diff format.

Splitting a small file rarely pays off. Legacy diff ControlNets are typically much smaller than modern union checkpoints, so unless your donor device is genuinely out of room too, a plain device pin (via DiffControlNetLoaderMultiGPU) is usually simpler and just as effective as tuning virtual_vram_gb here.

Categorymultigpu/distorch_2

Inputs (7)

NameTypeDefaultDescription
modelMODEL
control_net_nameCOMBO0 options:
compute_deviceoptCOMBOcpu1 options: cpu
virtual_vram_gboptFLOAT4.00–128
donor_deviceoptCOMBOcpu1 options: cpu
expert_mode_allocationsoptSTRING
eject_modelsoptBOOLEANtrue

Outputs (1)

NameTypeDescription
CONTROL_NETCONTROL_NET