Skip to content

francescolorussi/MatchTransform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MatchTransform Logo


MatchTransform is a Nuke gizmo that lets you automatically align two images based on their visual content, similar in concept to Photoshop's Auto-Align Layers.

Connect a Source and a Reference — it finds matching features between the two images and figures out the transform needed to line them up. The result is baked directly into a standard Transform or CornerPin2D node. Different input resolutions are handled automatically — any Reformat nodes needed are created alongside the output node.

Bad matches are filtered out automatically, so you get a clean result even on tricky inputs. The entire solver is implemented in pure Python with no external dependencies.

Requires NukeX, as it relies on the built-in CameraTracker for feature detection.

Usage

MatchTransform UI

  1. Connect your inputs: plug the Source image into the first input and the Reference image into the second input. The gizmo will compute the transformation that aligns the Source to the Reference.

  2. Choose the frame range: select the frames you want to align.

    • Current Frame — analyses only the current viewer frame. Use this for a quick single-frame alignment.
    • Custom Range — analyses the frame range defined by the Custom Range fields.
    • Input Clips Range — analyses the overlapping frame range between the Source and Reference inputs.

Note: In sequence mode, each frame pair is matched independently — so small variations in feature matching can cause jitter in the output. If Source and Reference are unrelated sequences (different content per frame), each frame may still align correctly on its own, but the overall result will be temporally inconsistent.

  1. Choose which components to solve for (Transform mode only): Translation, Rotation, Scale, and Skew can each be enabled or disabled independently. For example, if you only need to correct a zoom difference, enable Scale only and leave the rest unchanged.

  2. Use the Ignore Mask (optional): use the Ignore Mask to exclude regions from feature detection — it reads the alpha channel of both inputs to mask out areas that would produce unreliable matches.

  3. Set the number of features: controls how many features the internal CameraTracker will detect. More features can improve accuracy but increase processing time.

  4. Adjust the filtering level if needed: controls how aggressively bad feature matches are discarded. Auto is the recommended default — it adapts automatically based on the input. The other presets (Off, Low, Medium, Strong) are there if you need to fine-tune the behaviour manually.

  5. Choose the output type:

    • Transform — produces a Transform node using the degrees of freedom selected in step 3 (Translation, Rotation, Scale, Skew).
    • CornerPin — produces a CornerPin2D node (full perspective).

Compatibility

  • NukeX required — the gizmo relies on the built-in CameraTracker node for feature detection, which is only available in NukeX. Tested on Nuke 13+.

Examples

Example 1 — feature matches between Source and Reference

Feature matches

Result — composited using the generated CornerPin

Aligned result


Example 2 — feature matches between Source and Reference

Feature matches

Result — composited using the generated CornerPin

Aligned result

Installation

1. Copy MatchTransform.gizmo to your gizmos folder, creating it if it doesn't exist:

~/.nuke/gizmos/

2. Register the folder in ~/.nuke/init.py:

nuke.pluginAddPath("gizmos")

3. Add it to a custom menu in ~/.nuke/menu.py:

toolbar = nuke.menu("Nodes")
my_menu = toolbar.addMenu("MyGizmos")
my_menu.addCommand("MatchTransform", "nuke.createNode('MatchTransform')")

For further information, see:

Changelog

v1.0.0

  • Initial release

About

Automatic Image Alignment for Nuke

Topics

Resources

License

Stars

13 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors