I'm using a Stabilize 2D node as the last node in my Compositing workflow and would like to know the location, rotation and scale that it's applying at a particular frame, e.g. frame 201.

I want this data because I plan to render things out and then split the sequence at this frame and insert a short sequence in-between and want to know the applied location etc. so I can apply it (with a Transform node) to the in-between sequence such that things line up. The separately created in-between sequence would line up already if it weren't for the changes introduced to the footage on either side by stabilization.

In the end, I'll join things up such that I have the first half of my stabilized sequence, then have an already stable in-between sequence (that's the product of 3D rendering rather than video footage), and then the last half of my stabilized sequence.

Conceptually, I'm locking down the stabilization for the in-between sequence and then resuming it afterward. To do this, I plan to render out the different parts separately, apply a transform to my in-between sequence to get it to line up with the sequences on either side and then joining things up in the Video Editing workspace. If you can think of a better or different approach please tell me.

Using the nodes shown below and selecting the Stabilize 2D node, I've got as far as accessing this node in the Python console like so:

[x for x in C.scene.node_tree.nodes if x.select][0]

But it's got a large number of attributes and I haven't worked out how to essentially ask it "give me the values you'll apply at frame 201 such that I can create a Transform node that applies the same effect".

compositing nodes

  • $\begingroup$ I'm pretty sure you can't access this data from python... maybe you could add a keyframe in movieclip editor datasheet with 'I' then with 'Clear Track Path' button delete all other keyframes ahead, and use that as source for stabilization... $\endgroup$
    – alambre
    Mar 27, 2022 at 19:21

1 Answer 1


If anyone's interested, I found I could recover the translation, rotation and scale (applied by the stabilization) by comparing the original and stabilized images outside Blender using the OpenCV function estimateAffinePartial2D.

I've described the process in more detail here.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .