Object Surfacedeform Bind
The Surfacedeform Bind node
- BPY_OBJ
- BPY_OBJ
Surfacedeform is the Blender modifier for "make this mesh follow the shape of that one." It's the classic tool for clothing tracking a body, or a hair piece tracking a head. Object Surfacedeform Bind is the node that runs the bind step - the moment where Blender bakes the relationship between the deformed mesh and its target, so that when the target deforms, the follower mesh deforms along with it. In an avatar rigging graph, that's how you get an eyelid that moves with the eyeball, or a shirt that rides along with the torso.
Mechanically this is one of the pack's auto-generated wrappers over a real Blender 3.6 operator: bpy.ops.object.surfacedeform_bind(). The Avatar Graph pack runs a headless Blender inside your ComfyUI process and these nodes just translate graph wires into bpy operator calls. The base class sets your BPY_OBJ as the active object and fires the operator; the output is that same object passed back down the wire.
Only two inputs here. BPY_OBJ is the mesh that owns the Surfacedeform modifier (the follower, not the target). modifier is a string naming which Surfacedeform modifier on that object to bind - if the object carries several modifiers you name the one you want; with one, leaving the default empty string usually does the right thing.
The thing to know before you reach for it: this node only does the bind. The modifier itself has to already exist on the object, with its target mesh assigned, or there's nothing to bind and you'll get a silent no-op. In the Avatar Graph flow that setup usually happens in an earlier mesh step, so this node is the "lock it in" moment. Also, binding a dense follower mesh to a target is real work - expect a visible pause, and expect it to repeat on every graph run, because the pack resets the whole Blender scene at the start of each execution. There's no persisted scene to be clever with.
Install is the same for every node in this pack: ComfyUI Manager → search "Avatar Graph", or git clone https://github.com/avatechai/avatar-graph-comfyui into ComfyUI/custom_nodes and pip install -r requirements.txt. Watch the Python version - bpy==3.6.0 needs 3.10, and the first startup downloads the ~2.4 GB SAM model plus mediapipe landmarker files, so the first run is slow no matter what.
If the bind seems to do nothing, check that (a) the modifier exists on your BPY_OBJ before this node runs, and (b) the node ordering in your graph puts the modifier-adding step before the bind. This is a sequencing problem, not a bug - and it's the kind of thing that only shows up in a graph because you can't click "Bind" in a viewport that isn't there.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| modifieropt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |