Nodes/ComfyUI/Combine Hooks [8]
ComfyUI Node Runs on cloud

Combine Hooks [8]

The biggest switchboard in the hook family

By Comfy-Org·Created 4 years ago·Updated about an hour ago· 129,962
Combine Hooks [8]
  • 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_A through hooks_H - all optional. Hook creators upstream, or other combines for hierarchy.
  • Output: HOOKS, the merged group - into a Set Props node's hooks input, 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.

Categoryadvanced/hooks/combine

Inputs (8)

NameTypeDefaultDescription
hooks_AoptHOOKS
hooks_BoptHOOKS
hooks_CoptHOOKS
hooks_DoptHOOKS
hooks_EoptHOOKS
hooks_FoptHOOKS
hooks_GoptHOOKS
hooks_HoptHOOKS

Outputs (1)

NameTypeDescription
HOOKSHOOKS