set cut_paste_input [stack 0] version 12.2 v5 push $cut_paste_input Group { name HDR_PREPPER tile_color 1 label "\[value lightname]" selected true xpos 232 ypos -2 addUserKnob {20 light_ctrls l "Light Controls"} addUserKnob {26 hdrPrepTag l INVISIBLE +INVISIBLE T "scoping sucks."} addUserKnob {2 root_path l "Output Folder" t "Choose the root path of where to output the exr's."} root_path /var/tmp addUserKnob {22 setAllFolders l "Set all to this folder" t "Set all other HDRPreppers' output folders in this script to the path from this node." -STARTLINE T "n = nuke.thisNode()\nout = n\['root_path'].value()\nallGroupNodes = nuke.allNodes('Group', group = nuke.root())\n\nfor i in allGroupNodes:\n if i.knob('hdrPrepTag'):\n i\['root_path'].setValue(out) \n"} addUserKnob {1 lightname l "Light Name" t "Specify a unique name for this light."} lightname light1 addUserKnob {22 setNameForSel l "Set selected to this name" t "All other HDR_PREPPERs that you select in the nodegraph will have the same light name like this one (numbered consecutively)." -STARTLINE T "n = nuke.thisNode()\nwith nuke.root():\n sel = nuke.selectedNodes()\n\n#increase nummer list by number of HDR Preppers\n num=\[]\n for i in sel:\n if i.knob('hdrPrepTag'):\n num.append(i)\n\n num=len(num)\n\n name = n\['lightname'].getValue()\n base=name\[:-1]\n last=name\[-1]\n\n allGroupNodes = nuke.allNodes('Group', group = nuke.root())\n \n if sel == \[]:\n raise ValueError, 'No Nodes selected. Make sure to select other HDR_PREPPER Nodes.'\n else:\n pass\n\n#Set count to end number if there is one \n if last.isdigit() == True:\n count = int(last)\n else:\n count = 1\n\n#Set count one number higher than original name if its not included in the selection\n if not n in sel:\n count = count + 1\n\n#Set last number to \"1\" on this node if it doesnt have a number at the end\n\n if last.isdigit() == False:\n n\['lightname'].setValue(name + str(1)) \n else:\n pass\n\n while (count < num+1): \n for i in allGroupNodes:\n if i in sel:\n if i.knob('hdrPrepTag'):\n if last.isdigit() == False:\n newname=name + str(count)\n else:\n newname=base + str(count) \n i\['lightname'].setValue(newname) \n count = count + 1\n"} addUserKnob {41 Render -STARTLINE T Write1.Render} addUserKnob {20 EnvHDRGrp l "Env HDR Output" n 1} EnvHDRGrp 0 addUserKnob {1 hdrname l "HDR Name" t "Specify a name for the environment HDR."} hdrname env addUserKnob {6 KeepInputFormat l "Keep Input Format" t "If checked the output will have the same format like the incoming format." +STARTLINE} addUserKnob {4 setFormat l "| Format" -STARTLINE M {256x128 512x256 1024x512 2048x1024 4096x2048 8192x4096 custom "" "" ""}} setFormat 1024x512 addUserKnob {6 envConvolve l "EnvConvolve (c) Michael Garrett" t "Convolve the output. You must have the EnvConvolve gizmo installed, otherwhise it won't work." +STARTLINE} addUserKnob {7 exponent l "| exp" t "Set the environment convolution exponent. 1 represents a diffuse surface. Higher values exponentially increase specularity/glossiness." -STARTLINE R 1 100} exponent 40 addUserKnob {22 createOut l "Create Env Output" T "sel = nuke.thisNode()\nformat = sel\['setFormat'].getValue()\n\nwith nuke.root():\n #create Reformat\n if sel\['KeepInputFormat'].value() == False:\n ref=nuke.nodes.Reformat()\n ref.setInput(0,sel)\n if format == 0:\n try:\n Latlong256\n except:\n Latlong256=nuke.addFormat('256 128 1')\n ref\['format'].setValue(Latlong256)\n \n if format == 1:\n try:\n Latlong512\n except:\n Latlong512=nuke.addFormat('512 256 1')\n ref\['format'].setValue(Latlong512)\n \n if format == 2:\n try:\n Latlong1k\n except:\n Latlong1k=nuke.addFormat('1024 512 1')\n ref\['format'].setValue(Latlong1k)\n \n if format == 3:\n try:\n Latlong2k\n except:\n Latlong2k=nuke.addFormat('2048 1024 1')\n ref\['format'].setValue(Latlong2k)\n \n if format == 4:\n try:\n Latlong4k\n except:\n Latlong4k=nuke.addFormat('4096 2048 1')\n ref\['format'].setValue(Latlong4k)\n \n if format == 5:\n try:\n Latlong8k\n except:\n Latlong8k=nuke.addFormat('8192 4096 1')\n ref\['format'].setValue(Latlong8k)\n\n if format == 6:\n customRes = nuke.getInput('Custom Resolution:', '128x64')\n if not 'x' in customRes:\n raise ValueError, 'Make sure to use a proper format (Width x Height). For example 1024x512'\n\n else:\n reslist = customRes.split('x')\n cRes = str(reslist\[0] + ' ' + reslist\[1] + ' 1')\n LatlongCustom=nuke.addFormat(cRes)\n ref\['format'].setValue(LatlongCustom)\n\n #create EnvConvolve\n if sel\['envConvolve'].value() == True: \n conv=nuke.nodes.EnvConvolve()\n if sel\['KeepInputFormat'].value() == False:\n conv.setInput(0,ref)\n else:\n conv.setInput(0,sel)\n exp=sel\['exponent'].getValue()\n conv\['phexp'].setValue(exp)\n conv\['label'].setValue('exp: \[value phexp]') \n \n\n #create Write Node\n wr=nuke.nodes.Write()\n if sel\['KeepInputFormat'].value() == False:\n if sel\['envConvolve'].value() == False:\n wr.setInput(0,ref)\n else:\n wr.setInput(0,conv)\n else:\n if sel\['envConvolve'].value() == False:\n wr.setInput(0,sel)\n else:\n wr.setInput(0,conv)\n\n wr\['channels'].setValue('rgba')\n outPath=sel\['root_path'].value()\n outName=sel\['hdrname'].value()\n wr\['file'].setValue(outPath + '/' + outName + '.exr')\n wr\['file_type'].setValue('exr')\n wr\['datatype'].setValue('32 bit float')\n" +STARTLINE} addUserKnob {20 endGroup_2 l endGroup n -1} addUserKnob {26 ""} addUserKnob {20 lightremoval l "Light Removal Settings" n 1} addUserKnob {41 area1 l Area t "Wrap this box tightly around the light source. This will define the output size of the extracted light." T Crop1.box} addUserKnob {41 size l "Edge Smudge" t "Control the amount of edge pixels sucked into the light-crop area. Increase this value if holes appear." T Smudge1.size} addUserKnob {14 FilterErode1_size l "Edge Extend" t "Extend the edges around the crop area to clean more of the surrounding pixels" R -100 100} FilterErode1_size -10 addUserKnob {7 edge_blur1 l "Edge Blur" t "Blur the edges of the light-crop area." R 0 100} edge_blur1 10 addUserKnob {6 rough_edge1 l "Rough Edge" t "Break up the edges. Best to be used with higher Edge Blur values." +STARTLINE} addUserKnob {7 bring_details1 l Details t "Bring back original Details." R 0 100} bring_details1 3.5 addUserKnob {41 detail_blur1 l "Detail Blur" t "Soften the re-introduced Details." T detailBlur1.size} addUserKnob {41 useSingleColor l "Fill with constant color" t "Fill in the light area with a solid color." T Switch1.disable} addUserKnob {41 singleColor l Color t "The color to fill the light area with if \"Use constant color\" is checked." T Grade2.black} addUserKnob {20 endGroup n -1} addUserKnob {26 ""} addUserKnob {20 addCtrls l "Additional Controls" n 1} addUserKnob {6 output_lightmask l "Output Lights Mask" t "Outputs the masks of the lights into the alpha channel." +STARTLINE} output_lightmask true addUserKnob {0 Shuffle4_disable t "Wheter to apply the edge extensions and blurs to the mask or not." -STARTLINE +INVISIBLE} addUserKnob {20 endGroup_1 l endGroup n -1} } BackdropNode { inputs 0 name BackdropNode1 tile_color 0x565656ff label details note_font_size 42 xpos -580 ypos 1059 bdwidth 428 bdheight 279 } Input { inputs 0 name Input1 xpos -3 ypos 208 } Dot { name Dot39 xpos 31 ypos 309 } set N6831d400 [stack 0] Dot { name Dot38 xpos -611 ypos 309 } Dot { name Dot37 xpos -611 ypos 2190 } Input { inputs 0 name Mask xpos -276 ypos 692 number 1 } set N6831c800 [stack 0] push $N6831d400 Shuffle { alpha white name Shuffle1 label "\[value in]" xpos -3 ypos 368 } Dot { name Dot7 xpos 31 ypos 426 } Dot { name Dot3 xpos 31 ypos 601 } set N682cf800 [stack 0] Crop { box {250 100 450 300} name Crop1 xpos -123 ypos 637 } ChannelMerge { inputs 2 operation multiply name ChannelMerge2 xpos -123 ypos 680 } add_layer {lightmaskOrig lightmaskOrig.red lightmaskOrig.green lightmaskOrig.blue lightmaskOrig.alpha} Shuffle { red alpha green alpha blue alpha out lightmaskOrig name Shuffle3 label "\[value in]" xpos -123 ypos 730 } FilterErode { channels rgba size {{parent.FilterErode1_size.w} {parent.FilterErode1_size.h}} name FilterErode1 xpos -123 ypos 772 } Blur { channels rgba size {{parent.edge_blur1}} name Blur1 label "\[value size]" xpos -123 ypos 811 } Dot { name Dot31 xpos -89 ypos 882 } set N682ce000 [stack 0] Dot { name Dot33 xpos -159 ypos 882 } set N682cdc00 [stack 0] FilterErode { channels rgba size -12 name FilterErode6 xpos -193 ypos 924 } push $N682cdc00 Dot { name Dot32 xpos -255 ypos 882 } set N682cd400 [stack 0] Shuffle { red black green black blue black alpha black name Shuffle2 label "\[value in]" xpos -289 ypos 908 } Noise { size 10.5 gain 0.46 gamma 0.635 center {1024 778} name Noise1 xpos -289 ypos 957 } Dot { name Dot4 xpos -255 ypos 1018 } push $N682ce000 Merge2 { inputs 2+1 operation color-dodge name Merge16 xpos -123 ypos 1014 disable {{!parent.rough_edge1}} } Blur { channels rgba size 4 name Blur4 label "\[value size]" xpos -123 ypos 1061 disable {{!parent.rough_edge1}} } Dot { name Dot9 xpos -89 ypos 1597 } set N6827b800 [stack 0] Shuffle { in lightmaskOrig red alpha out alpha name Shuffle4 label "\[value in]" xpos -123 ypos 1677 disable {{!parent.Shuffle4_disable}} } Dot { name Dot45 xpos -89 ypos 2017 } push $N6827b800 push $N682cd400 Dot { name Dot2 xpos -331 ypos 882 } push $N682cf800 Dot { name Dot1 xpos -441 ypos 601 } Colorspace { colorspace_out Cineon name Colorspace1 label "\[value colorspace_in] >> \[value colorspace_out]" xpos -475 ypos 1139 } set N6827a400 [stack 0] push $N6827a400 Blur { channels rgba size {{parent.bring_details1}} name details1 label "\[value size]" xpos -570 ypos 1187 } Merge2 { inputs 2 operation minus name Merge1 xpos -475 ypos 1233 } Blur { channels rgba size 4 name detailBlur1 label "\[value size]" xpos -475 ypos 1296 } Merge2 { inputs 2 operation mask name Merge3 xpos -365 ypos 1302 } push $N682ce000 push $N682cf800 ChannelMerge { inputs 2 operation stencil name ChannelMerge1 xpos -3 ypos 866 } Premult { name Premult1 xpos -3 ypos 1057 } Blur { channels rgba size {65 65} name Smudge1 label "\[value size]" xpos -3 ypos 1083 } Unpremult { name Unpremult1 xpos -3 ypos 1121 } Merge2 { inputs 2 operation plus name Merge2 xpos -3 ypos 1302 } Clamp { channels rgba maximum 10000 name Clamp2 xpos -3 ypos 1328 } push $N682cf800 Dot { name Dot6 xpos 122 ypos 601 } set N68a13400 [stack 0] Grade { black {0 0 0 0} multiply 0 name Grade2 xpos 88 ypos 1335 } Switch { inputs 2 which 1 name Switch1 label singlecolor xpos -3 ypos 1407 } Shuffle { alpha black name Shuffle6 label "\[value in]" xpos -3 ypos 1445 } Dot { name Dot5 xpos 31 ypos 1541 } push $N6831d400 Dot { name Dot10 xpos 213 ypos 309 } Keymix { inputs 3 channels rgba name Keymix1 xpos 179 ypos 1593 } Grade { name clamp_blacks xpos 179 ypos 1894 } ChannelMerge { inputs 2 name ChannelMerge4 xpos 179 ypos 2001 } Clamp { channels alpha name Clamp1 xpos 179 ypos 2074 } ShuffleCopy { inputs 2 name ShuffleCopy1 xpos 179 ypos 2186 disable {{parent.output_lightmask x1 1}} } Output { name Output1 xpos 179 ypos 2625 } push $N6831c800 push $N68a13400 Dot { name Dot8 xpos 327 ypos 601 } ChannelMerge { inputs 2 operation multiply name ChannelMerge3 xpos 293 ypos 680 } Premult { name Premult2 xpos 293 ypos 730 } Crop { box {{Crop1.box} {Crop1.box} {Crop1.box} {Crop1.box}} softness {{Crop1.softness}} reformat true intersect {{Crop1.intersect}} crop {{Crop1.crop x1250 0}} name Crop1_clone1 xpos 293 ypos 756 icon "\[value Crop1.icon]" bookmark {{Crop1.bookmark}} } Write { channels rgba file "\[value parent.root_path]/\[value parent.lightname].exr" colorspace linear raw true file_type exr datatype "32 bit float" first_part rgba version 4 name Write1 tile_color 0xb8b80001 label "\nexr compression: \[value compression]" xpos 293 ypos 782 addUserKnob {20 Modules} addUserKnob {4 write_modules l module M {" " Comp_footage Comp_render Weekly "Weekly Resolution"}} addUserKnob {1 wm_layer l layer} addUserKnob {22 trixter_update_me +INVISIBLE T "try:\n import tx_nuke.write_modules as wm\n wm.update_node(nuke.thisNode())\nexcept: pass" +STARTLINE} addUserKnob {20 keller l Keller} addUserKnob {4 extension l Extension M {" " cin dpx exr hdr jpeg "mov\t\t\tffmpeg" mxf null pic png sgi targa tiff xpm yuv}} extension exr addUserKnob {4 subtask l Subtask t "Defaults to the Task selected in sceneControl, ignoring Element and Info.\nAll other subtasks are pre-renders and get rendered into the precomp (=prerender) directory." M {--------------->}} addUserKnob {22 w_reload l Reload t "Reload Tasks" -STARTLINE T sceneControl.kenvWriteReloadSubTasks(nuke.thisNode())} addUserKnob {1 element l Element t "Optional Specifier. For example \[BG]_denoise. \[FG]_denoise."} addUserKnob {1 info l Info t "Optional Info before Framenumber.\nPRO_comp3d_001_010.comp3d_v008.\[acescg].%04d.exr"} addUserKnob {22 set l Set t "Set Output Path of this node" T sceneControl.kenvWriteSetPath(nuke.thisNode()) +STARTLINE} addUserKnob {26 divider1 l "" +STARTLINE} addUserKnob {6 ignore l "ignore in sceneControl" -STARTLINE} addUserKnob {26 divider2 l "" +STARTLINE} addUserKnob {22 playinrv l "Play in RV" t "Opens new instance of RV" T playInRV.playInRV(nuke.thisNode().knob('file').getValue(),0) +STARTLINE} addUserKnob {22 pushtorv l "Push to RV" t "Push to tagged RV. Will open RV and uses this instance to directly push sequences." -STARTLINE T playInRV.playInRV(nuke.thisNode().knob('file').getValue(),1)} addUserKnob {22 pushtorvappend l "Push to RV (append)" t "Push to RV and append to existing sources" -STARTLINE T playInRV.playInRV(nuke.thisNode().knob('file').getValue(),2)} addUserKnob {26 divider3 l "" +STARTLINE} addUserKnob {22 explore l Explore t "Open Folder" -STARTLINE T exploreThis.exploreThis()} addUserKnob {78 ver l Version +HIDDEN n 1} ver 1 } NoOp { inputs 0 name sceneCtrl tile_color 0x3379a401 label "_\n__" selected true hide_input true addUserKnob {20 main l Main} addUserKnob {1 project l Project t "Project Shortname"} project HOTZ addUserKnob {4 dept l Dept t "Department. Changes tasks and servers." -STARTLINE M {comp anim cam dev model layout lookdev light shots sim}} addUserKnob {4 task l Task -STARTLINE M {comp denoise key layout neutralgrade prep stabilize dev}} addUserKnob {1 element l Element t "Optional Element." -STARTLINE} addUserKnob {22 reloadConfig l Reload t "Reload project config file." -STARTLINE T sceneControl.kenvDelete()} addUserKnob {1 season l Season +HIDDEN} season 01 addUserKnob {1 episode l Episode +HIDDEN} episode 101 addUserKnob {26 divider1 l "" +STARTLINE} addUserKnob {1 sequence l Seq t "can be a sequence number or gen when doing generic tasks.\n\ncomp_001_010.comp_v01.ms.nk\ncomp_gen.footageIngest_v01.ms.nk"} sequence 001 addUserKnob {1 shot l Shot t "can be a shot number or gen in a multiShot context.\n\ncomp_001_010.comp_v01.ms.nk\ncomp_001_gen.comp_v01.ms.nk" -STARTLINE} shot 010 addUserKnob {3 major_version l Major t "Increment Major Version and save script"} major_version 1 addUserKnob {22 increment_major_version l + -STARTLINE T sceneControl.increment_major_version()} addUserKnob {3 minor_version l Minor t "Increment Minor Version and save script" -STARTLINE} minor_version 1 addUserKnob {22 increment_minor_version l + -STARTLINE T sceneControl.increment_minor_version()} addUserKnob {22 save_script l Save t "Save Script with current Major and Minor" -STARTLINE T sceneControl.save_script()} addUserKnob {6 overwrite l Overwrite t "Automatically overwrite Scriptfiles without asking." -STARTLINE} addUserKnob {1 info l Info t "Additional (mandatory) File Info."} addUserKnob {1 user l User t "User Short. Reading Env Variable: USER" -STARTLINE} user ms addUserKnob {26 divider2 l "" +STARTLINE} addUserKnob {1 folder l Folder t "Save folder Preview." +DISABLED} folder "\$env(PROJECT_ROOT_2D)/300_work2D/comp/001/010/" addUserKnob {6 useEnvProjectRoot l "Use Env Project Root" t "Use env variables for 2d and 3d servers set in the site_config.\nUse these env variables before nuke startup." -STARTLINE} useEnvProjectRoot true addUserKnob {1 file l File t "Save file Preview." +DISABLED} file HOT_comp_001_010.comp_v001.001.ms.nk addUserKnob {26 divider3 l "" +STARTLINE} addUserKnob {3 fStart l Start t Startframe} fStart 1001 addUserKnob {3 fCutIn l CutIn t CutIn -STARTLINE} fCutIn 1001 addUserKnob {3 fCutOut l CutOut t CutOut -STARTLINE} fCutOut 1001 addUserKnob {3 fEnd l End t Endframe -STARTLINE} fEnd 1001 addUserKnob {22 get_framerange l "Get Range" t "Get Framerange from FTrack.\nPlease check you firewall rules and and allow ftrack ip 104.155.3.128 on port 443" -STARTLINE T sceneControl.get_framerange(nuke.thisNode())} addUserKnob {22 set_framerange l "Set Range" t "Set Framerange from SceneControl Interface" -STARTLINE T sceneControl.set_framerange(nuke.thisNode())} addUserKnob {43 comment l Comment} addUserKnob {3 layerNum l Slots +HIDDEN} addUserKnob {1 eval_helper +HIDDEN} addUserKnob {6 stereoToggle l "Stereo Toggle" -STARTLINE +HIDDEN} addUserKnob {1 precomp_output l "Precomp Output" +HIDDEN} addUserKnob {6 debug l Debug -STARTLINE +HIDDEN} debug true } end_group # Creation Time=Wed Jul 7 12:46:20 2021 # Creator=Martin