Mesh Extrude Edges Indiv
Each edge gets its own extrusion
- BPY_OBJ
- BPY_OBJ
Most extrude operators treat your whole selection as one connected region - extrude three edges together and you get one contiguous new patch of geometry stitching them all together. This node doesn't do that. "Indiv" means individual: every selected edge extrudes on its own, disconnected from its neighbors, each getting its own separate strip of new geometry. Select a ring of edges and instead of one smooth new band, you get a fringe - each edge popping outward independently.
Why that's a distinct tool
That difference matters more than it sounds. A connected extrude keeps the topology as one continuous surface, useful for building out walls or extending a boundary. An individual extrude is what you want for spiky, fan, or fringe-like geometry, where each element genuinely needs to be its own separate piece rather than sharing edges with what's next to it. It's a direct wrap of Blender's bpy.ops.mesh.extrude_edges_indiv - one of twenty such wraps in this pack, none of which show up in the README's own documented node table (that one covers the headline nodes like Create Mesh Layer and Avatar Main Output). The repo's dev notes mention a generate_blender_types.py script for regenerating Blender operator bindings, which is exactly what this naming convention traces back to.
Avatar Graph, from Avatech AI, is built around turning a single character image into a 2.5D interactive avatar - segmentation, per-layer mesh generation, shape-key rigging, then a live preview through Avatech's own web viewer. Nodes like this one exist for anyone hand-authoring or repairing geometry inside that pipeline rather than relying purely on the packaged high-level steps.
Inputs and outputs
BPY_OBJ in and out, plus two booleans:
- use_normal_flip (default
false) - flips the direction each edge extrudes along, if the default comes out backwards for your case. - mirror (default
false) - mirrors the offset across the local X axis, relevant if you've got mesh symmetry (X-mirror editing) going and want both sides to extrude in step.
No offset/distance parameter is exposed here, which matches the rest of this family - in Blender this operator is normally followed by a live transform drag. Treat it as generating the new, individually-extruded geometry in place, then pair it with a separate move step if you need actual displacement.
Installing Avatar Graph
Search "Avatar Graph" in ComfyUI Manager, or manually: cd ComfyUI/custom_nodes && git clone https://github.com/avatechai/avatar-graph-comfyui, then python -m pip install -r requirements.txt from inside, then restart. Note that the README's own manual-clone snippet actually references a different org, avatechgg - stick with the canonical avatechai/avatar-graph-comfyui URL instead.
The install blocker that actually matters is Python version. bpy, Blender's Python API, is pinned to 3.10.x wheels, and a modern ComfyUI running 3.11/3.12 will fail to install or load it. On Mac/Linux, a dedicated conda environment is the cleanest route (conda create --name comfyui python=3.10); on Windows the author ships a whole prebuilt ComfyUI + Python 3.10 zip so you don't have to retrofit anything.
Once running, restart with python main.py --enable-cors-header (Mac: add --force-fp16) for the live avatar preview to reach Avatech's hosted editor. Without it, everything still functions - you export manually via right-click → Save on Avatar Main Output instead.
Common issues
No model downloads, nothing unusual beyond bpy - the pain is almost entirely that Python-version pin, or a missing CORS flag if the live preview stays blank. The README flags upfront that nodes and templates are still evolving, which explains why documentation on something this specific is essentially nonexistent.
One thing worth double-checking with this node specifically: because each edge extrudes independently rather than as a connected patch, running it on a densely selected mesh can generate a lot of disconnected geometry fast. If your mesh looks fragmented after using it, that's the individual-extrude behavior doing exactly what it's meant to - reach for one of the "Move" (region) variants instead if you actually wanted a connected result.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| use_normal_flipopt | BOOLEAN | false | — |
| mirroropt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |