Object Track Clear
Unsticking a tracking constraint, the clean way
- BPY_OBJ
- BPY_OBJ
Object Track Clear is the cleanup half of the tracking pair. If Object Track Set glues an object to a target so it follows it (an eye that tracks the camera, a head that pivots toward something), then this node removes that constraint again. It wraps the Blender operator bpy.ops.object.track_clear(), same as every auto-generated node in the Avatar Graph pack - a headless Blender 3.6 runs inside your ComfyUI process and your graph wires become direct bpy operator calls.
The whole point of this node is the one enum input, type, which is where the "clean way" part of the title comes from. Blender gives you two ways to strip a tracking constraint, and they're genuinely different:
CLEAR- removes the constraint entirely. The object snaps back to whatever transform it had before tracking.CLEAR_KEEP_TRANSFORM- removes the constraint but keeps the object's current orientation. This is the one you want when the tracking did its job (aimed the eye at the camera) and now you want to freeze that pose as the resting state. It's the difference between "unplug the servo" and "unplug it after it finished moving."
The BPY_OBJ input is the object whose constraint you're clearing; the output is that same object, modified in place, ready to keep flowing down the graph.
This is a utility node, so it earns its keep in sequences where you temporarily track something during construction and then want to free it before export - think of the Avatar Graph pipeline's "build, pose, then clean up before the shape-flow stage." It's also the undo button if a Track Set aimed an object at the wrong thing.
Install is pack-wide: ComfyUI Manager → "Avatar Graph", or clone avatechai/avatar-graph-comfyui into ComfyUI/custom_nodes and pip install -r requirements.txt. Python 3.10 is effectively required (bpy==3.6.0), the first startup downloads a ~2.4 GB SAM model, and restart ComfyUI with --enable-cors-header if you want the live avatar preview.
One honest caveat: if the object has no tracking constraint, this is a quiet no-op - Blender just has nothing to clear, and the node passes the object through unchanged. And like every node in this pack, remember the scene is rebuilt from scratch on each run, so a CLEAR you did last run isn't waiting for you this run. The graph is the state. Re-run the whole thing.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| typeopt | COMBO | 2 options: CLEAR, CLEAR_KEEP_TRANSFORM |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |