Mesh Extrude Region Shrink Fatten
Extrude that follows the surface's own curve
- BPY_OBJ
- BPY_OBJ
A normal extrude-and-move pushes new geometry along a fixed world axis - flat, predictable, and wrong for anything curved. This node extrudes the selected region, then offsets each new vertex along its own normal instead of one shared direction - Blender calls this "shrink/fatten." On a curved surface, that's the difference between an even, inflated push outward and new geometry that looks flattened or lopsided on one side. It's the extrude to reach for on organic, non-planar shapes specifically.
Why that matters for this pack
It's a direct wrap of Blender's bpy.ops.mesh.extrude_region_shrink_fatten, one of twenty low-level Blender operator wraps this pack ships without documenting in its own README - that document's node table covers the headline pieces (Create Mesh Layer, Mesh Modify Shape Key, Avatar Main Output), not these. The repo's dev notes describe regenerating Blender operator bindings via a generate_blender_types.py script, which is exactly where this naming pattern comes from.
Avatar Graph, from Avatech AI, is about turning a single character image into a 2.5D interactive avatar - segmentation, per-layer mesh generation, shape-key rigging for blink and mouth movement, then a live view through Avatech's own hosted editor. The meshes it generates from image layers aren't flat planes forever once you start shaping them for a face or a rounded prop; a per-normal push like this is genuinely the right tool once you're working on curved geometry rather than a flat panel.
Inputs and outputs
BPY_OBJ in, BPY_OBJ out - no other parameters in the schema, including no explicit shrink/fatten distance. In Blender, that offset amount is normally set by a live mouse drag the instant the operator fires; with nothing exposed here, treat this node as performing the extrude with the shrink/fatten mechanism selected but no displacement applied on its own - you'd need a downstream transform step to see the actual push. What gets extruded is, as always in this family, whatever's currently selected on the incoming BPY_OBJ.
Installing Avatar Graph
Search "Avatar Graph" in ComfyUI Manager and install, or go manual: cd ComfyUI/custom_nodes && git clone https://github.com/avatechai/avatar-graph-comfyui, then python -m pip install -r requirements.txt from inside that folder, then restart. One thing to catch - the README's own manual-install command clones from avatechgg, a different org than the canonical avatechai/avatar-graph-comfyui. Use the URL above instead.
The actual gate on a successful install is Python version. bpy, Blender's Python API and this pack's core dependency, only ships wheels for specific Python builds - you need 3.10.x. A newer ComfyUI running Python 3.11 or 3.12 will fail installing or importing it. Conda is the cleanest workaround on Mac/Linux (conda create --name comfyui python=3.10); on Windows, the author ships a dedicated prebuilt ComfyUI + Python 3.10 zip specifically to avoid this.
Once running, restart with python main.py --enable-cors-header (Mac: add --force-fp16) if you want the live avatar preview reaching Avatech's hosted editor. Without it, the pack still works fully - export manually via right-click → Save on Avatar Main Output instead.
Common issues
No model downloads, nothing unusual beyond bpy - most install trouble is the Python pin, most preview trouble is the missing CORS flag. The README's own note that nodes and templates are still evolving is a fair explanation for the total lack of description on a node this specific.
Worth remembering: without an exposed distance, this node's visible effect on its own is minimal - the "shrink/fatten along normals" behavior only shows up once something downstream actually applies a displacement. If your curved geometry isn't inflating the way you expect, check what (if anything) is moving it after this node runs, not the node itself.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |