Middle Weight Extras ππ π π
Multiply a ControlNet's middle block in ComfyUI
- cn_extras
- cn_extras
This is a small modifier node that multiplies a ControlNet's middle block weight. It doesn't produce weights on its own - it produces a cn_extras object that you attach to a real weights node, and when that weights node builds its final profile, the middle block gets scaled by whatever you set here. Think of it as a targeted tweak you layer on top, not a standalone control.
Why single out the middle block? In the SD-style architecture the middle block sits at the network's bottleneck and carries a lot of the ControlNet's structural influence - it's the strongest point in the pack's default soft-weight profile (middle defaults to 1.0 while the shallow blocks sit near 0.1). Nudging just the middle up or down is a quick way to make a ControlNet grip harder or looser on overall structure without redrawing the whole per-block curve.
How it fits in the graph
The cn_extras system is how this pack layers optional weight modifiers. Most weights nodes (Scaled Soft Weights, the Custom Weights nodes, Default Weights) have a cn_extras input. You build up extras with nodes like this one and chain them in. This node both accepts an incoming cn_extras (so you can stack several extras together) and outputs a cn_extras carrying your middle multiplier.
Inputs and outputs
- middle_mult (required, default 1.0) - the multiplier applied to the ControlNet's middle block weight. Above 1.0 strengthens the middle; below 1.0 weakens it.
- cn_extras (optional) - an incoming extras object to build on, so multiple extras stack.
Output: cn_extras (type CN_WEIGHTS_EXTRAS) - wire this into the cn_extras input of a weights node (or into another extras node to keep chaining).
Installing the pack
ComfyUI Manager β Install Custom Nodes β "ComfyUI-Advanced-ControlNet" β restart. Or cd ComfyUI/custom_nodes && git clone https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet and restart. Pure ComfyUI, from Kosinkadink. No preprocessors or ControlNet models bundled - comfyui_controlnet_aux and ComfyUI/models/controlnet respectively.
Common gotchas
The big one: this node does nothing by itself. It has to feed the cn_extras input of an actual weights node that's attached to your ControlNet. Leave its output dangling and middle_mult has zero effect - no error, just no change. If you set it and see nothing, check that the chain reaches a weights node and that weights node reaches your Apply/ControlNet.
Second, it only touches the middle block. If you wanted to reshape more of the profile, you want a Custom Weights node (which exposes every block), not this. And because it's a multiplier, it stacks on top of whatever the weights node already assigned to the middle - a middle_mult of 2.0 on a weights node whose middle is 1.0 lands at 2.0, then still multiplies against the Apply node's overall strength downstream.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| middle_mult | FLOAT | 1.0000β10 | β |
| cn_extrasopt | CN_WEIGHTS_EXTRAS | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| cn_extras | CN_WEIGHTS_EXTRAS | β |