Group { name Nan_Remove help "Nan Remove\n\nTree ways to remove \"nan\" and \"inf\" pixels.\n\n- Selected Color: Fill all with a single color.\n- Nearest Pixel: Use the markerRemoval node.\n- Time Offset: For using a frame Before/After.\n" knobChanged "node = nuke.thisNode()\nknob = nuke.thisKnob()\n\nif knob.name() in ('methode', 'showPanel'):\n mode = node\['methode'].value()\n if mode == 'Selected Color':\n node\['color'].setVisible(True)\n node\['mode'].setVisible(False)\n node\['linearsearch'].setVisible(False)\n node\['time_offset'].setVisible(False)\n elif mode == 'Nearest Pixel':\n node\['color'].setVisible(False)\n node\['mode'].setVisible(True)\n node\['linearsearch'].setVisible(True)\n node\['time_offset'].setVisible(False)\n elif mode == 'Time Offset':\n node\['color'].setVisible(False)\n node\['mode'].setVisible(False)\n node\['linearsearch'].setVisible(False)\n node\['time_offset'].setVisible(True)\n\nif knob.name() in ('mode', 'showPanel'):\n mode = node\['mode'].value()\n if mode == 'bilinear':\n node\['linearsearch'].setVisible(True)\n if mode == 'radial':\n node\['linearsearch'].setVisible(False)\n \nif nuke.thisKnob().name() == 'nanselect':\n if node\['nanselect'].value() == True:\n node\['output'].setValue('\[value in] (a)')\n else:\n node\['output'].setValue('\[value in]')" tile_color 0xffffffff selected true addUserKnob {20 User l "Nan Remove"} addUserKnob {41 in l "@b;Channels" t "Remove nan on the selected channels." T Shuffle1.in} addUserKnob {1 output l INVISIBLE +INVISIBLE} output "\[value in]" addUserKnob {4 methode l " Methode" t "- Selected Color: Fill all with a single color.\n- Nearest Pixel: Use the markerRemoval node.\n- Time Offset: For using a frame Before/After." M {"Selected Color" "Nearest Pixel" "Time Offset" "" ""}} methode "Nearest Pixel" addUserKnob {6 nanselect l "Nan Pixel to Alpha" -STARTLINE} addUserKnob {26 S01 l " " T " "} addUserKnob {26 ""} addUserKnob {19 color l Color +HIDDEN} addUserKnob {6 color_panelDropped l "panel dropped state" -STARTLINE +HIDDEN} addUserKnob {4 mode l Type M {bilinear radial ""}} addUserKnob {3 linearsearch l Search} linearsearch 5 addUserKnob {3 time_offset l "Time Offset" +HIDDEN} time_offset -1 addUserKnob {26 FT1 l " " T " "} addUserKnob {26 FT2 l " " T " "} addUserKnob {26 FT3 l " " -STARTLINE T "Franklin VFX - 2016"} } Input { inputs 0 name Input xpos 484 ypos 105 } Dot { name Dot10 xpos 518 ypos 195 } set N4636000 [stack 0] Shuffle { in none name Shuffle1 label "\[value in]" xpos 484 ypos 250 } Remove { operation keep channels rgba name Remove4 xpos 484 ypos 288 } Dot { name Dot1 xpos 518 ypos 345 } set N4669400 [stack 0] Dot { name Dot8 xpos 806 ypos 345 } Expression { expr0 "isnan(r) || isinf(r) ?1:0" expr1 "isnan(g) || isinf(g) ?1:0" expr2 "isnan(b) || isinf(b) ?1:0" expr3 "isnan(a) || isinf(a) ?1:0" name ToAlpha xpos 772 ypos 409 } Expression { channel0 rgba expr0 clamp(r+g+b+a) channel1 none channel2 none channel3 none name RGBA xpos 772 ypos 435 } set N4668400 [stack 0] Dot { name Dot2 xpos 806 ypos 599 } set N44f75c00 [stack 0] Dot { name Dot9 xpos 806 ypos 864 } push $N44f75c00 push $N4668400 push $N4669400 Expression { expr0 "isnan(r) || isinf(r) ?0:r" expr1 "isnan(g) || isinf(g) ?0:g" expr2 "isnan(b) || isinf(b) ?0:b" expr3 "isnan(a) || isinf(a) ?0:a" name Black xpos 484 ypos 409 } ShuffleCopy { inputs 2 alpha alpha2 black alpha out2 mask name ShuffleCopy1 xpos 484 ypos 435 } Dot { name Dot6 xpos 518 ypos 504 } set N44f74800 [stack 0] TimeOffset { time_offset {{parent.time_offset i}} time "" name TimeOffset1 label "\[value time_offset]" xpos 644 ypos 495 } push $N44f74800 Keymix { inputs 3 name Keymix1 xpos 644 ypos 590 } Dot { name Dot5 xpos 678 ypos 666 } push $N44f74800 MarkerRemoval { mode {{parent.mode x18 1}} linearsearch {{parent.linearsearch}} ctrlMask mask.a x_offset 1 name MarkerRemoval1 xpos 484 ypos 576 } push $N4669400 Dot { name Dot7 xpos 351 ypos 345 } Expression { expr0 "isnan(r) || isinf(r) ?color.r:r" expr1 "isnan(g) || isinf(g) ?color.g:g" expr2 "isnan(b) || isinf(b) ?color.b:b" expr3 "isnan(a) || isinf(a) ?color.a:a" name ColorReplace xpos 317 ypos 409 addUserKnob {20 User} addUserKnob {19 color} color {{parent.color.r} {parent.color.g} {parent.color.b} {parent.color.a}} addUserKnob {6 color_panelDropped l "panel dropped state" -STARTLINE +HIDDEN} } Dot { name Dot3 xpos 351 ypos 666 } Switch { inputs 3 which {{parent.methode i}} name Switch1 xpos 484 ypos 662 } push $N4636000 Dot { name Dot4 xpos 251 ypos 195 } Dot { name Dot11 xpos 251 ypos 768 } ShuffleCopy { inputs 2 in2 {{{parent.Shuffle1.in}}} red red green green blue blue out {{{parent.Shuffle1.in}}} name ShuffleCopy2 xpos 484 ypos 764 } Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy1 xpos 484 ypos 854 disable {{!nanselect}} } Output { name FranklinVFX xpos 484 ypos 948 } end_group