Nodes/Avatar Graph/Object Hook Select
ComfyUI Node

Object Hook Select

Which verts is this hook driving? This node answers

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Object Hook Select
  • BPY_OBJ
  • modifier
  • BPY_OBJ

Every hook has a vertex group under the hood - the set of verts it influences - and half of rigging is just "which verts, exactly?" Object_HookSelect answers that question in the most direct way possible: it selects the vertices that a named hook drives. It's the "Select" button from Blender's Hook modifier panel, shipped as a node in the Avatar Graph pack.

You use it the way you use any selection tool: to see what you're working with, and to hand that selection to the next node. In a graph, selection is a first-class input to the pack's edit-mode Mesh_* nodes, so Select becomes a building block rather than a debugging convenience.

How it works

It calls bpy.ops.object.hook_select(). Blender runs this in edit mode: the verts in the named hook's influence set get selected, everything else gets deselected, and you can then act on them. In the Avatar Graph flow that usually means: Select the hook's verts → feed the result into a node that modifies them (move, assign to another hook, add to a vertex group).

Inputs:

  • BPY_OBJ - the mesh; sets active in the embedded scene, passes through on output.
  • modifier - the hook modifier name, typed as a B_ENUM string through the pack's ENUM (Blender) helper node.

As with every hook node in this pack, that modifier string has to match the modifier's exact name (Hook, Hook.001, ...). This is the trap: no dropdown, just a name you supply, and a mismatch silently finds nothing.

When you'd use it in an avatar graph

Two main cases. First, verification: after you hook a fringe or ponytail, Select the verts and confirm the influence set is what you expected - the classic "why is my ear following the hair" problem is usually a hook with an over-broad vertex set. Second, composition: use Select to grab a hook's verts and reassign them elsewhere, or to copy the selection forward so a later Object_HookAssign or mesh edit operates on exactly that region.

Inputs and outputs

  • BPY_OBJ - the mesh whose hook you're inspecting.
  • modifier - hook modifier name (ENUM helper).
  • BPY_OBJ output - same object, pass-through.

Installing it

Part of Avatar Graph (avatechai/avatar-graph-comfyui). ComfyUI Manager: search "Avatar Graph". Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui
cd avatar-graph-comfyui && python -m pip install -r requirements.txt

Pack-level constraints apply: bpy==3.6.0 wants Python 3.10.x, and first launch auto-downloads the SAM ViT-H checkpoint (~2.5 GB) plus MediaPipe models. If the pack won't register, Python version is the first suspect.

Common issues

The modifier string mismatch is the #1 gotcha - this node is quiet when it fails, so a typo reads as "nothing happened." Also remember it's an edit-mode operator: run it in object mode and you'll get an operator error instead of a selection. And note this selects the hook's influence set, not the hook target - new users expect the empty to light up and then get confused. The pack is still being actively changed per its README, so pull updates if hooks misbehave.

Categoryblender

Inputs (2)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
modifieroptB_ENUM

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ