Transform Bbone Resize
Resizing bendy-bone segments on an armature, node-style
- BPY_OBJ
- value
- orient_type
- orient_matrix
- orient_matrix_type
- constraint_axis
- BPY_OBJ
Transform Bbone Resize is the armature-side tool in Avatar Graph's "the entire Blender operator library is now nodes" lineup. It wraps bpy.ops.transform.bbone_resize, which resizes the segments of a B-Bone - Blender's bendy bones, the ones that curve and squash instead of rotating rigidly. If you've ever rigged a spine, a tentacle, or a wagging tail with B-Bones, you've probably resized a segment by hand. This node lets you do it from inside a ComfyUI graph instead.
Fair warning before you get excited: the avatar pipeline this pack is famous for is shape-key driven, not skeleton driven. Eyes blink and mouths lip-sync via morph targets, with the armature mostly optional. So this node is for people doing something more ambitious alongside the avatar work - actually rigging the character with bendy bones and deforming them programmatically. It's a niche tool in a niche pack, but when you need to scale B-Bone segments headlessly, it's the only game in town.
How it works
Like the other Transform_* nodes, this one inherits the pack's EditOps base: it deselects everything, sets your BPY_OBJ as active, flips into edit/pose context, runs the operator, returns to object mode, and hands the same BPY_OBJ back. The wrap is 1:1 with Blender's operator, so all the parameters map straight across from what you'd see in Blender's redo panel.
The core input is value, a B_VECTOR3 - per-axis scaling applied to the selected B-Bone segments. orient_type and orient_matrix control the orientation space (Global/Local/a custom orientation you made with the Create Orientation node); constraint_axis is a B_BOOLEAN3 letting you lock which axes get resized; mirror mirrors the operation to the paired bone on the other side - genuinely useful if your rig is symmetrical and you don't want to do the job twice.
Inputs that matter
- BPY_OBJ - the armature to operate on.
- value - the
B_VECTOR3resize amount. This is the one you'll actually tune. - constraint_axis - lock axes (X/Y/Z booleans) so you only resize along the ones you mean.
- mirror - also apply to the mirrored bone. Leave off for single-side work.
Output: BPY_OBJ - the same armature, modified, for the next node.
Installing it
Part of the Avatar Graph pack from Avatech AI. ComfyUI Manager → search "Avatar Graph", or:
cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui
cd avatar-graph-comfyui && python -m pip install -r requirements.txt
Restart after. Pack-wide gotchas: bpy==3.6.0 pins you to Python 3.10.x (3.11+ and the pack fails to import), and first launch auto-downloads the SAM ViT-H model (~2.5 GB) to ComfyUI/models/sams plus two MediaPipe landmarker files, so the first boot is slow.
Common issues
- "No module named bpy" → Python 3.10.x required. This is the #1 install failure for the whole pack.
- Node seems to do nothing to a mesh object → it only does anything if the active object is an armature with B-Bones and you've selected the segments you mean. On a plain mesh it's a no-op that still passes the object through.
- Bone selection doesn't survive the run → edit-mode selection is set up per-node by the wrapper; make sure your chain actually reaches the bones you think it does.
- Scene resets per run - armature state from a previous execution is gone; build the rig chain in a single graph.
If you rig with bendy bones, this is a nice little automation hook. If you're doing the standard avatar thing, file it under "good to know exists."
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| valueopt | B_VECTOR3 | — | |
| orient_typeopt | B_ENUM | — | |
| orient_matrixopt | B_VECTOR9 | — | |
| orient_matrix_typeopt | B_ENUM | — | |
| constraint_axisopt | B_BOOLEAN3 | — | |
| mirroropt | BOOLEAN | false | — |
| release_confirmopt | BOOLEAN | false | — |
| use_accurateopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |