Object Make Dupli Face
Turn every face of a mesh into a copy of your object
- BPY_OBJ
- BPY_OBJ
Avatar Graph is a pack that runs Blender inside ComfyUI - every node with the Object_ prefix is a wrapper around a real Blender operator (bpy.ops.object.*), and this one wraps dupli_face_create(). In Blender you'd know it as "Duplicates: Faces" from the Duplicate menu: it copies whatever objects are selected onto each face of the active object, parented to those faces.
So why would you want that in a ComfyUI graph? Mostly for decoration and instancing. If you're building one of Avatech's rigged 2D-character scenes and you want, say, a row of identical props - leaves, gemstones, particle flakes - stamped onto a surface, you duplicate the object once, run this node, and every face of the target mesh now holds a copy. Editing the original updates them all, which is exactly why Blender calls it "dupli". It's also a cheap way to fake crowd or foliage without instantiating geometry node trees.
The mechanism. The node sets your wired-in object as the active object, then calls the Blender operator. Because it's a generated wrapper, there are no knobs beyond the object itself - the operator takes no other arguments. It hands the same BPY_OBJ straight back out on the other side, so you can chain it into the rest of your graph without breaking the wire.
Inputs. Just one that matters:
BPY_OBJ- the target object whose faces will get the duplicates (the active object).
The subtle bit: the operator duplicates the selected objects, and in a ComfyUI-hidden Blender scene "selected" is a separate state from "active." Wiring an object in makes it active, not selected. If this node does nothing, it's almost always because there's nothing selected to duplicate - chain an object selection node before this one if you're relying on that.
Output. BPY_OBJ, the same object you fed in, so downstream nodes keep working.
Installing it. This node ships in the Avatar Graph pack. Install it from ComfyUI Manager (search "Avatar Graph") or:
cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui
cd avatar-graph-comfyui
python -m pip install -r requirements.txt
Restart ComfyUI with --enable-cors-header if you want the live avatar preview. The pack pins bpy==3.6.0, so your Python needs to be 3.10.x - a ComfyUI on 3.11+ won't import it. First launch also downloads the SAM and mediapipe models (a couple of GB), so don't panic at the console spam.
Troubleshooting. Most confusion here is selection state, as above. Also note the "dupli" behavior changed meaning in newer Blender versions - this pack locks you to bpy 3.6, where it works as described. If the copies don't show up in your exported .glb, check that the parent object's faces actually exist (a plane with a single face gives you one copy; a subdivided mesh gives you many).
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |