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

Mesh Polybuild Face At Cursor

Blender's click-to-add-a-face tool, wrapped as a node

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

Poly Build in Blender is basically a quick-retopology tool: click on empty space near existing geometry and it fills in a new face using nearby vertices and edges, letting you build up a mesh point-and-click rather than through formal extrude/fill commands. This node is that "add a face" action from the Poly Build tool.

What it is and why you'd reach for it

It's not part of Avatar Graph's documented rigging pipeline (Create Mesh Layer → Modify Shape Key → Create Shape Flow → Avatar Main Output) - it's one of the many nodes this pack auto-generates by wrapping essentially every operator in Blender's bpy.ops.mesh namespace, a mapping the README's generate_blender_types.py script keeps current. In the Blender UI, this operator reads your mouse position in the viewport to decide where the new face goes and which nearby vertices/edges it connects to. This node's schema has no cursor or location input at all, so headless in a ComfyUI graph there's no way to specify a target position - worth knowing before you drop this into a graph expecting controllable, repeatable results.

How it works

It looks at geometry near a target point and fills a new face using whatever vertices and edges are close enough to connect meaningfully, similar to Blender's "F" fill shortcut but driven by proximity to a point rather than an explicit selection.

The inputs and outputs that matter

  • create_quads (boolean, default on) - prefers building a 4-sided face over a triangle where the geometry allows it, which generally gives cleaner topology for later deformation work.
  • mirror (boolean) - mirrors the operation across the mesh's symmetry setting, if configured.
  • use_proportional_edit plus proportional_edit_falloff (SMOOTH, SPHERE, ROOT, INVERSE_SQUARE, SHARP, LINEAR, CONSTANT, RANDOM) and proportional_size - Blender's standard proportional-editing controls, letting the effect taper into surrounding geometry.
  • use_proportional_connected / use_proportional_projected - restrict falloff to connected topology, or project it through space.
  • release_confirm / use_accurate - interaction-timing flags carried over from the interactive tool, largely inert without live mouse input.

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

Because the pack runs on bpy - Blender as a pip package, which only ships wheels for specific Python minor versions - the README is explicit: Python 3.10.x, exactly. Windows users get a bundled embedded-Python-3.10 zip to avoid the mismatch; macOS/Linux users should pin a conda create --name comfyui python=3.10 environment. Add --enable-cors-header (--force-fp16 on Mac) to your launch command for the live avatar preview panel - skip it and the graph still runs, minus the real-time viewer.

Common issues

If face placement looks unpredictable, that's the nature of this node without a cursor input - it isn't broken, it just has no target. For deterministic face creation in a scripted graph, building faces from an explicit vertex selection with a fill operation gets you a repeatable result this cursor-driven tool won't. And, as with every node in this pack, if bpy fails to install, check your Python version before assuming a dependency is broken - 3.10.x is the whole requirement.

Categoryblender

Inputs (10)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
create_quadsoptBOOLEANtrue
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