HSWQ ControlNet Loader (ConvRot INT8)
One ControlNet Loader, Two Class Names (This Is the Alias)
- control_net
Straight answer up front: this page is the same node as HSWQControlNetLoader, registered a second time under its old class name. In the pack's source it's literally one line - HSWQLoadConvRotINT8ControlNet = HSWQControlNetLoader - and both entries share the exact same display title, "HSWQ ControlNet Loader (ConvRot INT8)", same input, same output. If you see either name in your node menu, you're looking at the identical object. The changelog confirms it: the loader was renamed to HSWQControlNetLoader, and this name was kept around as an alias so saved workflows that reference the old class keep loading without breaking.
What it actually does
A loader that pulls ConvRot / TensorWise INT8-quantized ControlNets into VRAM at 8-bit precision. ComfyUI's stock ControlNet loader tries to build the model graph at the checkpoint's dtype - torch.int8 for a quantized file - and crashes with Only Tensors of floating point and complex dtype can require gradients. This node avoids that by building the graph in bfloat16 and injecting MixedPrecisionOps set up for int8_tensorwise, so the comfy_quant metadata gets honored and weights stay as INT8 QuantizedTensors in VRAM, running through ComfyUI's int8_linear kernel with online activation rotation for ConvRot layers.
It's also a full drop-in for ordinary ControlNets: if a file has no INT8 layers, the node silently delegates to the stock loader. FP16, FP8, BF16, whatever - it loads. The README's example use case is the Qwen Image Fun ControlNet, whose FLUX-style layout stock detection doesn't recognize; this loader handles that layout directly.
The surface
control_net_name- the only input, an enum of.safetensorsfiles inComfyUI/models/controlnet("ConvRot INT8 / standard ControlNet model (.safetensors)").CONTROL_NET- the output, wired into the stock Apply ControlNet node.
That's everything. No dtype picker, no device selector, no strength widget - the node sniffs the file and picks the right path.
Install and which name to use
Same pack either way, under Loaders:
cd ComfyUI/custom_nodes
git clone https://github.com/ussoewwin/ComfyUI-HSWQ-Loader-and-Tools
or ComfyUI Manager, searching "HSWQ" or ComfyUI-HSWQ-Loader-and-Tools, then restart. Keep ComfyUI itself reasonably current - the node runs off core's MixedPrecisionOps / INT8 kernels, not anything the pack installs for this node.
If you're building a new graph, use HSWQControlNetLoader - that's the canonical name. This alias mainly matters when you're opening an old workflow that already references it: it keeps working, and it'll behave identically. Either way you're running the same code, so don't lose sleep over which one you grabbed.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| control_net_name | COMBO | ConvRot INT8 / standard ControlNet model (.safetensors) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| control_net | CONTROL_NET | — |