Combine Hooks [8]
The biggest switchboard in the hook family
- hooks_A
- hooks_B
- hooks_C
- hooks_D
- hooks_E
- hooks_F
- hooks_G
- hooks_H
- HOOKS
CombineHooks8 ("Combine Hooks [8]") is the biggest merge node in ComfyUI's hook family, and it's also the most honest: it doesn't do anything the 2-input version can't, it just saves you the nesting. Eight optional HOOKS inputs - hooks_A through hooks_H - come together into one HOOKS output. If you have more than four hook sources landing on a single conditioning, this is the node that keeps the graph readable.
What it actually is
Same combine_all_hooks mechanism as CombineHooks2 and CombineHooks4, just with eight slots. Each hook keeps its own strengths and keyframe schedule; the merge is a plain union. All eight inputs are optional, so you can wire one hook or all eight - empties are simply ignored. That's the pattern that makes this node pleasant: it's a fixed-size bus, and unused lanes don't cost you anything.
The honest take: eight hooks on one conditioning is a lot. In practice, most "eight" workflows are actually fewer hooks plus a couple of empty lanes for future expansion, or a group that includes a CombineHooks4 output feeding one of the slots so you can organize regions hierarchically - individual hooks at the leaves, CombineHooks8 as the trunk into a single Set Props node.
When you'd genuinely want it
Two cases. First, the big regional stack: several character/style/quality hooks that all belong to the same conditioning and you want the merge in one visible place rather than a chain of prev_hooks. Second, batch and experiment workflows where you swap hook sources around a lot - eight labeled slots make it trivial to mute or rewire one region without touching the rest of the graph.
There's also a subtle upside to the explicit slots: because every input is optional and independently wired, the node doubles as a mute dashboard. Disconnect a hook you're testing and the rest of the group keeps working. That's the same trick as the smaller combines, but with more room.
The inputs and output
hooks_Athroughhooks_H- all optional. Hook creators upstream, or other combines for hierarchy.- Output:
HOOKS, the merged group - into a Set Props node'shooksinput, same as any other hook wire.
The catch, stated plainly
Cost scales with how many hooks actually attach to conditioning. Every hooked region is a separate model pass during sampling, and community reports of severe slowdowns (people have benchmarked several-fold longer runs on 4070-class and even 4090 cards) usually involve exactly the kind of stacked multi-region workflow this node invites. Eight hooks all attached is eight-ish times the conditioning passes. If your generation suddenly takes an order of magnitude longer, that's not a bug - that's the feature's price tag. Trim to the smallest combine that fits.
The whole hooks family landed in ComfyUI core around December 2024 and is still marked experimental, so treat the API as slightly fluid. Search note: class CombineHooks8, display name "Combine Hooks [8]" - the bracket is part of the searchable name. No install needed, under advanced → hooks → combine.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| hooks_Aopt | HOOKS | — | |
| hooks_Bopt | HOOKS | — | |
| hooks_Copt | HOOKS | — | |
| hooks_Dopt | HOOKS | — | |
| hooks_Eopt | HOOKS | — | |
| hooks_Fopt | HOOKS | — | |
| hooks_Gopt | HOOKS | — | |
| hooks_Hopt | HOOKS | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| HOOKS | HOOKS | — |