Group { name ConvolveVignette addUserKnob {20 User l ConvolveVignette} addUserKnob {41 previewMode T CONTROL.previewMode} addUserKnob {20 group l settings n 1} addUserKnob {41 rows T CONTROL.rows} addUserKnob {41 colums T CONTROL.colums} addUserKnob {22 pyBuild l " build rows/colums" -STARTLINE T "import nuke\n\nthisGroup=nuke.thisNode()\nthisGroup.begin()\n \ndef fillZdefocusKnobs(node):\n node\['useGPUIfAvailable'].setExpression('ZDefocusCONTROL.useGPUIfAvailable')\n node\['channels'].setExpression('ZDefocusCONTROL.channels')\n node\['z_channel'].setExpression('ZDefocusCONTROL.z_channel')\n node\['math'].setExpression('ZDefocusCONTROL.math')\n node\['output'].setExpression('ZDefocusCONTROL.output')\n node\['show_image'].setExpression('ZDefocusCONTROL.show_image')\n node\['center'].setExpression('ZDefocusCONTROL.center')\n node\['focal_point'].setExpression('ZDefocusCONTROL.focal_point')\n node\['dof'].setExpression('ZDefocusCONTROL.dof')\n node\['blur_dof'].setExpression('ZDefocusCONTROL.blur_dof')\n node\['size'].setExpression('ZDefocusCONTROL.size')\n node\['max_size'].setExpression('ZDefocusCONTROL.max_size')\n node\['autoLayerSpacing'].setExpression('ZDefocusCONTROL.autoLayerSpacing')\n node\['layers'].setExpression('ZDefocusCONTROL.layers')\n node\['layerCurve'].setExpression('ZDefocusCONTROL.layerCurve')\n node\['filter_type'].setExpression('ZDefocusCONTROL.filter_type')\n node\['filter_channel'].setExpression('ZDefocusCONTROL.filter_channel')\n node\['use_input_channels'].setExpression('ZDefocusCONTROL.use_input_channels')\n #node\['use_input_channels'].setValue('rgba.alpha')\n node\['filter_bounds'].setExpression('ZDefocusCONTROL.filter_bounds')\n node\['shape'].setExpression('ZDefocusCONTROL.shape')\n node\['aspect'].setExpression('ZDefocusCONTROL.aspect')\n node\['blades'].setExpression('ZDefocusCONTROL.blades')\n node\['roundness'].setExpression('ZDefocusCONTROL.roundness')\n node\['rotation'].setExpression('ZDefocusCONTROL.rotation')\n node\['inner_size'].setExpression('ZDefocusCONTROL.inner_size')\n node\['inner_feather'].setExpression('ZDefocusCONTROL.inner_feather')\n node\['inner_brightness'].setExpression('ZDefocusCONTROL.inner_brightness')\n node\['catadioptric_size'].setExpression('ZDefocusCONTROL.catadioptric_size')\n node\['catadioptric'].setExpression('ZDefocusCONTROL.catadioptric')\n node\['bloom_gamma'].setExpression('ZDefocusCONTROL.bloom_gamma')\n node\['bloom'].setExpression('ZDefocusCONTROL.bloom')\n node\['bloom_threshold'].setExpression('ZDefocusCONTROL.bloom_threshold')\n node\['bloom_gain'].setExpression('ZDefocusCONTROL.bloom_gain')\n node\['maskChannelMask'].setExpression('ZDefocusCONTROL.maskChannelMask')\n node\['maskChannelInput'].setExpression('ZDefocusCONTROL.maskChannelInput')\n node\['invert_mask'].setExpression('ZDefocusCONTROL.invert_mask')\n node\['mix'].setExpression('ZDefocusCONTROL.mix')\n node\['dope_sheet'].setExpression('ZDefocusCONTROL.dope_sheet x1 1')\n\ndef deleteAutoNodes():\n nuke.selectAll()\n nuke.invertSelection() \n n = nuke.allNodes()\n for i in n:\n if i.name()\[0:10] == \"__AUTOpy__\":\n i.knob(\"selected\").setValue(True)\n nuke.nodeDelete()\n\ndef copyNode(nodeToCopy) : \n nuke.selectAll()\n nuke.invertSelection() \n nukescripts.node_copypaste()\n \ndef makeNodes():\n lastMatt=nuke.toNode('NUL_MATT')\n lastFilter=nuke.toNode('NUL_FILTER')\n lastImage=nuke.toNode('NUL_IMAGE')\n lastPreview=nuke.toNode('NUL_PREVIEW')\n nulControl=nuke.toNode('CONTROL')\n zDefocusControl=nuke.toNode('ZDefocusCONTROL')\n gOutput=nuke.toNode('OUTPUT')\n matrixRows = int(nulControl\['rows'].value())\n matrixColums = int(nulControl\['colums'].value())\n #position\n lastMattXPos=lastMatt.xpos()+33\n lastMattYPos=lastMatt.ypos()\n lastImageXPos=lastImage.xpos()+33\n lastImageYPos=lastImage.ypos()\n lastFilterXPos=lastFilter.xpos()+33\n lastFilterYPos=lastFilter.ypos()\n lastPreviewXPos=lastPreview.xpos()+33\n lastPreviewYPos=lastPreview.ypos()\n \n mergeGroup=nuke.nodes.Merge2(name=\"__AUTOpy__Merge_OUT\")\n mergeGroup\['operation'].setValue('max')\n \n for colum in range(0, matrixColums):\n mergeSubGroup=nuke.nodes.Merge2(name=\"__AUTOpy__MergeSub_\"+str(colum))\n mergeSubGroup\['operation'].setValue('max')\n \n for row in range(0,matrixRows):\n mattDot=nuke.nodes.Dot(name=\"__AUTOpy__DotMat_\"+str(colum)+'_'+str(row))\n mattDot.setInput(0, lastMatt)\n mattDot.setXpos(lastMattXPos)\n mattDot.setYpos(lastMattYPos+250)\n #29\n mattTx=nuke.nodes.Transform(name=\"__AUTOpy__TransformMatt_\"+str(colum)+'_'+str(row))\n mattTx.setInput(0, mattDot)\n mattTx.setXpos(mattDot.xpos()+250)\n mattTx.setYpos(mattDot.ypos())\n mattTxUserPos = nuke.WH_Knob(\"position\", \"position\")\n mattTx.addKnob(mattTxUserPos)\n mattTx\['position'].setValue(\[row,colum]) \n mattTx\['label'].setValue('\[value position]')\n mattTx\['translate'].setExpression('(-(((position.w+0.5)/CONTROL.rows)-0.5)*(CONTROL.vignetteSize+1)*2)*((fabs(position.w-(CONTROL.rows*0.5))/(CONTROL.rows*0.5))*(CONTROL.vignetteSpread)+1)',0)\n mattTx\['translate'].setExpression('(-((position.h/CONTROL.colums)-0.5)*(CONTROL.vignetteSize+1)*2)*((fabs(position.h-(CONTROL.colums*0.5))/(CONTROL.colums*0.5))*(CONTROL.vignetteSpread)+1)',1)\n #40\n filterDot=nuke.nodes.Dot(name=\"__AUTOpy__DotFilter_\"+str(colum)+'_'+str(row))\n filterDot.setInput(0, lastFilter)\n filterDot.setXpos(lastFilterXPos)\n filterDot.setYpos(lastFilterYPos+150)\n #45\n filterCrop=nuke.nodes.Crop(name=\"__AUTOpy__CropFilter_\"+str(colum)+'_'+str(row))\n filterCrop.setInput(0, filterDot)\n filterCrop.setXpos(filterDot.xpos()+250)\n filterCrop.setYpos(filterDot.ypos()-3)\n filterCropUserPos = nuke.WH_Knob(\"position\", \"position\")\n filterCrop.addKnob(filterCropUserPos)\n filterCrop\['position'].setValue(\[row,colum])\n filterCrop\['label'].setValue('\[value position]')\n filterCrop\['box'].setExpression('(-(((position.w+0.5)/CONTROL.rows)-0.5)*(CONTROL.doorLeft+1)*2)*((fabs(position.w-(CONTROL.rows*0.5))/(CONTROL.rows*0.5))*(CONTROL.doorSpread)+1)',0)\n filterCrop\['box'].setExpression('(-(((position.h+0.5)/CONTROL.colums)-0.5)*(CONTROL.doorBottom+1)*2)*((fabs(position.h-(CONTROL.colums*0.5))/(CONTROL.colums*0.5))*(CONTROL.doorSpread)+1)',1)\n filterCrop\['box'].setExpression('(input.width)-(((position.w/CONTROL.rows)-0.5)*(CONTROL.doorRight+1)*2)*((fabs(position.w-(CONTROL.rows*0.5))/(CONTROL.rows*0.5))*(CONTROL.doorSpread)+1)',2)\n filterCrop\['box'].setExpression('input.height-(((position.h/CONTROL.colums)-0.5)*(CONTROL.doorTop+1)*2)*((fabs(position.h-(CONTROL.colums*0.5))/(CONTROL.colums*0.5))*(CONTROL.doorSpread)+1)',3)\n filterCrop\['softness'].setExpression('CONTROL.doorSoftness')\n #59\n imageDot=nuke.nodes.Dot(name=\"__AUTOpy__DotImage_\"+str(colum)+'_'+str(row))\n imageDot.setInput(0, lastImage)\n imageDot.setXpos(lastImageXPos)\n imageDot.setYpos(lastImageYPos+150)\n #64\n imageCrop=nuke.nodes.Crop(name=\"__AUTOpy__CropImage_\"+str(colum)+'_'+str(row))\n imageCrop.setInput(0, imageDot)\n imageCrop.setXpos(imageDot.xpos()+50)\n imageCrop.setYpos(imageDot.ypos()-3)\n imageCrop\['softness'].setExpression('CONTROL.cropSoftnessPixels')\n imageCropUserPos = nuke.WH_Knob(\"position\", \"position\")\n imageCrop.addKnob(imageCropUserPos)\n imageCrop\['position'].setValue(\[row,colum]) \n imageCrop\['label'].setValue('\[value position]')\n imageCrop\['box'].setExpression('((position.w)*CONTROL.cropSize.w)-CONTROL.cropSoftnessPixels.w',0)\n imageCrop\['box'].setExpression('((position.h)*CONTROL.cropSize.h)-CONTROL.cropSoftnessPixels.h',1)\n imageCrop\['box'].setExpression('((position.w)*CONTROL.cropSize.w)+CONTROL.cropSize.w+CONTROL.cropSoftnessPixels.w',2)\n imageCrop\['box'].setExpression('(position.h)*CONTROL.cropSize.h+CONTROL.cropSize.h+CONTROL.cropSoftnessPixels.h',3)\n #78\n mergeFilter=nuke.nodes.Merge(name=\"__AUTOpy__MergeFilter_\"+str(colum)+'_'+str(row))\n mergeFilter.setInput(0, mattTx)\n mergeFilter.setInput(1, filterCrop)\n mergeFilter\['operation'].setValue('mask')\n mergeFilter.setXpos(filterCrop.xpos())\n mergeFilter.setYpos(mattTx.ypos())\n #84\n previewReformat=nuke.nodes.Reformat(name=\"__AUTOpy__previewReformat_\"+str(colum)+'_'+str(row))\n previewReformat.setInput(0, mergeFilter)\n previewReformat.setXpos(mergeFilter.xpos())\n previewReformat.setYpos(mergeFilter.ypos()+40)\n previewReformat\['type'].setValue(1)\n previewReformat\['box_width'].setExpression('CONTROL.cropSize.w')\n previewReformat\['box_height'].setExpression('CONTROL.cropSize.h')\n previewReformat\['box_fixed'].setValue('true')\n previewReformat\['resize'].setValue('fit')\n previewReformat\['black_outside'].setValue('true')\n #84\n previewTx=nuke.nodes.Transform(name=\"__AUTOpy__PreviewTx_\"+str(colum)+'_'+str(row))\n previewTx.setInput(0, previewReformat)\n previewTx.setXpos(previewReformat.xpos())\n previewTx.setYpos(previewReformat.ypos()+40)\n previewTxUserPos = nuke.WH_Knob(\"position\", \"position\")\n previewTx.addKnob(previewTxUserPos)\n previewTx\['position'].setValue(\[row,colum]) \n previewTx\['label'].setValue('\[value position]')\n previewTx\['translate'].setExpression('((position.w)*CONTROL.cropSize.w)',0)\n previewTx\['translate'].setExpression('((position.h)*CONTROL.cropSize.h)',1)\n #78\n previewMerge=nuke.nodes.Merge(name=\"__AUTOpy__previewMerge_\"+str(colum)+'_'+str(row))\n previewMerge.setInput(1, previewTx)\n previewMerge.setInput(0, lastPreview)\n previewMerge.setXpos(lastPreview.xpos())\n previewMerge.setYpos(previewTx.ypos())\n previewMerge\['operation'].setValue('max')\n #84\n zDefocus=nuke.nodes.ZDefocus2(name=\"__AUTOpy__ZDefocus_\"+str(colum)+'_'+str(row))\n fillZdefocusKnobs(zDefocus)\n zDefocus.setInput(0, imageCrop)\n zDefocus.setInput(1, mergeFilter)\n zDefocus.setXpos(imageCrop.xpos())\n zDefocus.setYpos(mergeFilter.ypos())\n #90\n \n #93\n lastMatt=mattDot\n lastFilter=filterDot\n lastImage=imageDot\n lastPreview=previewMerge\n lastMattXPos=mattDot.xpos()\n lastMattYPos=mattDot.ypos()\n lastImageXPos=imageDot.xpos()\n lastImageYPos=imageDot.ypos()+100\n lastFilterXPos=filterDot.xpos()\n lastFilterYPos=filterDot.ypos()+100\n lastPreviewXPos=lastPreview.xpos()\n lastPreviewYPos=lastPreview.ypos()+100\n # \n if row >1:\n rowInput=row+1\n else:\n rowInput=row\n mergeSubGroup.setInput(rowInput, zDefocus)\n mergeSubGroup.setXpos(imageCrop.xpos()+700)\n mergeSubGroup.setYpos(mergeFilter.ypos())\n if colum >1:\n columInput=colum+1\n else:\n columInput=colum\n mergeGroup.setInput(columInput, mergeSubGroup)\n \n lastMattYPos=lastMattYPos+300\n lastImageYPos=lastImageYPos+300\n lastFilterYPos=lastFilterYPos+300\n \n mergeGroup.setXpos(mergeSubGroup.xpos()+700)\n mergeGroup.setYpos(mergeSubGroup.ypos())\n previewCopy=nuke.nodes.Copy(name=\"__AUTOpy__PreviewCopy_\")\n previewCopy.setInput(0, lastPreview)\n previewCopy.setInput(1, lastPreview)\n previewCopy\['from0'].setExpression('ZDefocusCONTROL.filter_channel')\n previewCopy\['from1'].setExpression('ZDefocusCONTROL.filter_channel')\n previewCopy\['from2'].setExpression('ZDefocusCONTROL.filter_channel')\n previewCopy\['to0'].setValue('rgba.red')\n previewCopy\['to1'].setValue('rgba.green')\n previewCopy\['to2'].setValue('rgba.blue')\n previewCopy.setXpos(lastPreview.xpos())\n previewCopy.setYpos(lastPreview.ypos()+30)\n \n previewSwitch=nuke.nodes.Switch(name=\"__AUTOpy__PreviewSwitch_\")\n previewSwitch.setInput(0, mergeGroup)\n previewSwitch.setInput(1, previewCopy)\n previewSwitch\['which'].setExpression('CONTROL.previewMode')\n \n gOutput.setInput(0, previewSwitch)\n gOutput.setXpos(previewSwitch.xpos())\n gOutput.setYpos(previewSwitch.ypos()+100)\n\ndeleteAutoNodes()\nmakeNodes()\n\n#nuke.message('Built Successfully!')\n"} addUserKnob {41 cropSoftnessPercent_1 l "overlap blend percent" T CONTROL.cropSoftnessPercent} addUserKnob {20 endGroup n -1} addUserKnob {26 ""} addUserKnob {41 convolve l INVISIBLE +INVISIBLE T CONTROL.convolve} addUserKnob {26 ""} addUserKnob {41 vignetteSoftness T CONTROL.vignetteSoftness} addUserKnob {41 vignetteSize T CONTROL.vignetteSize} addUserKnob {41 vignetteSpread T CONTROL.vignetteSpread} addUserKnob {26 ""} addUserKnob {26 text l "barn doors" T ""} addUserKnob {41 doorSoftness T CONTROL.doorSoftness} addUserKnob {41 doorSpread T CONTROL.doorSpread} addUserKnob {41 doorTop T CONTROL.doorTop} addUserKnob {41 doorBottom T CONTROL.doorBottom} addUserKnob {41 doorLeft T CONTROL.doorLeft} addUserKnob {41 doorRight T CONTROL.doorRight} addUserKnob {20 ZDefocus} addUserKnob {41 channels T ZDefocusCONTROL.channels} addUserKnob {41 useGPUIfAvailable l "Use GPU if available" T ZDefocusCONTROL.useGPUIfAvailable} addUserKnob {41 z_channel l "depth channel" T ZDefocusCONTROL.z_channel} addUserKnob {41 math T ZDefocusCONTROL.math} addUserKnob {41 output T ZDefocusCONTROL.output} addUserKnob {41 show_image l "show image" T ZDefocusCONTROL.show_image} addUserKnob {41 center l "focus plane (C)" T ZDefocusCONTROL.center} addUserKnob {41 focal_point l "focal point" T ZDefocusCONTROL.focal_point} addUserKnob {41 dof l "depth of field" T ZDefocusCONTROL.dof} addUserKnob {41 blur_dof l "blur inside" T ZDefocusCONTROL.blur_dof} addUserKnob {41 size T ZDefocusCONTROL.size} addUserKnob {41 max_size l maximum T ZDefocusCONTROL.max_size} addUserKnob {26 ""} addUserKnob {41 autoLayerSpacing l "automatic layer spacing" T ZDefocusCONTROL.autoLayerSpacing} addUserKnob {41 layers l "depth layers" T ZDefocusCONTROL.layers} addUserKnob {41 layerCurve l "layer curve" T ZDefocusCONTROL.layerCurve} addUserKnob {26 ""} addUserKnob {41 filter_type l "filter type" T ZDefocusCONTROL.filter_type} addUserKnob {41 filter_channel l "filter channel" T ZDefocusCONTROL.filter_channel} addUserKnob {41 use_input_channels l "use input channels" T ZDefocusCONTROL.use_input_channels} addUserKnob {41 filter_bounds l "filter bounds" T ZDefocusCONTROL.filter_bounds} addUserKnob {41 shape l "filter shape" T ZDefocusCONTROL.shape} addUserKnob {41 aspect l "aspect ratio" T ZDefocusCONTROL.aspect} addUserKnob {41 blades T ZDefocusCONTROL.blades} addUserKnob {41 roundness T ZDefocusCONTROL.roundness} addUserKnob {41 rotation T ZDefocusCONTROL.rotation} addUserKnob {41 inner_size l "inner size" T ZDefocusCONTROL.inner_size} addUserKnob {41 inner_feather l "inner feather" T ZDefocusCONTROL.inner_feather} addUserKnob {41 inner_brightness l "inner brightness" T ZDefocusCONTROL.inner_brightness} addUserKnob {41 catadioptric_size l "catadioptric size" T ZDefocusCONTROL.catadioptric_size} addUserKnob {41 catadioptric T ZDefocusCONTROL.catadioptric} addUserKnob {26 ""} addUserKnob {41 bloom_gamma l "gamma correction" T ZDefocusCONTROL.bloom_gamma} addUserKnob {41 bloom -STARTLINE T ZDefocusCONTROL.bloom} addUserKnob {41 bloom_threshold l "bloom threshold" T ZDefocusCONTROL.bloom_threshold} addUserKnob {41 bloom_gain l "bloom gain" T ZDefocusCONTROL.bloom_gain} addUserKnob {26 ""} } BackdropNode { inputs 0 name BackdropNode1 tile_color 0x8e8e3800 label CONTROLS note_font_size 42 xpos 890 ypos 99 bdwidth 269 bdheight 118 } BackdropNode { inputs 0 name BackdropNode2 tile_color 0x388e8e00 note_font_size 42 xpos -755 ypos -487 bdwidth 1314 bdheight 876 } Input { inputs 0 name image xpos 320 ypos -200 } NoOp { name INPUT_IMAGE xpos 320 ypos -58 addUserKnob {20 User} addUserKnob {14 inputSize R 0 100} inputSize {{input.width i} {input.height i}} } set N79028330 [stack 0] Shuffle { red black green black blue black alpha black name Shuffle3 xpos 180 ypos -58 } Radial { area {0 0 {CONTROL.inputSize.w} {CONTROL.inputSize.h}} name Radial1 xpos 180 ypos -8 } set N2e5b1650 [stack 0] push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 push $N2e5b1650 ContactSheet { inputs 108 width {{CONTROL.inputSize.w}} height {{CONTROL.inputSize.h x86 2048}} rows 9 columns 12 gap 10 center true name ContactSheet xpos 180 ypos 21 } add_layer {ZVDefocusPreview ZVDefocusPreview.red ZVDefocusPreview.green ZVDefocusPreview.blue ZVDefocusPreview.alpha} Shuffle { in2 rgba black black white black red2 black green2 black out ZVDefocusPreview out2 rgba name Shuffle2 xpos 180 ypos 47 } push $N79028330 Merge2 { inputs 2 also_merge all name Merge1 xpos 320 ypos 47 } Dot { name Dot1 xpos 356 ypos 186 } set N53e36590 [stack 0] Dot { name Dot2 xpos 202 ypos 186 } Shuffle { red black green black blue black alpha black name Shuffle4 xpos 168 ypos 254 } NoOp { name NUL_PREVIEW xpos 168 ypos 299 } set Ncd32fa40 [stack 0] Shuffle { red alpha green alpha blue alpha name Shuffle5 xpos 168 ypos 3251 } Input { inputs 0 name filter xpos -389 ypos -202 number 1 } NoOp { name INPUT_SAMPLE xpos -389 ypos -10 addUserKnob {20 User} addUserKnob {14 inputSize R 0 100} inputSize {{input.width} {input.height}} } set Nc8625640 [stack 0] Dot { name Dot3 xpos -226 ypos -6 } NoOp { name NUL_FILTER xpos -260 ypos 326 } set Nc862e790 [stack 0] Dot { name __AUTOpy__DotFilter_0_0 xpos -226 ypos 483 } Crop { box {{(-(((position.w+0.5)/CONTROL.rows)-0.5)*(CONTROL.doorLeft+1)*2)*((fabs(position.w-(CONTROL.rows*0.5))/(CONTROL.rows*0.5))*(CONTROL.doorSpread)+1)} {(-(((position.h+0.5)/CONTROL.colums)-0.5)*(CONTROL.doorBottom+1)*2)*((fabs(position.h-(CONTROL.colums*0.5))/(CONTROL.colums*0.5))*(CONTROL.doorSpread)+1)} {(input.width)-(((position.w/CONTROL.rows)-0.5)*(CONTROL.doorRight+1)*2)*((fabs(position.w-(CONTROL.rows*0.5))/(CONTROL.rows*0.5))*(CONTROL.doorSpread)+1)} {input.height-(((position.h/CONTROL.colums)-0.5)*(CONTROL.doorTop+1)*2)*((fabs(position.h-(CONTROL.colums*0.5))/(CONTROL.colums*0.5))*(CONTROL.doorSpread)+1)}} softness {{CONTROL.doorSoftness}} name __AUTOpy__CropFilter_0_0 label "\[value position]" xpos 23 ypos 473 addUserKnob {20 User} addUserKnob {14 position R 0 100} position {0 0} } push $Nc8625640 Dot { name Dot5 xpos -446 ypos -6 } Dot { name Dot4 xpos -446 ypos 120 } push $Nc8625640 Remove { name Remove1 xpos -389 ypos 32 disable true } Copy { inputs 2 from0 {{{ZDefocusCONTROL.filter_channel}}} to0 rgba.alpha bbox B name Copy1 xpos -389 ypos 110 disable true } Shuffle { red black green black blue black alpha black name Shuffle1 xpos -389 ypos 182 } Radial { output {-rgba.red -rgba.green -rgba.blue rgba.alpha} area {0 0 {input.width} {input.height}} softness {{CONTROL.vignetteSoftness x1 0.845}} name Radial3 xpos -389 ypos 248 } NoOp { name NUL_MATT xpos -389 ypos 326 } Dot { name __AUTOpy__DotMat_0_0 xpos -356 ypos 576 } Transform { translate {{(-(((position.w+0.5)/CONTROL.rows)-0.5)*(CONTROL.vignetteSize+1)*2)*((fabs(position.w-(CONTROL.rows*0.5))/(CONTROL.rows*0.5))*(CONTROL.vignetteSpread)+1)} {(-((position.h/CONTROL.colums)-0.5)*(CONTROL.vignetteSize+1)*2)*((fabs(position.h-(CONTROL.colums*0.5))/(CONTROL.colums*0.5))*(CONTROL.vignetteSpread)+1)}} name __AUTOpy__TransformMatt_0_0 label "\[value position]" xpos -106 ypos 576 addUserKnob {20 User} addUserKnob {14 position R 0 100} position {0 0} } Merge { inputs 2 operation mask name __AUTOpy__MergeFilter_0_0 xpos 23 ypos 576 } set N57739d10 [stack 0] Reformat { type "to box" box_width {{CONTROL.cropSize.w}} box_height {{CONTROL.cropSize.h}} box_fixed true resize fit black_outside true name __AUTOpy__previewReformat_0_0 xpos 23 ypos 616 } Transform { translate {{((position.w)*CONTROL.cropSize.w)} {((position.h)*CONTROL.cropSize.h)}} name __AUTOpy__PreviewTx_0_0 label "\[value position]" xpos 23 ypos 656 addUserKnob {20 User} addUserKnob {14 position R 0 100} position {0 0} } push $Ncd32fa40 Merge { inputs 2 operation max name __AUTOpy__previewMerge_0_0 xpos 168 ypos 656 } set N5a589770 [stack 0] push $N5a589770 Copy { inputs 2 from0 {{{ZDefocusCONTROL.filter_channel}}} to0 rgba.red from1 {{{ZDefocusCONTROL.filter_channel}}} to1 rgba.green from2 {{{ZDefocusCONTROL.filter_channel}}} to2 rgba.blue name __AUTOpy__PreviewCopy_ xpos 168 ypos 686 } push $N57739d10 push $N53e36590 NoOp { name NUL_IMAGE xpos 320 ypos 302 } set N53141870 [stack 0] Dot { name __AUTOpy__DotImage_0_0 xpos 353 ypos 452 } Crop { box {{((position.w)*CONTROL.cropSize.w)-CONTROL.cropSoftnessPixels.w} {((position.h)*CONTROL.cropSize.h)-CONTROL.cropSoftnessPixels.h} {((position.w)*CONTROL.cropSize.w)+CONTROL.cropSize.w+CONTROL.cropSoftnessPixels.w} {(position.h)*CONTROL.cropSize.h+CONTROL.cropSize.h+CONTROL.cropSoftnessPixels.h}} softness {{CONTROL.cropSoftnessPixels}} name __AUTOpy__CropImage_0_0 label "\[value position]" xpos 403 ypos 449 addUserKnob {20 User} addUserKnob {14 position R 0 100} position {0 0} } ZDefocus2 { inputs 2 channels {{{ZDefocusCONTROL.channels}}} useGPUIfAvailable {{ZDefocusCONTROL.useGPUIfAvailable}} z_channel {{{ZDefocusCONTROL.z_channel}}} math {{ZDefocusCONTROL.math}} output {{ZDefocusCONTROL.output}} show_image {{ZDefocusCONTROL.show_image}} center {{ZDefocusCONTROL.center}} focal_point {{ZDefocusCONTROL.focal_point} {ZDefocusCONTROL.focal_point}} dof {{ZDefocusCONTROL.dof}} blur_dof {{ZDefocusCONTROL.blur_dof}} size {{ZDefocusCONTROL.size}} max_size {{ZDefocusCONTROL.max_size}} autoLayerSpacing {{ZDefocusCONTROL.autoLayerSpacing}} layers {{ZDefocusCONTROL.layers}} layerCurve {{ZDefocusCONTROL.layerCurve}} filter_type {{ZDefocusCONTROL.filter_type}} filter_channel {{{ZDefocusCONTROL.filter_channel}}} use_input_channels {{ZDefocusCONTROL.use_input_channels}} filter_bounds {{ZDefocusCONTROL.filter_bounds}} shape {{ZDefocusCONTROL.shape}} aspect {{ZDefocusCONTROL.aspect}} blades {{ZDefocusCONTROL.blades}} roundness {{ZDefocusCONTROL.roundness}} rotation {{ZDefocusCONTROL.rotation}} inner_size {{ZDefocusCONTROL.inner_size}} inner_feather {{ZDefocusCONTROL.inner_feather}} inner_brightness {{ZDefocusCONTROL.inner_brightness}} catadioptric_size {{ZDefocusCONTROL.catadioptric_size}} catadioptric {{ZDefocusCONTROL.catadioptric}} bloom_gamma {{ZDefocusCONTROL.bloom_gamma}} bloom {{ZDefocusCONTROL.bloom}} bloom_threshold {{ZDefocusCONTROL.bloom_threshold}} bloom_gain {{ZDefocusCONTROL.bloom_gain}} maskChannelMask {{{ZDefocusCONTROL.maskChannelMask}}} maskChannelInput {{{ZDefocusCONTROL.maskChannelInput}}} invert_mask {{ZDefocusCONTROL.invert_mask}} mix {{ZDefocusCONTROL.mix}} name __AUTOpy__ZDefocus_0_0 xpos 403 ypos 576 dope_sheet {{"ZDefocusCONTROL.dope_sheet x1 1"}} } Merge2 { operation max name __AUTOpy__MergeSub_0 xpos 1103 ypos 576 } Merge2 { operation max name __AUTOpy__Merge_OUT xpos 1803 ypos 576 } Switch { inputs 2 which {{CONTROL.previewMode}} name __AUTOpy__PreviewSwitch_ xpos 1803 ypos 686 } Output { name OUTPUT xpos 1803 ypos 786 } push $N53141870 push $N53141870 ZDefocus2 { inputs 2 math far=1 center 0.335 focal_point {96 101} size 47 max_size 41 layers 10 filter_type image filter_bounds format blades 4 bloom_gamma true bloom true bloom_threshold 0.72 bloom_gain 3.82 maskChannelMask -rgba.alpha name ZDefocusCONTROL xpos 1060 ypos 176 addUserKnob {20 User} addUserKnob {6 maskChannelMask_ref +STARTLINE} maskChannelMask_ref {{maskChannelMask x1 0}} } push $N53e36590 NoOp { name CONTROL xpos 901 ypos 182 addUserKnob {20 User} addUserKnob {26 ""} addUserKnob {6 previewMode +STARTLINE} addUserKnob {3 rows} rows 1 addUserKnob {3 colums -STARTLINE} colums 1 addUserKnob {26 ""} addUserKnob {14 inputSize R 0 100} inputSize {{input.width} {input.height}} addUserKnob {14 resolution R 0 100} resolution {{inputSize} {inputSize}} addUserKnob {7 cropSoftnessPercent} cropSoftnessPercent 14 addUserKnob {14 cropSoftnessPixels -STARTLINE R 0 100} cropSoftnessPixels {{(((resolution/rows)+(resolution/colums)*0.5)+cropSoftnessPixels)*(cropSoftnessPercent*0.01)}} addUserKnob {14 cropSize R 0 100} cropSize {{(inputSize.w/rows)} {(inputSize.h/colums)}} addUserKnob {14 cropTransformOffset R 0 100} cropTransformOffset {{(inputSize.w/rows)} {(inputSize.h/colums)}} addUserKnob {26 ""} addUserKnob {7 convolve} addUserKnob {26 ""} addUserKnob {7 vignetteSoftness} addUserKnob {7 vignetteSize R 0 300} addUserKnob {7 vignetteSizePercent} addUserKnob {7 vignetteSpread R -1 1} vignetteSpread -1 addUserKnob {7 vignetteCenterHoldout} vignetteCenterHoldout 1 addUserKnob {26 ""} addUserKnob {7 doorSoftness R 0 100} doorSoftness 79 addUserKnob {7 doorSpread R -1 5} doorSpread -0.1 addUserKnob {7 doorTop R -25 300} doorTop -25 addUserKnob {7 doorBottom R -25 300} doorBottom -25 addUserKnob {7 doorLeft R -25 300} doorLeft -25 addUserKnob {7 doorRight R -25 300} doorRight -25 addUserKnob {26 ""} } Remove { inputs 0 channels rgba name Remove2 xpos -573 ypos 35 } push $Nc862e790 Viewer { input_process false name Viewer1 selected true xpos 840 ypos 638 } end_group