Object Duplicate Move Linked
Blender's Alt+D, as a single node
- BPY_OBJ
- BPY_OBJ
If Object Duplicate Move is Blender's Shift+D, Object Duplicate Move Linked is Alt+D - same muscle memory, one crucial difference: the copy shares its mesh data with the original instead of getting its own independent copy.
How it works
This wraps bpy.ops.object.duplicate_move_linked(), a dedicated macro operator with the linked flag baked in as true (unlike Object_Duplicate, which lets you choose). A "linked" duplicate in Blender terms means the new object and the source object point at the same underlying mesh data-block - same vertices, same faces, same everything at the geometry level, just two objects with independent transforms (position, rotation, scale) wrapped around that one shared mesh. Edit the mesh through either object - say, with an Edit Mode node further down the graph - and both update, because there's really only one mesh underneath.
That trade-off is genuinely useful when you want several copies of the same part to stay in sync - repeated identical props, or accessory elements you expect to keep tweaking as a set rather than individually - and genuinely a trap if you expected an independent copy and didn't realize the data was shared.
The inputs and outputs that matter
There's exactly one input:
BPY_OBJ- the object to duplicate.
No linked or mode parameters here - both are fixed by which operator this node wraps, unlike the more general Object_Duplicate.
Output: a single BPY_OBJ, the new linked duplicate.
How to install it
ComfyUI Manager: search "Avatar Graph", install, restart - or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui
cd avatar-graph-comfyui && python -m pip install -r requirements.txt
bpy needs Python 3.10.x, exactly - nothing newer. Windows can use Avatech's prebuilt Python-3.10 ComfyUI zip; macOS/Linux wants a dedicated conda create --name comfyui python=3.10 environment rather than an existing newer-Python ComfyUI setup. Add --enable-cors-header on restart (plus --force-fp16 on Mac) if you want the live avatar preview reaching editor.avatech.ai; skip it and you still get full functionality via .glb/.gltf export.
Common issues & troubleshooting
Nodes not loading almost always means the Python-version pin above - check the startup console for a bpy import error before looking anywhere else.
Edited one copy and every duplicate changed - that's the "linked" part working exactly as designed, not a bug. If you actually wanted independent copies that don't affect each other when edited, use Object_Duplicate with linked set to false, or the plain Object_DuplicateMove node instead.
Expecting the copy at a specific offset - same caveat as the rest of this duplicate family: the "move" half of this operator is meant to run alongside interactive mouse movement in Blender's UI, which a scripted node call doesn't provide. In a headless graph the duplicate typically ends up right on top of the original - follow this node with an explicit transform step if you need it placed somewhere specific.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |