Mesh Offset Edge Loops
Adding a loop cut without cutting the whole face loop
- BPY_OBJ
- BPY_OBJ
Loop Cut is the Blender tool everyone learns early - select a face loop, cut a new ring of edges through the middle of it. Offset Edge Loops does something related but more specific: instead of cutting through a full loop, it inserts a new loop offset inward from edges you've already selected, which is exactly what you want when you're working from a boundary rather than a clean ring of quads.
What it is and why you'd reach for it
This wraps Blender's mesh.offset_edge_loops operator, and it's built for boundary-driven topology work - take the edge of a hole, a mesh's outer border, or a selected loop that isn't part of a full quad ring, and inset a new loop parallel to it. In this pack's mesh-generation pipeline, that's a genuinely common situation: meshes built from segmented image regions (an eye cutout, a mouth shape) often have irregular boundaries rather than clean grids, so a boundary-relative loop insert is more useful than a classic loop cut would be.
How it works
The operator looks at your current edge selection and adds a new edge loop offset a small distance inward from it, following the existing mesh's shape rather than cutting a straight line across unrelated geometry. It's a topology tool - it adds resolution near a boundary (useful before a bevel, an extrude, or before you want a Mesh_ModifyShapeKey deformation to have more geometry to work with near an edge) without disturbing the rest of the mesh.
The inputs and outputs that matter
Just one:
use_cap_endpoint(boolean, default off) - if the selection doesn't form a closed ring, this decides whether the new loop's open ends get capped with a face or left open. Turn it on when you're offsetting from a partial boundary and don't want a gap where the loop terminates.
Output, as with the whole pack, is a single BPY_OBJ carrying the updated mesh.
How to install it
ComfyUI Manager: search Avatar Graph, install, restart. Manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui
cd avatar-graph-comfyui
python -m pip install -r requirements.txt
Every node in this pack rides on bpy, Blender-as-a-package, and bpy only has wheels for specific Python minor versions - the README says it plainly: you need Python 3.10.x, exactly. Windows users get a bundled embedded-Python-3.10 zip for precisely this reason; on macOS/Linux, use a pinned conda create --name comfyui python=3.10 environment rather than whatever your system Python is. Restart ComfyUI with --enable-cors-header (add --force-fp16 on Mac) if you want the live avatar preview panel; without it, the graph still runs, you just lose the real-time viewer and would export a .glb/.gltf to inspect the result elsewhere, in Blender or any glTF viewer.
Common issues
Nothing gets inserted: check that you actually have an edge selection feeding into this node - like the rest of this pack, there's no selection parameter exposed here, so whatever's selected upstream (or by default, in edit mode) is what it acts on. If the result looks like it capped over a boundary you wanted left open, flip use_cap_endpoint off. And if installation itself fails while resolving bpy, check your Python version before anything else - a 3.11 or 3.12 environment is the single most common reason this pack won't install, not a broken requirements file.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| use_cap_endpointopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |