Mesh Bridge Edge Loops
Stitches two open boundaries together with new geometry
- BPY_OBJ
- BPY_OBJ
Another of Avatar Graph's auto-generated wraps - this is bpy.ops.mesh.bridge_edge_loops from Blender's own mesh API, unmodified. It's a genuinely handy one to understand on its own terms, because "bridging" is a common need any time you're assembling flat, separately-generated mesh pieces (which is exactly how Avatar Graph builds its avatar geometry) into something connected.
What it does
Give it two (or more) selected open edge loops - think of them as unconnected boundary rings, like the traced outline of one mesh piece and the traced outline of another - and it fills the gap between them with new connecting geometry, essentially stitching them into one continuous surface. It's the difference between two separate flat cutouts sitting near each other and one actual connected mesh.
The inputs that matter
BPY_OBJ(optional) - the mesh object, with the loops you want bridged already selected.type- how multiple loops get matched up when there's more than a simple pair:SINGLEbridges one pair,CLOSEDtreats the loops as closed rings,PAIRSbridges consecutive pairs when you've selected several loops at once.number_cuts(default 0) - adds subdivisions along the length of the bridge, useful if you need the connecting geometry to deform more smoothly later (e.g. under a shape key).use_merge/merge_factor- whether close-together vertices on the two loops get merged instead of bridged, and how aggressively.interpolation,smoothness,profile_shape,profile_shape_factor- these shape the bridge's curve when the two loops don't line up in a perfectly straight path between them; leave at defaults (LINEARinterpolation is the simplest, straight case) unless your bridge is coming out visibly warped.twist_offset- rotates which vertex on one loop connects to which vertex on the other; the field to reach for if the bridge comes out visibly twisted.
Output is the same BPY_OBJ, passed through for chaining.
How to install it
Via ComfyUI Manager: search "Avatar Graph" (avatar-graph-comfyui), install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui
cd avatar-graph-comfyui
pip install -r requirements.txt
The pack's hard blocker: bpy==3.6.0 is pinned in requirements.txt and only builds on Python 3.10.x. Windows users get a bundled Python 3.10 ComfyUI zip from the README; Mac/Linux users should build a dedicated conda environment (conda create --name comfyui python=3.10) rather than fighting an existing 3.11/3.12 setup. Expect a heavier install overall - segment-anything, mediapipe, and OpenCV all come along.
Common issues & troubleshooting
"Operator poll() failed, context is incorrect." The single most common cause with this specific operator is a selection that isn't actually two open edge loops - if the selection is a closed face region, a single loop, or an invalid mix of geometry, Blender's bridge operator refuses to run rather than guessing what you meant.
Bridge comes out twisted. Adjust twist_offset - this happens when Blender's automatic vertex-to-vertex matching between the two loops doesn't line up the way you expected.
Bridge geometry looks warped or pinched. Check interpolation and profile_shape - the defaults assume a fairly straightforward connection between two loops; if yours are at odd angles or very different sizes relative to each other, the automatic curve-fitting can produce something uglier than a straight bridge would.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| typeopt | COMBO | 3 options: SINGLE, CLOSED, PAIRS | |
| use_mergeopt | BOOLEAN | false | — |
| merge_factoropt | FLOAT | 0.500–1 | — |
| twist_offsetopt | INT | 0-1000–1000 | — |
| number_cutsopt | INT | 00–1000 | — |
| interpolationopt | COMBO | 3 options: LINEAR, PATH, SURFACE | |
| smoothnessopt | FLOAT | 1.000–1000 | — |
| profile_shape_factoropt | FLOAT | 0.00-1000–1000 | — |
| profile_shapeopt | COMBO | 6 options: SMOOTH, SPHERE, ROOT, INVERSE_SQUARE, SHARP, LINEAR |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |