Mesh Vert Connect Concave
Auto-splitting a bowtie n-gon
- BPY_OBJ
- BPY_OBJ
A concave n-gon - a face that caves in on itself rather than bulging outward everywhere, sometimes called a "bowtie" face - is the kind of geometry that looks fine until you try to deform or render it, and then it does something ugly. Mesh_VertConnectConcave exists specifically to fix that shape automatically.
What it is and why you'd reach for it
This node wraps Blender's bpy.ops.mesh.vert_connect_concave() directly. Avatar Graph embeds real Blender via the bpy package inside ComfyUI, and this is a specialized sibling of the plain Mesh_VertConnect node: instead of you manually picking two vertices to join, it looks at a selected concave face and works out the connecting edges needed to split it into valid, non-concave pieces on its own.
Where this matters for character rigging: auto-generated meshes - the kind Avatar Graph's Create Mesh Layer produces from a segmented image - occasionally leave a concave face where the segment outline had an inward dent. Concave faces are exactly the kind of geometry that breaks shape-key deformation and shading in unpredictable ways, so cleaning them up before you rig blink/mouth shapes on top is worth doing. This node is the fast, automated way to do it instead of manually finding the right diagonal with Mesh_VertConnect.
Inputs and outputs that matter
There's a single field:
BPY_OBJ(optional) - the mesh coming in, with the concave face(s) you want split already selected.
Output: a single BPY_OBJ, with the concave face(s) divided into valid pieces.
Selection is everything here, same as the rest of the Mesh_* family - there's no way to target a specific face by name or index, only by what's selected when the node runs.
Installing Avatar Graph
bpy, the library the whole pack is built on, only ships wheels for Python 3.10.x - that's the version to lock in first.
ComfyUI Manager: search avatar-graph-comfyui, install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui.git
cd avatar-graph-comfyui
python -m pip install -r requirements.txt
Restart with python main.py --enable-cors-header (--force-fp16 on Mac too). Windows gets a prebuilt Python 3.10 environment from the README; macOS/Linux is pointed at a dedicated conda create --name comfyui python=3.10.
Common issues
Nothing happens. No concave face selected, or nothing selected at all - this is a selection-dependent operator like the rest of the pack. If you're not sure a face is actually concave, this node simply won't have anything to do on a convex one.
Splits a face you didn't expect. If your selection spans more than the one problem face, the operator processes every selected face, not just the concave one you had in mind - narrow the selection down before running it.
Nodes not loading. Check your Python version is exactly 3.10.x - bpy fails to import otherwise, and the whole pack won't register in ComfyUI.
No live avatar preview. Needs --enable-cors-header at launch to talk to the embedded editor.avatech.ai panel. Without it, the graph still runs; export via right-click → Save File on Avatar Main Output (.GLB/.GLTF) instead of relying on the live view.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |