Mesh Extrude Faces Move
Push a patch of faces out as one piece
- BPY_OBJ
- BPY_OBJ
This is the standard face extrude - select one or more faces and they come out together, as a single connected region, with new side walls stitched in to join the raised geometry back to the rest of the mesh. It's the opposite of its sibling Mesh_ExtrudeFacesIndiv, which pops each face out on its own instead of keeping the group joined. If you want to push a box, a raised panel, or a bump out of a flat surface and have it stay one continuous shape, this is the one.
Why it's in this pack
It's a direct wrap of Blender's bpy.ops.mesh.extrude_faces_move, one of twenty low-level Blender operator wraps shipped in this pack that don't appear in the README's own documented node table - that one covers the headline pieces like Create Mesh Layer, Mesh Modify Shape Key, and Avatar Main Output. The repo's dev notes describe a generate_blender_types.py script for regenerating Blender operator bindings, which is exactly the source of this naming pattern. You're really working with Blender's own Edit Mode toolkit here, not a bespoke avatar node.
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 for blink and mouth movement, then a live viewer hosted by Avatech. A general-purpose face extrude like this is exactly what you'd reach for if you're hand-building or repairing that generated geometry rather than relying purely on the automated pipeline.
Inputs and outputs
Just BPY_OBJ in, BPY_OBJ out - no other parameters exposed. Worth calling out directly: in Blender, this operator's "Move" half is normally driven by a live mouse drag right after the extrude, not a fixed value. With nothing exposed here to move the new geometry by, treat this node as creating the extruded faces sitting exactly on top of the originals, and pair it with a separate transform step downstream if you need actual displacement - the pack's own workflow templates are the reference for how these operators typically get chained together in practice.
As with the rest of the family, which faces extrude is entirely a function of the selection already carried on the incoming BPY_OBJ.
Installing Avatar Graph
ComfyUI Manager: search "Avatar Graph," install, restart. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/avatechai/avatar-graph-comfyui, then python -m pip install -r requirements.txt inside that folder, then restart. One catch worth knowing - the README's own manual-install command clones from avatechgg rather than avatechai; use the canonical URL above instead, which is what their own Manager listing and the rest of the repo point to.
The actual gatekeeper for a successful install is Python version. bpy, the Blender Python API this pack depends on, only ships wheels for specific Python builds - 3.10.x here. A newer ComfyUI on Python 3.11/3.12 will fail to install or load it. Conda is the cleanest route on Mac/Linux (conda create --name comfyui python=3.10); on Windows the author ships a prebuilt ComfyUI + Python 3.10 zip specifically to sidestep 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. Skip it and the pack still works fully - you just export via right-click → Save on Avatar Main Output rather than watching it live.
Common issues
No model downloads, nothing unusual beyond bpy - nearly all install trouble is that Python pin, and preview trouble is almost always the missing CORS flag. The README's own admission that nodes and templates are still in flux is a fair excuse for the total absence of built-in descriptions on nodes this specific.
Specific to this one: since no offset is exposed, don't expect visible movement from the node alone - the new faces sit right where the old ones were until something downstream moves them. And because it extrudes as one connected region, if you actually wanted each face to pop out independently, you want Mesh_ExtrudeFacesIndiv instead.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |