Combine Hooks [4]
A four-way merge for real multi-region workflows
- hooks_A
- hooks_B
- hooks_C
- hooks_D
- HOOKS
Two regions is where you start. Four is where it gets real - left character, right character, background, and a detail boost, each with its own hook. CombineHooks4 ("Combine Hooks [4]") is the four-input version of the hook merge, and it exists because nobody wants to build a three-node nest of 2-input combines to do what one node does in a single line.
What it is
Identical in spirit to CombineHooks2, just bigger. Four optional HOOKS inputs - hooks_A, hooks_B, hooks_C, hooks_D - merge into one HOOKS output. Any of them can be left empty and the node still works, merging whatever's there. It's a straight union of hook groups: each hook keeps its own model/CLIP strengths and its own keyframe schedule, nothing multiplies, nothing cancels.
That "any input can be empty" behavior is worth more than it looks. It means you can wire four hook sources into one CombineHooks4 and mute a region by disconnecting (or bypassing) just its wire - the rest of the group sails through unaffected. In multi-region workflows that's the difference between a node you tolerate and a node you build around.
Why the 4-input version exists
The hooks system (core since December 2024, still experimental) gives you three combine sizes: 2, 4, and 8. They're not different features - combine_all_hooks is the same function behind all of them - they're different ergonomics. CombineHooks4 is the sweet spot for the classic regional stack: three actual regions plus one global/default-style hook, all landing on a single Set Props node. The 8-input version is for when you're coordinating many creators and don't want to think about tree shape; the 2-input version is for everything smaller. If your mental model of the image is "a few regions," this is the node that matches it.
The inputs and output
hooks_Athroughhooks_D- all optional. Feed fromCreateHookLora,CreateHookModelAsLora, or the output of another combine.- Output:
HOOKS, the merged group.
Downstream it works exactly like any other HOOKS wire: into a ConditioningSetProperties or a pair Set Props node's hooks input, where it gets stamped onto conditioning and finally reaches the sampler.
Fair warning on cost
Every hook in that merged group that actually attaches to conditioning means a separate model pass during sampling. A four-hook regional workflow is not four times slower than plain generation - but it's unmistakably slower, and people have reported workflows getting several times longer once the hook stack goes in. That's the bill for regional weights. If you're on a modest GPU, start with CombineHooks2, get the workflow working, and only grow to four when the two-region version behaves.
Also note the naming for search: the class is CombineHooks4 but the display name is "Combine Hooks [4]" - in ComfyUI's search you'll likely find it by the bracketed form. Ships with core, no install, under advanced → hooks → combine.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| hooks_Aopt | HOOKS | — | |
| hooks_Bopt | HOOKS | — | |
| hooks_Copt | HOOKS | — | |
| hooks_Dopt | HOOKS | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| HOOKS | HOOKS | — |