Object Modifier Move Down
Nudge a modifier down the stack, one position at a time
- BPY_OBJ
- BPY_OBJ
Modifier stacks are order-sensitive, and the order is the whole game. A mirror applied before a subsurf gives you a different result than a subsurf before a mirror. Object_ModifierMoveDown wraps bpy.ops.object.modifier_move_down() - the down-arrow on Blender's modifier panel - and it nudges the named modifier one position toward the bottom of the stack.
Why would you need this in a ComfyUI graph? Because Object_ModifierAdd always appends the new modifier at the bottom of the stack, which is not where you usually want it. The classic avatar case: you add a SUBSURF first for smoothing, then a MIRROR for symmetry, and the mirror needs to run before the smoothing to look right. The modifiers are in the wrong order, and the way to fix it inside the graph is to walk the modifier down (or use Object_ModifierMoveToIndex to jump it). One nudge at a time.
The mechanism. The node sets your BPY_OBJ as active and calls the operator with the modifier's name. It moves that modifier down exactly one position; if it's already at the bottom of the stack, nothing happens - which is fine and silent, not an error.
Inputs.
BPY_OBJ- the object whose stack you're reordering.modifier- the exact name of the modifier to move. String matching, as always.
Output. BPY_OBJ, passed through.
Installing it. Part of Avatar Graph. ComfyUI Manager → "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 with --enable-cors-header; pack pins bpy==3.6.0, so Python 3.10.x is required.
Troubleshooting. If the mesh looks like nothing changed, the modifier was probably already near the bottom - each call moves only one slot, so reordering a deep stack means calling this node repeatedly (or switching to Object_ModifierMoveToIndex, which jumps). Wrong-name errors are the usual hard failure. And remember that in a hidden Blender scene, "did it work" is only visible at export - when your exported .glb doesn't match your mental model, stack order is the first thing to audit.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| modifieropt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |