Group { name Normalize help "Normalize\n\nSet the input channel between 0 to 1.\n" knobChanged "c = nuke.toNode('Copy3')\n\nif nuke.thisKnob().name() == 'inputChange':\n if nuke.thisNode().input(1) != None:\n c\['from0'].setValue('rgba.alpha')\n else:\n c\['from0'].setValue('none')\n \nnode = nuke.thisNode()\nknob = nuke.thisKnob()\nif knob.name() in ('frames', 'showPanel'):\n mode = node\['frames'].value()\n if mode == 'Every Frames':\n node\['hold'].setVisible(False)\n node\['blend'].setVisible(True)\n elif mode == 'Holded Frame':\n node\['hold'].setVisible(True)\n node\['blend'].setVisible(False)\n" selected true addUserKnob {20 N l Normalize} addUserKnob {41 channels l "@b;Channels" T DilateMax.channels} addUserKnob {26 S01 l " " T " "} addUserKnob {4 precision l " Precision" M {Low Mid High Full "" "" "" "" "" ""}} addUserKnob {4 mode l Methode M {"(rgba) Average" "(rgba) Separately" ""}} mode "(rgba) Separately" addUserKnob {4 frames l Sample M {"Holded Frame" "Every Frames" "" "" "" ""}} addUserKnob {3 hold l " Ref Frame" -STARTLINE} hold 1 addUserKnob {3 blend l " Blend Frames" -STARTLINE +HIDDEN} blend 1 addUserKnob {26 by1 l " " T " "} addUserKnob {26 by2 l " " T " "} addUserKnob {26 FTools l " " t "FranklinVFX.com\n" -STARTLINE T " Franklin VFX - 2016"} addUserKnob {26 ""} addUserKnob {41 from0 l Mask t "Use this channel from the original input to mix the output with the original input." T Copy3.from0} addUserKnob {41 invertMask l Invert -STARTLINE T Keymix2.invertMask} addUserKnob {7 mix l Mix} mix 1 } Input { inputs 0 name mask xpos -356 ypos 1393 number 1 addUserKnob {20 User} addUserKnob {6 in +STARTLINE} in {{"\[exists input1]"}} } add_layer {rgba rgba.beta} AddChannels { channels rgba name AddChannels3 xpos -356 ypos 1509 } set N7dc15c60 [stack 0] push $N7dc15c60 Copy { inputs 2 to0 rgba.alpha name Copy3 xpos -356 ypos 1533 disable {{!parent.mask.in i}} } Invert { name Invert1 xpos -356 ypos 1569 } Input { inputs 0 name Input xpos -685 ypos -457 } Dot { name Dot142 xpos -651 ypos -323 } set N7dc1c9c0 [stack 0] Dot { name Dot4 xpos -931 ypos -323 } Dot { name Dot3 xpos -931 ypos 1051 } set N7dc1d000 [stack 0] Dot { name Dot5 xpos -931 ypos 1145 } set N7dc1dc80 [stack 0] Dot { name Dot12 xpos -931 ypos 1301 } set N7dc19e00 [stack 0] Dot { name Dot7 xpos -931 ypos 1579 } set N7dc1dfa0 [stack 0] push $N7dc19e00 push $N7dc1d000 Expression { expr0 1 expr1 1 expr2 1 expr3 1 name Expression1 xpos -844 ypos 1047 } push $N7dc1c9c0 Reformat { type scale scale {{(trunc(((precision/3.33333)+0.1)*10))/10 i}} name Reformat6 xpos -685 ypos -250 disable {{clamp(parent.precision-2) i}} } Remove { operation keep channels {{{parent.DilateMax.channels}}} name Remove1 xpos -685 ypos -180 } set N7dc1aa80 [stack 0] Dot { name Dot151 xpos -795 ypos -171 } Dot { name Dot152 xpos -795 ypos 148 } set N7dc1e2c0 [stack 0] push $N7dc1aa80 Dot { name Dot1 xpos -390 ypos -171 } Dilate { channels {{{parent.DilateMax.channels}}} size {{"-max(input.format.w, input.format.h)*2" i}} name DilateMin tile_color 0x212121ff xpos -424 ypos -104 } Invert { name Invert2 tile_color 0x212121ff xpos -424 ypos -46 disable {{parent.mode i}} } Saturation { channels all saturation 0 mode Maximum name Saturation2 tile_color 0x212121ff xpos -424 ypos -10 disable {{parent.mode i}} } Invert { name Invert3 tile_color 0x212121ff xpos -424 ypos 26 disable {{parent.mode i}} } Clamp { maximum_enable false name Clamp1 xpos -424 ypos 89 disable true } CopyBBox { inputs 2 name CopyBBox2 xpos -424 ypos 144 } Dot { name Dot14 xpos -390 ypos 211 } set N7dc197c0 [stack 0] FrameHold { first_frame {{parent.hold i}} name FrameHold2 xpos -424 ypos 331 disable {{frames i x64 0}} } push $N7dc197c0 Dot { name Dot15 xpos -266 ypos 211 } FrameHold { first_frame {{Input.first_frame i x141 141}} name First_Hold xpos -300 ypos 329 disable {{"frame < Input.first_frame || frame > frame ? 0 : 1" i}} } FrameHold { first_frame {{Input.last_frame i x141 141}} name Last_Hold xpos -300 ypos 367 disable {{"frame > Input.last_frame ? 0 : 1" i}} } FrameBlend { channels {{{parent.DilateMax.channels}}} numframes {{parent.FrameBlend1.numframes}} name FrameBlend2 xpos -300 ypos 403 disable {{!frames}} } Dot { name Dot13 xpos -266 ypos 513 } Switch { inputs 2 which {{!frames}} name Switch4 xpos -424 ypos 509 } Reformat { type scale scale {{1/Reformat6.scale i}} name Reformat7 xpos -424 ypos 643 disable {{clamp(parent.precision-2) i}} } Dot { name Dot154 xpos -390 ypos 769 } set N7dc17ba0 [stack 0] push $N7dc1c9c0 Dot { name Dot155 xpos -112 ypos -323 } Dot { name Dot2 xpos -112 ypos 661 } Merge2 { inputs 2 operation from bbox B also_merge {{{parent.DilateMax.channels}}} name Merge68 xpos -146 ypos 766 } Clamp { channels {{{parent.DilateMax.channels}}} maximum_enable false name Clamp2 xpos -146 ypos 827 } Dot { name Dot156 xpos -112 ypos 893 } push $N7dc17ba0 push $N7dc1e2c0 push $N7dc1aa80 Dilate { channels rgb size {{"max(input.format.w, input.format.h)*2" i}} name DilateMax tile_color 0xfefefeff xpos -685 ypos -95 } Saturation { channels all saturation 0 mode Maximum name Saturation1 tile_color 0xfefefeff selected true xpos -685 ypos -1 disable {{parent.mode i}} } CopyBBox { inputs 2 name CopyBBox1 xpos -685 ypos 145 } Dot { name Dot6 xpos -651 ypos 219 } set N7dc20b60 [stack 0] FrameHold { first_frame {{parent.FrameHold2.knob.first_frame i}} name FrameHold1 xpos -685 ypos 331 disable {{frames i}} } push $N7dc20b60 Dot { name Dot9 xpos -543 ypos 219 } FrameHold { first_frame {{Input.first_frame i x141 141}} name First_Hold1 xpos -577 ypos 331 disable {{"frame < Input.first_frame || frame > frame ? 0 : 1" i}} } FrameHold { first_frame {{Input.last_frame x141 141}} name Last_Hold1 xpos -577 ypos 369 disable {{"frame > Input.last_frame ? 0 : 1"}} } FrameBlend { channels {{{parent.DilateMax.channels}}} numframes {{blend}} name FrameBlend1 xpos -577 ypos 407 disable {{!frames}} } Dot { name Dot10 xpos -543 ypos 508 } Switch { inputs 2 which {{!frames}} name Switch5 xpos -685 ypos 504 } Reformat { type scale scale {{1/Reformat6.scale i}} name Reformat8 xpos -685 ypos 640 disable {{clamp(parent.precision-2) i}} } Merge2 { inputs 2 operation from bbox B also_merge {{{parent.DilateMax.channels}}} name Merge69 xpos -685 ypos 765 } Merge2 { inputs 2 operation divide bbox B also_merge {{{parent.DilateMax.channels}}} name Merge70 xpos -685 ypos 889 } push $N7dc1dc80 Keymix { inputs 3 channels {{{parent.DilateMax.channels}}} maskChannel rgba.red bbox B name Keymix1 xpos -685 ypos 1136 } Copy { inputs 2 from0 {{{parent.Unpremult2.alpha}}} to0 {{{parent.Unpremult2.alpha}}} name Copy1 xpos -685 ypos 1291 } Dot { name Dot29 xpos -651 ypos 1439 } set N7dc22dc0 [stack 0] Keymix { inputs 3 name Keymix2 xpos -561 ypos 1569 disable {{!parent.mask.in i}} } push $N7dc22dc0 Switch { inputs 2 which {{Copy3.from0 i}} name Switch3 xpos -685 ypos 1706 } push $N7dc1dfa0 Dot { name Dot8 xpos -931 ypos 1826 } Dissolve { inputs 2 which {{parent.mix}} name Dissolve1 xpos -685 ypos 1816 } Output { name FranklinVFX xpos -685 ypos 1929 } end_group