Object Geometry Nodes Move To Nodes
Promoting a one-off modifier setup into a reusable node group
- BPY_OBJ
- BPY_OBJ
When a Geometry Nodes modifier is set up directly on an object, its node tree can start out private to that one modifier - not shared, not reusable elsewhere. Object Geometry Nodes Move To Nodes is the "promote this to something I can reuse" step: it converts that embedded, object-specific setup into a proper, standalone Geometry Node Group.
How it works
It wraps bpy.ops.object.geometry_nodes_move_to_nodes(), a feature added to Blender's Geometry Nodes modifier tooling. After it runs, the modifier no longer holds a private, one-off tree - it references a named node group instead, the same kind of shareable asset you'd normally build in the Geometry Nodes editor and reuse across multiple objects and modifiers.
It has a known limitation worth knowing before you reach for it: it doesn't work if the modifier's node tree has no actual geometry input or output socket. If you call it on a tree that isn't set up as a proper geometry-processing setup, expect it to fail rather than silently doing something unexpected.
Like the rest of this pack's geometry-nodes-family operators, this isn't part of Avatar Graph's documented shape-key rigging pipeline - it's a general Blender modifier-management tool that got included because the pack auto-generates nodes across a wide swath of Blender's object.* operators.
The inputs and outputs that matter
There's exactly one input:
BPY_OBJ- the object carrying the Geometry Nodes modifier to convert.
Output is a single BPY_OBJ, passed through, with the modifier's tree now living as a reusable group.
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. Windows gets a prebuilt Python-3.10 ComfyUI zip from the README; macOS/Linux wants a dedicated conda create --name comfyui python=3.10 environment. Add --enable-cors-header on restart (--force-fp16 too on Mac) for the live avatar preview; without it you still get full functionality via .glb/.gltf export.
Common issues & troubleshooting
Node not loading traces to the Python-version pin - check ComfyUI's startup console for a bpy import error first.
This node fails outright - the documented cause is a node tree without a proper geometry input or output socket. Check that whatever modifier you're targeting is actually a functioning geometry-processing setup, not an edge case that happens to be attached as a modifier without the sockets this operator expects.
Not sure you need this at all - if you only have one object using a given Geometry Nodes setup and don't plan to reuse it elsewhere, there's no real need to run this; it exists specifically for the "I want to share this setup across multiple objects" case. If you want to make an existing shared node group unique to one object instead (the opposite direction), that's Object_GeometryNodeTreeCopyAssign, not this node.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |