Nodes/Avatar Graph/Object Transforms To Deltas
ComfyUI Node

Object Transforms To Deltas

Freezing animation into a rest pose with Transforms To Deltas

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Object Transforms To Deltas
  • BPY_OBJ
  • BPY_OBJ
mode
reset_valuestrue

"Transforms to Deltas" is one of those Blender operators that sits quietly in the Object menu under Animation and only makes sense once you've hit a specific problem: your object is animated - keyframed, or moved by a parent - and you want to freeze that motion into the mesh's rest pose so the animation layer can start fresh. Delta transforms store the current transform as a per-component offset relative to the object's base, and zero out the original animation. Object TransformsToDeltas wraps exactly that operator (bpy.ops.object.transforms_to_deltas()) as an Avatar Graph node.

In the context of this pack - building a character, posing it, then handing it to the shape-flow runtime for real-time animation - this is a "settle the pose before the runtime takes over" step. The node only makes sense on objects that actually carry animation transforms, so if your avatar mesh is static, this is a no-op pass-through. But if you've driven motion into a mesh earlier in the graph (or brought in an animated object), this is how you commit that pose as the baseline.

The inputs: BPY_OBJ is the object; mode is an enum choosing what gets converted - ALL, LOC, ROT, or SCALE, i.e. bake every transform, or just location, just rotation, just scale. If you only care that the position becomes the rest position, LOC alone does it. reset_values (default true) is the "and zero out the original" part - with it off, you get the deltas but the original transforms stay, which is usually not what you want when freezing a pose.

Output is your BPY_OBJ, passed through with its transforms now baked as deltas.

Install is pack-wide: 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 required (bpy==3.6.0), first launch downloads the ~2.4 GB SAM model.

The honest caveat: this is an animation-pipeline tool, and in a ComfyUI graph the whole "delta" bookkeeping is only meaningful if the mesh and its animation survive to a later stage - which, in this pack, means the export or the runtime. Since the pack resets the Blender scene at the start of every run, "committing a pose" is per-run and idempotent; you're not mutating a saved scene. If you're not animating before this node, leave it out - it's more registry plumbing than a daily driver, and its sibling Object Transform Apply covers the more common "bake the transform into the geometry" case.

Categoryblender

Inputs (3)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
modeoptCOMBO4 options: ALL, LOC, ROT, SCALE
reset_valuesoptBOOLEANtrue

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ