Nodes/Avatar Graph/Object Correctivesmooth Bind
ComfyUI Node

Object Correctivesmooth Bind

Capture the base pose for a Corrective Smooth modifier

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Object Correctivesmooth Bind
  • BPY_OBJ
  • BPY_OBJ
modifier

A direct wrap of bpy.ops.object.correctivesmooth_bind(modifier) - the "Bind" button on Blender's Corrective Smooth modifier. Corrective Smooth is meant to fix volume loss and pinching from other deformers (an Armature modifier's rest pose, typically) by comparing the mesh's current shape against a captured "bind" reference; this node is what captures that reference.

Where it fits in Avatar Graph

Avatar Graph (avatechai/avatar-graph-comfyui) rigs a flat character image into a real-time interactive avatar - segmentation, mesh layers, a "Shape Flow" runtime graph, exported through Avatar Main Output. The pack's own rigging model works through shape keys and Shape Flow, not Blender's modifier stack, so this node sits outside the documented pipeline. It belongs to the much larger family the pack generates by exposing Blender's Object operators directly - useful if you're layering conventional Blender deformation fixes on top of a rig you built elsewhere, not something the standard tutorial touches.

How it works

A Corrective Smooth modifier needs a "before" reference to correct against. Binding captures the mesh's current shape at bind time as that reference; from then on, the modifier compares live deformation against the bound shape and applies a corrective smoothing pass to counteract distortion introduced by modifiers earlier in the stack. Bind it at the wrong pose (mid-deformation, say, instead of rest pose) and the correction will be wrong in the same way - this operator doesn't validate what "correct" looks like, it just captures whatever shape is current.

Inputs and outputs

  • modifier (default "") - the name of the Corrective Smooth modifier to bind, as a plain string. It has to match an existing modifier already on the object; this node doesn't create one.
  • BPY_OBJ (optional) - the object carrying that modifier. Unwired, it falls back to Blender's active object.

Output: BPY_OBJ - the same object, passed through for chaining, matching every other node in this family.

How to install it

ComfyUI Manager: search "avatar-graph-comfyui", install, restart. Manual clone:

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

bpy requires Python 3.10.x specifically - the requirement that actually causes install failures. Windows gets a prebuilt Python 3.10 ComfyUI zip from the README; on Mac/Linux, set up a dedicated conda env (conda create --name comfyui python=3.10). Restart with --enable-cors-header if you want the live avatar preview to work with editor.avatech.ai - exports work without it.

Common issues & troubleshooting

Install trouble is almost always about Python version - a 3.11/3.12 environment, the default on most current ComfyUI installs, can't load bpy. There's also a real report of Avatar Graph leaving a ComfyUI Desktop install badly broken after install (an oversized logo, an unexpected audio-permission popup) severe enough that a full reinstall didn't fully clear it - test in a spare, portable ComfyUI instance first if you're not already sandboxed on 3.10.

For this node: if it silently does nothing, the modifier string almost certainly doesn't match the name of an actual Corrective Smooth modifier on the target object - modifier names in Blender are case-sensitive and get suffixed (.001, etc.) if duplicated, so a typo or a renamed modifier is the first thing to check. And if the corrective effect looks wrong after binding, double-check what pose the mesh was actually in at the moment this node ran - that's the shape it locked in as "correct."

Categoryblender

Inputs (2)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
modifieroptSTRING

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ