X_Distort v4.4

This location is for Registered Users Only.
Perhaps you need to login or register.
Contributor: Xavier Martín
Create distortion and deformation effects such as heat distortion or plasma with chromatic aberration. Can also be used to improve / refine your rotos.
12.2, 12.0, 11.0, 10.5 or later
Linux, Windows
24 Jan 2021

X Distort UI


This gizmo allows you to distort images with control and flexibility. It is more customizable and easier to use than Nuke's IDistort. You don’t need to copy any channels and you have many other controls to play with. You can blur the parts of the image which are being distorted to get a smoother result.
You can distort an image using its own channels, using another image or using an automatic noise. You can choose the detail of the deformation.
You can distort each color per separate, creating a realistic chromatic aberration effect. You can decide the quality of the effect in order to speed up render times.


  More documentation on my website.









Please login in order to download these files.


+2 # Max Steven 2015-04-02 12:38
Hello, I have tried your script lately and it's a amazing much more than the new spiderman :)) So really wanna express my gratitude and admire your talent so much. And just one thing, when I use your script in nuke 7 it keep asking for this:
X_Math2.enable_ mix_luminance: no such knob
X_Math2.false: no such knob
Of course you have written this script is for Nuke 8 but can I edit something to make it work with nuke 7? because without that error it just works fine :)
0 # Steve Sexton 2015-12-01 00:15
I solved this:

open the .gizmo in a txt editor and
enable_mix_luminance false
Replace with:
#enable_mix_luminance false

As far as i can tell it has no effect on the gizmo
0 # Xavier Martín 2016-11-08 11:22
This problem has been solved on the new version. It should be now compatible with Nuke versions 7.0 and forward, in both Windows and Linux.
+3 # adam jones 2015-11-08 02:44
love the gizmo, just started playing around with it, one thing that I noticed.

is if you have one instance of the gizmo in the DAG with it distorting from a distortion map and then you copy and paste the gizmo, In the pasted gizmo the "distort from" pull down is set back to "source", issue being the gizmo no longer works till you manually set the "distort from" pulldown again, changing any other setting doesn't change this, only resetting the "distort from" pull down.

anyways awesome gizmo big fella
0 # Xavier Martín 2015-11-18 11:10
Wow! Thanks for letting me know! I didn't notice that bug! :)
+2 # J0hann Roche 2015-11-26 14:15
thanks for sharing !
0 # Xavier Martín 2016-11-08 11:10
I fixed a bunch of known bugs, such as not being able to distort any channels other than rgb. Now the tool should work much more reliably.
+2 # J0hann Roche 2016-11-08 17:13
Thanks again for updating your tool >> very useful and fast for creative effects
+1 # Xavier Martín 2016-11-08 17:32
I'm glad it helps! I wish I could update my tools more often, but as it turns out, I'm a pretty busy man! :)
0 # Erwan Leroy 2016-12-23 16:49
Hi Xavier
I found that lowering the distortion map blur also lowers the strength of the distortion.
By 0 (no blur, although still blur of 1 in the gizmo) there is no distortion whatsoever.
I changed that for my own version, but it's a strange behavior.
0 # Bastian Traunfellner 2017-01-05 15:00
Hi, trying to run this in Nuke 6, rewrote a few things but still can't wrap my head around this errors:

Traceback (most recent call last):
File "", line 1, in
RuntimeError: /Applications/Nuke6.0v3-32/Nuke6.0v3.app/Contents/MacOS/plugins/X_Tools/Gizmos/X_Distort.gizmo:
VectorBlur1.channels: {Copy_Source.ch annels} is not a layer or channel name
IDistort1.channels: {Copy_Source.ch annels} is not a layer or channel name
VectorBlur2.channels: {Copy_Source.ch annels} is not a layer or channel name
Merge1.also_merge: {parent.Copy_So urce.channels} is not a layer or channel name

why doesn't this pick up?
channels {{{Copy_Source.ch annels}}}

can't I hardcode it somehow to source.rgb?
I tried that but doesn't work maybe I'm wrong in the syntax.

any help greatly appreciated!!
+1 # Xavier Martín 2017-11-14 23:10
New update v4.0 !
This has been updated to work in GPU, if your computer has a compatible graphics card.
Even if you are using CPU, there should still be a major speed improvement.
0 # Ermes Vincenti 2017-11-24 13:11
Hey Xavier! GREAT NODE! You might have an error in Blinkscript1 under "use GPU if available". It looks like the expression is "parent.useGPUI fAvailable" and it doesn't work obviously.
I think it should be "parent.BlinkSc ript.useGPUIfAv ailable". In facts, the main node controller for GPU activates only the one in Blinkscript. Just check it if it is only my problem. Again, great work buddy! Cheers
0 # Xavier Martín 2017-11-24 19:13
Wow! Well spotted! You will definitely have that fixed in the next version! ;-)
0 # Xavier Martín 2017-11-24 20:38
This issue has been resolved now! (v4.1)
0 # BIll Marsh 2018-03-09 14:03
Do you intend to make X_Distort work under OS X?
0 # Xavier Martín 2018-03-09 16:31
Hi Bill!
What kind of issue are you having? :)
0 # BIll Marsh 2018-03-10 13:36
The X_Distort properties panel is missing half of the controls.

It doesn't look like Nukepedia supports attachments, but I can email you a screen grab of what X_Distort looks like under OS X.
0 # Xavier Martín 2018-03-10 22:56
If you could post an image (i.e. imgur), and specify the Nuke version and X_Distort version that would help a lot! :D
0 # George Abourjeily 2018-06-12 10:52
String line 1 unknown command nuke 11 nany help please
0 # Xavier Martín 2018-06-12 11:14
Hi, could you specify what steps are you following that lead you to this error message? I'll try my best to help you.
Thank you!
0 # George Abourjeily 2018-06-12 11:25
i just click on the icon inside nuke and immediately popup unknown command
0 # George Abourjeily 2018-06-12 11:37
nukex11 v01
0 # Xavier Martín 2018-06-13 10:14
It looks like an installation error.
It's hard to say what went wrong, here are some resources that may help you. :-)

+1 # Niclas Werres 2018-07-05 08:32
Just had the same problem, but I could fix it. The problem was, that the gizmo is in the folder Tools, but your text in your txt is looking for gizmos. So I renamed the folder, updated inside nuke and now it's working.

Thank you for this awesome tool. Missed so much the different kinds of distort from after effects, when I made the switch.
0 # Gustav Berg Pedersen 2018-08-31 14:55
Super useful gizmo, great work!
I get the following error when rendering through deadline:

"X_Distort1.AdjBBox1.disable: parent.input0 is not a number"

This is on Nuke11.1v3 by the way.
0 # Rikin Patel 2019-02-12 19:54
It worked for me by deleting the AdjBBox node in the group.
0 # Vyacheslav Khramyshev 2019-03-31 15:17
Thank you very much, please explain how to improve your mask with a gizmo? I still do not understand what to do.
+2 # Chris Staves 2019-08-26 10:13
I just downloaded the latest version (4.1), and it does not look like the screenshots in the description. It looks like an older version or something, as it is much simpler. I don't see the checkboxes for "Avoid Dispersion" or "Treat as UV" for example. It has a separate "GPU Settings" tab, which your screenshots don't show. However, when I go to the About tab, it reports version 4.1 as the current version. Also, this version doesn't even appear to be saved as a gizmo. It shows up as a normal group.
0 # Iyend O 2020-04-06 23:00
i'm having the same situation
0 # vincent husset 2019-10-04 09:45
Hi Xavier,
Awesome gizmo, thank you for sharing this!
Is it possible to download the 4.1 somewhere? This page currently link to the 4.0
0 # Mark Williams 2019-10-16 15:47

init.py should read:

# X Distort
0 # Georgi St 2019-10-29 14:04
It looks amazing, if I could only use it.

I can't find an init.py file in the archive.

What shall I do in this case?

I am fairly new to Nuke, I hope it is not so complicated to make it work.
0 # Schrodinger's Cat 2019-12-22 17:33

I'm trying to work with your plugin in my pc but when I open Nuke I have this message:

"File "C:Users/TOTO/. nuke/init.py", line 9, in
toolbar = nuke.toolbar("nodes")
RuntimeError: not in GUI mode
C:USers/TOTO/.nuke/init.py : error interpreting this plugin"

I'm using Nuke 11.3v5 in windows 8

Any idea about what's happening and how to solve it?

Thank you in advance!
0 # Steve Sexton 2019-12-23 21:41
I think you've got the code in the wrong spot.

toolbar = nuke.toolbar... should be in the menu.py

Hopefully that helps
0 # Schrodinger's Cat 2019-12-22 17:33
0 # Seb Arm 2020-06-12 09:00
X_Distort1.Blin kScript1.maxTil eLines: no such knob
X_Distort1.BlinkScript1.20: no such knob

Can anyone help?
0 # Seb Arm 2020-06-12 09:00
X_Distort1.Blin kScript1.maxTil eLines: no such knob
X_Distort1.BlinkScript1.20: no such knob

Can anyone help?
0 # Seb Arm 2020-06-12 09:00
This is my menu.py

import sys
import nuke
toolbar = nuke.toolbar("Nodes")
toolbar.addCommand("Gizmos/EdgeMirror", "nuke.createNode('EdgeMirror')")

m = toolbar.addMenu("X_Tools")
m.addCommand("Gizmos/X_Distort", "nuke.createNod e('X_Distort')" )
0 # Erwan Leroy 2020-06-12 11:29
From your error message it doesn't sound like a menu.py error, it sounds like maybe your nuke version is older than the version Xavier used to make the gizmo (or maybe too new).

In the gizmo file you could try deleting the line referring to maxTileLines And "20". (Find the section that starts by "BlinkScript {" )
0 # Seb Arm 2020-06-12 12:56
I have v12.1v2. Too new?
0 # Xavier Martín 2020-07-01 08:16
Quoting Seb Arm:
I have v12.1v2. Too new?

I have updated this for v12.1v2.
The warning was harmless but should no longer appear. :)
0 # Seb Arm 2020-09-01 00:54
Oh wait. I have a Mac. So will this not work? it only specifies Windows and Linux.
+2 # Victor Vong Liew 2020-08-13 13:27
Hi, I get this message when I tried to open the gizmo:
(blank error message)
Do you have any idea how to fix it? My nuke version is12.2v1
0 # Youssef Hossam 2020-11-27 22:32
0 # Youssef Hossam 2020-11-27 22:32
0 # Tommaso Zagni 2020-12-04 11:58
It is because you're using Nuke non-commercial, where Blinkscript nodes are disabled. If you try to paste the gizmo directly into Nuke it will says the error that I am talking about. Sadly
0 # Adrian Baltowski 2020-09-04 11:22
Hi, there is something wrong with downloads: whatever version you try to download you always get the same 4.1 version...
0 # dean lewis 2020-10-19 21:42
FYI - X_Distort seems to be broken on 12.x
get the following errors:

X_Distort9.BlinkScript1.maxTileLines: no such knob
X_Distort9.BlinkScript1.20: no such knob
X_Distort9.BlinkScript.maxTileLines: no such knob
X_Distort9.BlinkScript.20: no such knob
X_Distort6.BlinkScript1.maxTileLines: no such knob
X_Distort6.BlinkScript1.20: no such knob
X_Distort6.BlinkScript.maxTileLines: no such knob
X_Distort6.BlinkScript.20: no such knob
X_Distort8.BlinkScript1.maxTileLines: no such knob
X_Distort8.BlinkScript1.20: no such knob
X_Distort8.BlinkScript.maxTileLines: no such knob
X_Distort8.BlinkScript.20: no such knob
X_Distort10.BlinkScript1.maxTileLines: no such knob
X_Distort10.BlinkScript1.20: no such knob
X_Distort10.BlinkScript.maxTileLines: no such knob
X_Distort10.BlinkScript.20: no such knob
X_Distort5.BlinkScript1.maxTileLines: no such knob
X_Distort5.BlinkScript1.20: no such knob
X_Distort5.BlinkScript.maxTileLines: no such knob
X_Distort5.BlinkScript.20: no such knob
0 # Olivier B 2021-07-19 21:07
Same errors here, for a little while now... Update the gizmo won't update the comp scripts, because it has from gizmo, only the extention... ( Group{...} ) Thanks Erwan ;)
0 # Tommaso Zagni 2020-12-04 11:54
I bet it doesn't work with Nuke non-commercial isn't it?
0 # James Adamson 2020-12-06 15:37
Hey Xavier.
Thanks so much. An awesome plugin and an effect I took for granted on Flame, I can not believe I have fiddling around with idistort!
Great stuff.
0 # Adri RC 2022-03-07 17:24
I have an error, and don't render the effect! Any solution?

[17:42.25] ERROR: X_Distort2.AdjB Box1.disable: parent.input0 is not a number
[17:42.25] ERROR: X_Distort2.Auto .which: Nothing is named "parent.input1"
[17:42.25] ERROR: X_Distort1.AdjB Box1.disable: parent.input0 is not a number
[17:42.25] ERROR: X_Distort1.Auto .which: Nothing is named "parent.input1"
[17:42.25] ERROR: X_Distort2.AdjB Box2.disable: Nothing is named "parent.input1"
[17:42.25] ERROR: X_Distort1.AdjB Box2.disable: Nothing is named "parent.input1"
0 # Mircea Goia 2022-10-12 16:48
How do I get rid of this colors after distorting (yellowish and magenta)? https://www.dropbox.com/s/9mjvfy78pl2hl65/x_distort.jpg?dl=0
I tried chromatic aberration but when I get rid of it I also get rid of the distorsion too.
0 # Mircea Goia 2022-10-12 17:09
Found the issue...I had "use all channels" checked....
0 # Elliott KAJDAN 2022-10-31 16:17
I have an issue where my comps using this node get extremely bloated with data from the Xdistort node.

Here are some screen shots of the issue:


Any idea why ?

Using Nuke 12.2v3

Thank you!
0 # Elliott KAJDAN 2022-10-31 16:31
Edit: Same think happens with v4.4 after a while.
+3 # Elliott KAJDAN 2022-11-15 17:04

The problem was coming from the few non-ascii characters in the gizmo.
If your file bloats the same way, use a find and replace in regex mode using this '[^\x00-\x7F]+' by nothing in your favourite text editor. This will remove the incriminated characters and fix your script.
+1 # 熊 班 2023-03-02 13:11
0 # 熊 班 2023-03-02 13:11

You have no rights to post comments

We have 2126 guests and 110 members online