Nodes/Avatar Graph/Mesh Polybuild Split At Cursor
ComfyUI Node

Mesh Polybuild Split At Cursor

Adding a vertex mid-edge, Poly Build style

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Mesh Polybuild Split At Cursor
  • BPY_OBJ
  • BPY_OBJ
mirrorfalse
use_proportional_editfalse
proportional_edit_falloff
proportional_size1.00
use_proportional_connectedfalse
use_proportional_projectedfalse
release_confirmfalse
use_accuratefalse

In Blender's Poly Build tool, clicking on an existing edge (rather than empty space) splits it, dropping a new vertex right where you clicked. This node is that "split" action, wrapped for ComfyUI - one more piece of the same interactive retopology tool as Mesh_PolybuildFaceAtCursor and its siblings.

What it is and why you'd reach for it

It isn't part of Avatar Graph's documented rigging pipeline (Create Mesh Layer → Modify Shape Key → Create Shape Flow → Avatar Main Output); it's part of the long tail this pack generates by wrapping essentially every operator in Blender's bpy.ops.mesh namespace, kept in sync by the README's generate_blender_types.py script. Normally, splitting an edge "at cursor" means the new vertex lands wherever your mouse was hovering along that edge - this node's schema has no cursor or position input, so there's nothing here to tell it where along the edge to split. Useful to know before assuming it's a precision tool for scripted mesh building.

How it works

It inserts a new vertex along an existing edge, subdividing it into two, and updates the adjoining faces so the mesh stays valid - the mechanical core of "split" as an operation, independent of exactly where on the edge the new vertex lands.

The inputs and outputs that matter

Same option set as several other Polybuild siblings in this pack:

  • mirror (boolean) - mirrors the operation across the mesh's configured symmetry.
  • use_proportional_edit plus proportional_edit_falloff (SMOOTH, SPHERE, ROOT, INVERSE_SQUARE, SHARP, LINEAR, CONSTANT, RANDOM) and proportional_size - Blender's proportional-editing falloff controls.
  • use_proportional_connected / use_proportional_projected - scope that falloff to connected geometry, or project it spatially.
  • release_confirm / use_accurate - interaction-timing flags inherited from the interactive tool.

Output is the pack's standard single BPY_OBJ.

How to install it

ComfyUI Manager: search Avatar Graph, install, restart. Or manually:

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

The pack is built on bpy, Blender packaged as a Python module, and bpy only ships wheels for specific Python minor versions - the README says it directly: Python 3.10.x, no substitutes. Windows users get a bundled embedded-Python-3.10 zip made for exactly this reason; macOS/Linux users should pin a conda create --name comfyui python=3.10 environment first. Restart with --enable-cors-header (--force-fp16 too on Mac) for the live avatar preview panel - without it the graph still runs, minus the real-time viewer.

Common issues

If you need to split an edge at a precise, repeatable location for a scripted mesh-building pipeline, this node's lack of a position input makes it a poor fit - you'd get more predictable results from a straightforward subdivide on an explicit edge selection. As always in this pack, a bpy install failure is almost always a Python-version mismatch rather than a genuinely broken package, so check python --version before anything else, and remember the README's active "still making changes" warning if a node's behavior seems to shift between versions.

Categoryblender

Inputs (9)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
mirroroptBOOLEANfalse
use_proportional_editoptBOOLEANfalse
proportional_edit_falloffoptCOMBO8 options: SMOOTH, SPHERE, ROOT, INVERSE_SQUARE, SHARP, LINEAR, +2
proportional_sizeoptFLOAT1.009.999999974752427e-7–999999995904
use_proportional_connectedoptBOOLEANfalse
use_proportional_projectedoptBOOLEANfalse
release_confirmoptBOOLEANfalse
use_accurateoptBOOLEANfalse

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ