Nodes/ComfyUI-InstantTensorLoaders/Instant Load ControlNet Model (diff)
ComfyUI Node

Instant Load ControlNet Model (diff)

For ControlNets that need your base model

By redstonewhite·Created 4 months ago·Updated 4 months ago· 0
Instant Load ControlNet Model (diff)
  • model
  • CONTROL_NET
control_net_name

This is the sibling node to the plain Instant Load ControlNet Model, and the "diff" in the name matters. Some ControlNet files are architecture-dependent - they don't carry enough information to build themselves, so the loader needs your base diffusion model handed in alongside the ControlNet weights to construct the correct version. ComfyUI's stock answer to that is a node called "Load ControlNet Model (diff)," and this is its InstantTensor port: same extra MODEL input, same InstantTensor memory behavior.

How to tell if you need it

The tell is in your workflow. If the node is called Load ControlNet Model (diff) and has a MODEL wire coming into it from your checkpoint loader, you need this node. If it's a plain Load ControlNet Model with no model wire, you need the non-diff sibling in this pack. They're not interchangeable - wiring the wrong one gives you a type mismatch at best and a silently wrong ControlNet build at worst. Most modern union ControlNets load fine through the plain path; the diff variant exists for the files that explicitly want the base model.

Inputs and outputs

  • model - a MODEL input. Connect it from your checkpoint or UNet loader; it's the architecture context the diff ControlNet builds against.
  • control_net_name - dropdown of everything in ComfyUI/models/controlnet.
  • CONTROL_NET - the output, fed into a ControlNetApply node with your conditioning. Once it's in the graph, the control weight and start/end step knobs are the ones that steer the result.

Mechanically it's the same generic InstantTensor load path as its plain sibling: the .safetensors is read via instanttensor.safe_open, tensors are cloned once into CUDA, and the state dict loads in place with assign=True - so you avoid holding a second full copy of the ControlNet in VRAM while it builds.

Common issues

Pack-level rules still apply: CUDA only (a CPU-torch ComfyUI errors immediately), the instanttensor pip package must be installed or you get "The instanttensor package is required for CUDA instant loading," and only .safetensors files get the fast treatment - other formats fall through to ComfyUI's normal loader. If you see an error, check those two things before anything else. And remember this pack is young (a single commit as of May 2026, no community lore), so if something does break there's no thread to search - the stock DiffControlNetLoader is your fallback for any file this can't handle.

How to install

ComfyUI Manager → search ComfyUI-InstantTensorLoaders → install and accept the dependency install (that's instanttensor, the pack's only requirement). Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/redstonewhite/ComfyUI-InstantTensorLoaders

Restart ComfyUI. The node sits under loaders/instanttensor next to its non-diff sibling. If the pip dependency missed your environment, pip install instanttensor in the venv that runs ComfyUI and restart.

Categoryloaders/instanttensor

Inputs (2)

NameTypeDefaultDescription
modelMODEL
control_net_nameCOMBO0 options:

Outputs (1)

NameTypeDescription
CONTROL_NETCONTROL_NET