proxyTools

tool to help set up proxy creation and image sequence conversion

Updated: 22 February 2012

Author: mybikeislost

Compatible Nuke versions: 6.3 or later

Compatibility: Linux, Mac, Windows

proxyTools 1.3

ChangeLog:

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.

proxyToolNodes

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.

 

Notes:

  • 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:

SCN_125_RAW.mov                              <--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

 

Installation:

  • Add the following to your menu.py
1
2
3
4
import proxyTools
 
nuke.menu("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 init.py if you don't have one already
1
2
3
4
5
6
7
8
9
10
11
def createWriteDir(): 
    import nuke, os 
    file = nuke.filename(nuke.thisNode()) 
    dir = os.path.dirname( file ) 
    osdir = nuke.callbacks.filenameFilter( dir ) 
    try: 
        os.makedirs( osdir ) 
        return 
    except: 
        return  
nuke.addBeforeRender( createWriteDir )

Sign in or register to download or rate.