Mesh Extrude Repeat
Build a ribbed strip in one node
- BPY_OBJ
- offset
- BPY_OBJ
Most of the extrude nodes in this pack expose nothing but a mesh object to plug in - this one is the exception, and it's actually usable stand-alone because of it. Mesh Extrude Repeat runs the same extrude operation multiple times in a row along a fixed offset, building a segmented, repeated strip in one shot: think a spiral staircase, a ribbed tube, a fence, a zigzag. Where you'd otherwise have to chain a dozen individual extrude nodes back to back, this collapses it into one call with real, tunable parameters.
The parameters that actually matter here
Unlike nearly everything else in this family, you can dial this one in without ever opening Blender directly:
- steps (INT, default
10) - how many times the extrude repeats. Ten segments out of the box; push it higher for a finer, more granular strip. - offset (B_VECTOR3) - the direction and distance each repeat step travels. This is the actual shape control: a straight vector builds a linear strip, and if you're driving this from an upstream node that can vary the vector between calls, you can build curved or spiral results.
- scale_offset (FLOAT, default
1, min0) - scales each step's geometry as it repeats, letting the strip taper or flare rather than staying a constant cross-section.
Plus the usual optional BPY_OBJ input and BPY_OBJ output. It's a direct wrap of Blender's bpy.ops.mesh.extrude_repeat - 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). The repo's dev notes mention a generate_blender_types.py script for regenerating Blender operator bindings, which is exactly where this naming convention traces back to.
Where it fits
Avatar Graph, from Avatech AI, turns 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 hosted editor. A repeated extrude isn't part of that documented pipeline directly, but it's a genuinely handy building block if you're hand-authoring accessory geometry (hair strands, a chain, ribbed trim) rather than relying purely on the automated mesh-from-image-layer steps.
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 inside that folder, then restart. Worth flagging - the README's own manual-install command clones from avatechgg, a different org than the canonical avatechai/avatar-graph-comfyui; use the URL above.
What actually gates 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 modern ComfyUI running Python 3.11/3.12 will fail to install or import it. Conda is the clean fix on Mac/Linux (conda create --name comfyui python=3.10); on Windows, the author ships a dedicated prebuilt ComfyUI + Python 3.10 zip rather than expecting a retrofit.
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 - export manually via right-click → Save on Avatar Main Output instead.
Common issues
No model downloads, nothing unusual beyond bpy - most install pain is the Python pin, most preview pain is the missing CORS flag. The README's own warning that nodes and templates are still in flux is a fair excuse for the sparse documentation on the rest of this family, though this node at least has real parameters to reason about.
The thing to actually watch: with steps at its default of 10 and offset unset (a zero vector, effectively), running this without wiring an actual offset gives you ten overlapping, undisplaced repeats stacked on the same spot - set a real offset vector before expecting a visible strip. And scale_offset compounds per step, so a value far from 1 on a high steps count will taper or blow up the geometry fast; nudge it gradually rather than guessing.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| stepsopt | INT | 100–1000000 | — |
| offsetopt | B_VECTOR3 | — | |
| scale_offsetopt | FLOAT | 1.000–999999995904 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |