proxyTools v1.3

This location is for Registered Users Only.
Perhaps you need to login or register.
Contributor: Brian Willard
tool to help set up proxy creation and image sequence conversion
6.3 or later
Linux, Mac
21 Feb 2012

proxyTools 1.3


v1.3: bugfix to address 'index out of range' error w/qt source.

v1.2: added DPX option to full res (rgb channels by default)
          exr files now write out all metadata as default.
          added simple error checking to make sure we are dealing w/sequences in filename.%04d.ext format. 
          added initial support for r3d files. 

 v1.1: fixed error when rendering full sized jpegs

v1.0: initial release

python modal panel to help set up write nodes for rendering proxies on a farm(or local) into resolution folders per shot, while generating reads that link to the rendered files.  Also useful to convert quicktime files to exr.


Panel Options:

  • Process Plates: option to convert full, proxies, or both.
  • Process Reads: limit conversion to  'all' Reads, 'selected' Reads, or 'quicktime' Reads within a script
  • Full Res Format: options are exr, and jpeg (0.97 quality) at full raster.
  • Proxy Format: options are exr, and jpeg (0.97 quality).
  • Proxy Size: options are 'full, half, or quarter'  (impulse filtering for full, cubic for half and quarter)
  • Create Read: option to create a read with the file/proxy paths set to the write node renders.



  • For quicktime & r3d files, it can handle files without extension by reading the 'input/filereader' metadata to determine filetype.
  • Default behavior is to create a folder named 'filename+_IMG' with subfolders for resolution.
  • All write nodes will have their 'disable' knob animated to the frame range of the source read.
  • If the script detects that the source img sequence is in a folder maching the resolution, it should render the proxy files one level up. (To deal with if you render proxies after you've converted to exr for instance).
  • tested on OS X/Linux, should work with windows unc paths, but I don't have a box to test.

'Create Read' has the following behavior: 
  • 'Process Plates' = both:  read node will link to the full res and proxy write nodes.
  • 'Process Plates' = proxy: read node file knob will be set to original plate, proxy knob set to generated proxy.
  • 'Process Plates' = full: read knob will link to the converted full res plate.


Sample output folder structure:                              <--source quicktime
SCN_125_RAW_IMG                             <--created folder
        1920x1080                                            <--resolution folder
                SCN_125_RAW.%04d.exr            <--full res sequence
        960x540                                                <--resoltion folder 
                SCN_125_RAW.%04d.jpg            <-proxy res sequence



  • Add the following to your
import proxyTools"Nuke").addCommand("Render/Proxy Tools* 1.3","proxyTools.proxyTools()")


  • I am not creating the folders in the script when it runs, so I'd suggest adding this createWriteDir() callback to your if you don't have one already
def createWriteDir(): 
    import nuke, os 
    file = nuke.filename(nuke.thisNode()) 
    dir = os.path.dirname( file ) 
    osdir = nuke.callbacks.filenameFilter( dir ) 
        os.makedirs( osdir ) 
nuke.addBeforeRender( createWriteDir )
Please login in order to download these files.


0 # Max Kuper 2011-12-16 10:33
From the description this looks really great. But i'm getting this error after the menu and pressing ok -

Traceback (most recent call last):
File "", line 1, in
File "XX/python/prox", line 276, in proxyTools
showProxyTools( )
File "XX/python/prox", line 275, in showProxyTools
ProxyToolsPanel ().showModalDia log()
File "XX/python/prox", line 272, in showModalDialog
_buildPROXIES(s election, processPlates, createRead, formatFullVal, formatProxyVal, formatProxySize Val)
File "XX/python/prox", line 91, in _buildPROXIES
filename =(i.knob('file').getValue('fileName')).split('.')[-3].split(pathslash)[-1]
IndexError: list index out of range

Running NukeX 6.3v6 on CentOS x64!
0 # Brian Willard 2011-12-16 15:33
Max K,

Can you give me the full path in your read file knob?

0 # Max Kuper 2011-12-17 10:09

yeah sure will do on monday when im back in the office! Should be something like /media/REVO/Pro jekte/Proxytest /01/something_ d.dpx ..
if i remember correctly:-)
0 # Matthias Wäsch 2012-02-18 13:22
i ´m getting the same error message but with different line numbers (305,304,301).

running NukeX 6.3v4 on win7 x64.
0 # Bill Gilman 2012-03-20 14:54
Hi Brian

Testing out proxyTools and it's pretty great. Wondering if there's a way to run this script on the command line? Also, I'm finding that the proxy resolution in the Read Node that is created when 'Process Plates' = proxy is set to "root.proxy_for mat 640x380". Is there a way to change this other than manually?

Thanks so much

0 # bryan shepperd 2014-03-19 22:23
Looks like this hasnt been touched for a while. I just ran into the same issue
parentfolder = (i.knob('file').getValue('fileName')).split('.')[-3].split(pathslash)[-2]
IndexError: list index out of range
I wondered if there was an easy fix for this. looking into it now.
0 # bryan shepperd 2014-03-19 23:08
looks like it is the pathslash variable on line 64. if i change the "win" option to also be ('/') it seems to work.


You have no rights to post comments

We have 2838 guests and 119 members online