Nuke Python
Jump to navigation
Jump to search
Nuke Python Scripts
Count selected nodes
len(nuke.selectedNodes())
Maxwell Render - Check .mxi sequence Sampling levels
//This script comes from the Great Marc Dubrois
def checkMXI_SL():
'''takes mxi read node and checks its SLs metadata and outputs frames under certain treshold'''
sl_threshold = 18.0
txt = nuke.getInput('Print frames with SL below:', str(sl_threshold))
if txt:
sl_threshold = float(txt)
output = ''
task = nuke.ProgressTask("Checking MXI SLs")
task.setMessage("Progress")
for node in nuke.selectedNodes():
if node.Class() == 'Read':
firstframe = int(node['first'].value())
#lastframe = firstframe + 10
lastframe = int(node['last'].value())
for i in range(firstframe, lastframe):
percentage = int(100.0*(i-firstframe)/(lastframe-firstframe))
task.setProgress(percentage)
if task.isCancelled():
break;
sl = node.metadata('SAMPLING_LEVEL',i)
if sl < sl_threshold:
task.setMessage('Frame ['+str(i)+'] SL'+"{0:.1f}".format(sl))
logline = 'Frame ' + str(i) + ': ' + "{0:.2f}".format(sl) + '\n'
output = output + logline
task.setProgress(100)
del task
p = nuke.Panel('Results')
if output == '':
output = 'All MXI are above or equal to '+str(sl_threshold)
p.addNotepad('Results:',output)
ret = p.show()
checkMXI_SL()