Object Transform To Mouse
The gizmo-drop node that can't work in a queued graph
- BPY_OBJ
- matrix
- BPY_OBJ
Some nodes in the Avatar Graph pack are worth an article because they're genuinely useful. This one is worth an article because it's a trap. Object Transform To Mouse wraps bpy.ops.object.transform_to_mouse(), the Blender operator behind the gizmo that lets you drag a freshly-added object and "drop" it wherever your cursor is. It is, by design, an interactive viewport operation. It needs a live pointer, a viewport, and a human dragging.
None of those exist when ComfyUI queues your graph. Run this node and it does nothing - it just passes your BPY_OBJ through, no error, no effect. That's not a bug in the pack; it's what happens when a tool auto-generates nodes from Blender's entire operator registry and the interactive operators come along for the ride.
You can see the tell in its inputs. Beyond BPY_OBJ it takes name, session_uuid, matrix, drop_x, and drop_y - and those are gizmo internals: which transform session is active, where the pointer landed, what the drag matrix is. They're plumbing for a mouse event, not parameters you'd ever tune in a workflow. There's no legitimate configuration of this node that makes it do something useful in a queued run.
The output is your BPY_OBJ, unchanged. That's the whole node.
Install, for completeness: this ships in the Avatar Graph pack, so ComfyUI Manager → "Avatar Graph", or git clone https://github.com/avatechai/avatar-graph-comfyui into ComfyUI/custom_nodes and pip install -r requirements.txt. Python 3.10 for bpy==3.6.0, first launch downloads the ~2.4 GB SAM model.
Troubleshooting is one line: if you put this in a workflow expecting it to position an object, delete it. It will never position anything from a queue. It's the same story as Object Transform Axis Target - interactive gizmo operators that the registry generator exposed as nodes. When you're reading a downloaded workflow and you see Object_TransformToMouse sitting in the graph, it's usually leftover scaffolding from whoever was clicking around in the editor, not a step that matters. Skip it, and use the pack's actual mesh-positioning or transform tools instead. Knowing what not to reach for is half of using a pack like this one.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| nameopt | STRING | — | |
| session_uuidopt | INT | 0-2147483648–2147483647 | — |
| matrixopt | B_VECTOR16 | — | |
| drop_xopt | INT | 0-2147483648–2147483647 | — |
| drop_yopt | INT | 0-2147483648–2147483647 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |