#! C:/Program Files/Nuke15.0v3/nuke-15.0.3.dll -nx version 15.0 v3 define_window_layout_xml { } Root { inputs 0 name "Z:/Biohazard Nextcloud 2/_Tools/Nuke/Biohazard/Master Template/Covert Template/Covert Template.nk" frame 5 last_frame 1250 format "4448 3096 0 0 4448 3096 1 " proxy_type scale proxy_format "1024 778 0 0 1024 778 1 1K_Super_35(full-ap)" colorManagement OCIO OCIO_config fn-nuke_studio-config-v1.0.0_aces-v1.3_ocio-v2.1 defaultViewerLUT "OCIO LUTs" workingSpaceLUT ACES2065-1 monitorLut "ACES 1.0 - SDR Video (Rec.1886 Rec.709 - Display)" monitorOutLUT "ACES 1.0 - SDR Video (Rec.1886 Rec.709 - Display)" int8Lut "Gamma 2.4 Rec.709 - Texture" int16Lut aces_interchange logLut "Gamma 1.8 Rec.709 - Texture" floatLut Gamma2.6 set_by_user_template true addUserKnob {20 User} } BackdropNode { inputs 0 name BackdropNode17 tile_color 0x232323ff label
IN note_font "Century Gothic Bold" note_font_size 200 note_font_color 0xafafafff xpos -4852 ypos -9259 bdwidth 9925 bdheight 7669 z_order -4 } BackdropNode { inputs 0 name BackdropNode18 tile_color 0x232323ff label
OUT note_font "Century Gothic Bold" note_font_size 200 note_font_color 0xafafafff xpos -4852 ypos 21271 bdwidth 9925 bdheight 5169 z_order -4 } BackdropNode { inputs 0 name " " tile_color 0x222222ff label
VIEWERS note_font "Arial Black" note_font_size 100 note_font_color 0xaeaeaeff xpos -517 ypos -10439 bdwidth 1255 bdheight 574 } BackdropNode { inputs 0 name " 1" tile_color 0x222222ff label
PIPELINE note_font "Arial Black" note_font_size 100 note_font_color 0xaeaeaeff xpos -241 ypos -11428 bdwidth 703 bdheight 631 } BackdropNode { inputs 0 name " 3" tile_color 0x878787ff label
NEGATIVE note_font "Arial Black" note_font_size 100 note_font_color 0x3f3f3fff xpos -410 ypos 19309 bdwidth 1040 bdheight 405 } BackdropNode { inputs 0 name " 4" tile_color 0x878787ff label "
FRAME RANGE" note_font "Arial Black" note_font_size 100 note_font_color 0x3f3f3fff xpos -409 ypos 19729 bdwidth 1038 bdheight 429 } BackdropNode { inputs 0 name " 5" tile_color 0x769fb4ff label
METADATA note_font "Arial Black" note_font_size 88 note_font_color 0x2e566fff xpos -516 ypos 18374 bdwidth 1252 bdheight 499 } BackdropNode { inputs 0 name BackdropNode1 tile_color 0x769fb4ff gl_color 0x446f84ff label
PLATES note_font "Century Gothic Bold" note_font_size 200 note_font_color 0x2f5770ff xpos -1846 ypos -6093 bdwidth 4133 bdheight 3882 } BackdropNode { inputs 0 name BackdropNode10 tile_color 0xbababaff label "
MASTER FG" note_font "Century Gothic Bold" note_font_size 60 note_font_color 0x3b3b3bff xpos -916 ypos -5516 bdwidth 293 bdheight 328 } BackdropNode { inputs 0 name BackdropNode11 tile_color 0xde7c76ff label
CG note_font "Century Gothic Bold" note_font_size 200 note_font_color 0x631414ff xpos -4243 ypos -8544 bdwidth 2767 bdheight 1776 } BackdropNode { inputs 0 name BackdropNode12 tile_color 0x5eac60ff label
ROTO note_font "Century Gothic Bold" note_font_size 200 note_font_color 0x254222ff xpos -1273 ypos -8544 bdwidth 2767 bdheight 1776 } BackdropNode { inputs 0 name BackdropNode13 tile_color 0x7987d9ff label "
MISC ASSETS" note_font "Century Gothic Bold" note_font_size 200 note_font_color 0x293f63ff xpos 1697 ypos -8544 bdwidth 2767 bdheight 1776 } BackdropNode { inputs 0 name BackdropNode14 tile_color 0xbababaff label "
MASTER BG" note_font "Century Gothic Bold" note_font_size 60 note_font_color 0x3b3b3bff xpos 844 ypos -5516 bdwidth 293 bdheight 328 } BackdropNode { inputs 0 name BackdropNode15 tile_color 0x4d7a89ff label "
BG DEGRAIN" note_font "Century Gothic Bold" note_font_size 200 note_font_color 0x234154ff xpos 514 ypos -4524 bdwidth 952 bdheight 1416 } BackdropNode { inputs 0 name BackdropNode16 tile_color 0xb9babaff label
REF note_font "Century Gothic Bold" note_font_size 60 note_font_color 0x3b3b3bff xpos -429 ypos -5506 bdwidth 1078 bdheight 547 } BackdropNode { inputs 0 name BackdropNode19 tile_color 0x5c7f3dff label
MATTES note_font "Century Gothic Bold" note_font_size 200 note_font_color 0xacd68bff xpos 2324 ypos 22619 bdwidth 1292 bdheight 2665 } BackdropNode { inputs 0 name BackdropNode2 tile_color 0x4d7a89ff label "
FG DEGRAIN" note_font "Century Gothic Bold" note_font_size 200 note_font_color 0x234154ff xpos -1246 ypos -4524 bdwidth 952 bdheight 1416 } BackdropNode { inputs 0 name BackdropNode20 tile_color 0x7f7f7fff label
QC note_font "Century Gothic Bold" note_font_size 200 note_font_color 0x363636ff xpos -3506 ypos 22619 bdwidth 1292 bdheight 2665 } BackdropNode { inputs 0 name BackdropNode25 tile_color 0xb9b9b9ff label
TRANSFORMS note_font "Arial Black" note_font_size 96 note_font_color 0x3b3b3bff xpos -3151 ypos -6110 bdwidth 1242 bdheight 988 } BackdropNode { inputs 0 name BackdropNode3 tile_color 0x99b860ff label
TRACK note_font "Century Gothic Bold" note_font_size 200 note_font_color 0xeeff6dff xpos -1434 ypos -270 bdwidth 3088 bdheight 1548 } BackdropNode { inputs 0 name BackdropNode4 tile_color 0x5d9349ff label
CLEANUP note_font "Century Gothic Bold" note_font_size 200 note_font_color 0x74ff6dff xpos -1437 ypos 1858 bdwidth 3095 bdheight 3435 } BackdropNode { inputs 0 name BackdropNode5 tile_color 0x7f7f7fff label
ASSET note_font "Century Gothic Bold" note_font_size 200 note_font_color 0x2f2f2fff xpos -6060 ypos 5948 bdwidth 5741 bdheight 4999 } BackdropNode { inputs 0 name BackdropNode6 tile_color 0x4d7a89ff label "
PLATE BACK OVER" note_font "Century Gothic Bold" note_font_size 200 note_font_color 0x234154ff xpos 780 ypos 7520 bdwidth 5041 bdheight 5599 } BackdropNode { inputs 0 name BackdropNode7 tile_color 0x689f38ff label "
MASTER OUTPUT" note_font "Century Gothic Bold" note_font_size 200 note_font_color 0x152f00ff xpos -1776 ypos 22624 bdwidth 3773 bdheight 2656 } BackdropNode { inputs 0 name BackdropNode8 tile_color 0x6e7aa2ff label
REGRAIN note_font "Century Gothic Bold" note_font_size 200 note_font_color 0x393f54ff xpos -732 ypos 17225 bdwidth 1685 bdheight 733 } BackdropNode { inputs 0 name BackdropNode9 tile_color 0x9f8ad5ff label "
LENS FX" note_font "Century Gothic Bold" note_font_size 200 note_font_color 0x4b4675ff xpos -1198 ypos 13927 bdwidth 2617 bdheight 1761 } BackdropNode { inputs 0 name " 6" tile_color 0x73af81ff label
log2lin note_font "Arial Black" note_font_size 100 note_font_color 0x344f38ff xpos -2626 ypos -5694 bdwidth 407 bdheight 300 z_order 1 } BackdropNode { inputs 0 name " 7" tile_color 0xa28bd3ff label
lin2log note_font "Arial Black" note_font_size 100 note_font_color 0x4e4366ff xpos -3063 ypos -5694 bdwidth 407 bdheight 300 z_order 1 } BackdropNode { inputs 0 name BackdropNode21 tile_color 0xaaaaaaff label
EXR note_font "Century Gothic Bold" note_font_size 100 note_font_color 0xffffffff xpos -1395 ypos 23699 bdwidth 590 bdheight 841 z_order 3 } BackdropNode { inputs 0 name BackdropNode22 tile_color 0xaaaaaaff label "
QT Dailies" note_font "Century Gothic Bold" note_font_size 100 note_font_color 0xffffffff xpos 1033 ypos 23700 bdwidth 795 bdheight 840 z_order 3 } BackdropNode { inputs 0 name BackdropNode23 tile_color 0xaaaaaaff label "
QT LOG" note_font "Century Gothic Bold" note_font_size 100 note_font_color 0xffffffff xpos -515 ypos 23723 bdwidth 590 bdheight 841 z_order 3 } BackdropNode { inputs 0 name BackdropNode30 tile_color 0xaaaaaaff label "
QT Rec.709" note_font "Century Gothic Bold" note_font_size 100 note_font_color 0xffffffff xpos 255 ypos 23723 bdwidth 590 bdheight 841 z_order 3 } CheckerBoard2 { inputs 0 name CheckerBoard7 xpos -810 ypos -5289 } AppendClip { firstFrame {{root.first_frame}} meta_from_first false time "" name AppendClip1 xpos -810 ypos -5097 } OCIODisplay { colorspace ACES2065-1 display "sRGB - Display" view "ACES 1.0 - SDR Video" invert true name INVERSE_DISPLAY_TRANSFORM2 xpos -810 ypos -5025 addUserKnob {20 User} addUserKnob {52 python l "" +STARTLINE T "nuke.thisNode().knob(\"colorspace\").setValue(nuke.root().knob(\"workingSpaceLUT\").value())" +STARTLINE} } NoOp { name SET_PROJECT1 tile_color 0x8a39dbff note_font "Verdana Bold" note_font_size 24 xpos -810 ypos -4912 addUserKnob {20 User} addUserKnob {22 set_range l "SET RANGE" t "Sets the project's frame range to the input's first and last frames.\nThe range will automatically reset to start at frame 1001." T "def remap_range(input_start, input_end, desired_start=1001):\n\tinput_start = int(input_start)\n\tinput_end = int(input_end)\n\toffset = desired_start - input_start\n\tremapped_range = range(input_start + offset, input_end + offset + 1)\n\n\treturn list(remapped_range)\n\nrange_first = 1001\nrange_last = 1250\n\nif nuke.thisNode().input(0):\n\tremapped_range = remap_range(nuke.thisNode().firstFrame(), nuke.thisNode().lastFrame())\n\t\t\n\trange_first = remapped_range\[0]\n\trange_last = \tremapped_range\[-1]\n\n\tnuke.root().knob(\"first_frame\").setValue(range_first)\n\tnuke.root().knob(\"last_frame\").setValue(range_last)\n\n\tnuke.frame(range_first)" +STARTLINE} addUserKnob {22 reset_range l RESET t "Resets the project's frame range to 1001-1250." -STARTLINE T "range_first = 1001\nrange_last = 1250\n\nnuke.root().knob(\"first_frame\").setValue(range_first)\nnuke.root().knob(\"last_frame\").setValue(range_last)\n\nnuke.frame(range_first)"} addUserKnob {22 set_format l "SET FORMAT" t "Matches the project's format with the input's format." T "if nuke.thisNode().input(0):\n\ttopnode_name = nuke.tcl(\"full_name \[topnode %s]\" % nuke.thisNode().input(0).name())\n\ttopnode = nuke.toNode(topnode_name)\n\n\tif topnode:\n\t\tif topnode.knob(\"format\"):\n\t\t\tformat = topnode.knob(\"format\").value()\n\t\t\twidth = format.width()\n\t\t\theight = format.height()\n\t\t\taspect = format.pixelAspect()\n\t\t\tformat_name = f\"\{width\}x\{height\}\"\n\n\t\t\texisting_formats = \[f.name() for f in nuke.formats()]\n\n\t\t\tif format_name not in existing_formats:\n\t\t\t\tnew_format = nuke.addFormat(f\"\{width\} \{height\} \{aspect\} \{format_name\}\")\n\n\t\t\tnuke.root().knob(\"format\").setValue(format_name)\n\t\telse:\n\t\t\tprint(\"Not\")" +STARTLINE} addUserKnob {22 reset_format l RESET t "Resets the project's format to \"UHD_4K\"." -STARTLINE T "format_name = \"UHD_4K\"\nexisting_formats = \[f.name() for f in nuke.formats()]\n\nif format_name not in existing_formats:\n\tnew_format = nuke.addFormat(f\"\{3840\} \{2160\} \{1.0\} \{format_name\}\")\n\nnuke.root().knob(\"format\").setValue(format_name)"} } Dot { name Dot4 xpos -788 ypos -4770 } set Naecde000 [stack 0] ViewMetaData { name ViewMetaData1 xpos -590 ypos -4761 } Dot { inputs 0 name Dot21 xpos 202 ypos -7338 } NoOp { name Anchor_d807bb6e7 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.anchorOnCreate()\n except:\n pass" knobChanged stamps.anchorKnobChanged() autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0xffffff01 note_font_size 20 xpos 180 ypos -7238 addUserKnob {20 anchor_tab l "Anchor Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T anchor} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title roto_mb addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T roto_mb} addUserKnob {26 prev_name l "" +STARTLINE +HIDDEN T Anchor_d807bb6e7} addUserKnob {3 showing l "" +STARTLINE +HIDDEN} addUserKnob {1 tags l Tags t "Comma-separated tags you can define for each Anchor, that will help you find it when invoking the Stamp Selector by pressing the Stamps shortkey with nothing selected."} tags 2D, addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 createStamp l new t "Create a new Stamp for this Anchor." -STARTLINE T stamps.stampCreateWired(nuke.thisNode())} addUserKnob {22 selectStamps l select t "Reconnect all of this Anchor's Stamps." -STARTLINE T stamps.wiredSelectSimilar(nuke.thisNode().name())} addUserKnob {22 reconnectStamps l reconnect -STARTLINE T stamps.anchorReconnectWired()} addUserKnob {22 zoomNext l "zoom next" t "Navigate to this Anchor's next Stamp on the Node Graph." -STARTLINE T stamps.wiredZoomNext(nuke.thisNode().name())} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } set Naecdec00 [stack 0] PostageStamp { name Stamp5 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 180 ypos -7166 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title roto_mb addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T roto_mb} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
ROTO} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_d807bb6e7 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } Dot { inputs 0 name Dot20 xpos 3062 ypos -7338 } NoOp { name Anchor_1e04d64fa2 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.anchorOnCreate()\n except:\n pass" knobChanged stamps.anchorKnobChanged() autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0xffffff01 note_font_size 20 xpos 3040 ypos -7238 addUserKnob {20 anchor_tab l "Anchor Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T anchor} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title assets addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T assets} addUserKnob {26 prev_name l "" +STARTLINE +HIDDEN T Anchor_1e04d64fa2} addUserKnob {3 showing l "" +STARTLINE +HIDDEN} addUserKnob {1 tags l Tags t "Comma-separated tags you can define for each Anchor, that will help you find it when invoking the Stamp Selector by pressing the Stamps shortkey with nothing selected."} tags 2D, addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 createStamp l new t "Create a new Stamp for this Anchor." -STARTLINE T stamps.stampCreateWired(nuke.thisNode())} addUserKnob {22 selectStamps l select t "Reconnect all of this Anchor's Stamps." -STARTLINE T stamps.wiredSelectSimilar(nuke.thisNode().name())} addUserKnob {22 reconnectStamps l reconnect -STARTLINE T stamps.anchorReconnectWired()} addUserKnob {22 zoomNext l "zoom next" t "Navigate to this Anchor's next Stamp on the Node Graph." -STARTLINE T stamps.wiredZoomNext(nuke.thisNode().name())} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } set Naecdf800 [stack 0] PostageStamp { name Stamp7 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 3040 ypos -7166 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title assets addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T assets} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T "
MISC ASSETS"} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_1e04d64fa2 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } Dot { inputs 0 name Dot18 xpos -2878 ypos -7338 } NoOp { name Anchor_21fbe55a0b help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.anchorOnCreate()\n except:\n pass" knobChanged stamps.anchorKnobChanged() autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0xffffff01 note_font_size 20 xpos -2900 ypos -7238 addUserKnob {20 anchor_tab l "Anchor Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T anchor} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title cg addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T cg} addUserKnob {26 prev_name l "" +STARTLINE +HIDDEN T Anchor_21fbe55a0b} addUserKnob {3 showing l "" +STARTLINE +HIDDEN} addUserKnob {1 tags l Tags t "Comma-separated tags you can define for each Anchor, that will help you find it when invoking the Stamp Selector by pressing the Stamps shortkey with nothing selected."} tags 2D, addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 createStamp l new t "Create a new Stamp for this Anchor." -STARTLINE T stamps.stampCreateWired(nuke.thisNode())} addUserKnob {22 selectStamps l select t "Reconnect all of this Anchor's Stamps." -STARTLINE T stamps.wiredSelectSimilar(nuke.thisNode().name())} addUserKnob {22 reconnectStamps l reconnect -STARTLINE T stamps.anchorReconnectWired()} addUserKnob {22 zoomNext l "zoom next" t "Navigate to this Anchor's next Stamp on the Node Graph." -STARTLINE T stamps.wiredZoomNext(nuke.thisNode().name())} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } set Naed06400 [stack 0] PostageStamp { name Stamp8 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -2900 ypos -7166 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title cg addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T cg} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
CG} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_21fbe55a0b addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } push $Naecde000 Dot { name Dot1 xpos -788 ypos -3978 } OFXcom.absoft.neatvideo5_v5 { DNP "" ProfileName "no profile" NFP "" PresetName default ParamsHash1 0 ParamsHash2 0 ParamsHash3 0 name "Reduce Noise v5_1" xpos -810 ypos -3873 } Write { file "\[getenv CVRT_SHOT_ROOT]/Input/plates/\[string range \[file tail \[value \[topnode].file]] 0 \[expr \{\[string first \".\" \[file tail \[value \[topnode].file]]] - 1\}]]_dn/\[string range \[file tail \[value \[topnode].file]] 0 \[expr \{\[string first \".\" \[file tail \[value \[topnode].file]]] - 1\}]]_dn.%04d.exr" file_type exr compression "Zip (16 scanlines)" first_part rgba colorspace Gamma2.6 create_directories true checkHashOnRead false version 44 ocioColorspace ACES2065-1 display "sRGB - Display" view "ACES 1.0 - SDR Video" name Write6 label "\n\n\[python os.path.normpath(nuke.thisNode().knob(\"file\").evaluate())]" xpos -810 ypos -3819 } Dot { name Dot7 xpos -788 ypos -3474 } NoOp { name Anchor_7da7cf1af help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.anchorOnCreate()\n except:\n pass" knobChanged stamps.anchorKnobChanged() autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0xffffff01 note_font_size 20 xpos -810 ypos -3374 addUserKnob {20 anchor_tab l "Anchor Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T anchor} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title FG_degrained addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T FG_dn} addUserKnob {26 prev_name l "" +STARTLINE +HIDDEN T Anchor_7da7cf1af} addUserKnob {3 showing l "" +STARTLINE +HIDDEN} addUserKnob {1 tags l Tags t "Comma-separated tags you can define for each Anchor, that will help you find it when invoking the Stamp Selector by pressing the Stamps shortkey with nothing selected."} tags 2D, addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 createStamp l new t "Create a new Stamp for this Anchor." -STARTLINE T stamps.stampCreateWired(nuke.thisNode())} addUserKnob {22 selectStamps l select t "Reconnect all of this Anchor's Stamps." -STARTLINE T stamps.wiredSelectSimilar(nuke.thisNode().name())} addUserKnob {22 reconnectStamps l reconnect -STARTLINE T stamps.anchorReconnectWired()} addUserKnob {22 zoomNext l "zoom next" t "Navigate to this Anchor's next Stamp on the Node Graph." -STARTLINE T stamps.wiredZoomNext(nuke.thisNode().name())} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } set Naebbc000 [stack 0] PostageStamp { name Stamp13 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 70 ypos 130 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title FG_degrained addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T FG_degrained} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
DENOISE} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_7da7cf1af addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } Dot { name Dot2 xpos 92 ypos 414 } set Naebbc800 [stack 0] Dot { name Dot23 xpos -678 ypos 414 } push $Naebbc800 Dot { name Dot22 xpos 862 ypos 414 } push $Naecdf800 PostageStamp { name Stamp9 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -3120 ypos 6514 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title assets addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T assets} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T "
MISC ASSETS"} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_1e04d64fa2 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } push $Naed06400 PostageStamp { name Stamp10 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -3340 ypos 6514 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title cg addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T cg} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
CG} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_21fbe55a0b addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } CheckerBoard2 { inputs 0 name CheckerBoard6 xpos 950 ypos -5313 } AppendClip { firstFrame {{root.first_frame}} time "" name AppendClip2 xpos 950 ypos -5097 } OCIODisplay { colorspace ACEScg display "sRGB - Display" view "ACES 1.0 - SDR Video" invert true name INVERSE_DISPLAY_TRANSFORM3 xpos 950 ypos -5001 addUserKnob {20 User} addUserKnob {52 python l "" +STARTLINE T "nuke.thisNode().knob(\"colorspace\").setValue(nuke.root().knob(\"workingSpaceLUT\").value())" +STARTLINE} } NoOp { name SET_PROJECT2 tile_color 0x8a39dbff note_font "Verdana Bold" note_font_size 24 xpos 950 ypos -4912 addUserKnob {20 User} addUserKnob {22 set_range l "SET RANGE" t "Sets the project's frame range to the input's first and last frames.\nThe range will automatically reset to start at frame 1001." T "def remap_range(input_start, input_end, desired_start=1001):\n\tinput_start = int(input_start)\n\tinput_end = int(input_end)\n\toffset = desired_start - input_start\n\tremapped_range = range(input_start + offset, input_end + offset + 1)\n\n\treturn list(remapped_range)\n\nrange_first = 1001\nrange_last = 1250\n\nif nuke.thisNode().input(0):\n\tremapped_range = remap_range(nuke.thisNode().firstFrame(), nuke.thisNode().lastFrame())\n\t\t\n\trange_first = remapped_range\[0]\n\trange_last = \tremapped_range\[-1]\n\n\tnuke.root().knob(\"first_frame\").setValue(range_first)\n\tnuke.root().knob(\"last_frame\").setValue(range_last)\n\n\tnuke.frame(range_first)" +STARTLINE} addUserKnob {22 reset_range l RESET t "Resets the project's frame range to 1001-1250." -STARTLINE T "range_first = 1001\nrange_last = 1250\n\nnuke.root().knob(\"first_frame\").setValue(range_first)\nnuke.root().knob(\"last_frame\").setValue(range_last)\n\nnuke.frame(range_first)"} addUserKnob {22 set_format l "SET FORMAT" t "Matches the project's format with the input's format." T "if nuke.thisNode().input(0):\n\ttopnode_name = nuke.tcl(\"full_name \[topnode %s]\" % nuke.thisNode().input(0).name())\n\ttopnode = nuke.toNode(topnode_name)\n\n\tif topnode:\n\t\tif topnode.knob(\"format\"):\n\t\t\tformat = topnode.knob(\"format\").value()\n\t\t\twidth = format.width()\n\t\t\theight = format.height()\n\t\t\taspect = format.pixelAspect()\n\t\t\tformat_name = f\"\{width\}x\{height\}\"\n\n\t\t\texisting_formats = \[f.name() for f in nuke.formats()]\n\n\t\t\tif format_name not in existing_formats:\n\t\t\t\tnew_format = nuke.addFormat(f\"\{width\} \{height\} \{aspect\} \{format_name\}\")\n\n\t\t\tnuke.root().knob(\"format\").setValue(format_name)\n\t\telse:\n\t\t\tprint(\"Not\")" +STARTLINE} addUserKnob {22 reset_format l RESET t "Resets the project's format to \"UHD_4K\"." -STARTLINE T "format_name = \"UHD_4K\"\nexisting_formats = \[f.name() for f in nuke.formats()]\n\nif format_name not in existing_formats:\n\tnew_format = nuke.addFormat(f\"\{3840\} \{2160\} \{1.0\} \{format_name\}\")\n\nnuke.root().knob(\"format\").setValue(format_name)"} } Dot { name Dot24 xpos 972 ypos -4770 } set Naebeb000 [stack 0] ViewMetaData { name ViewMetaData2 xpos 1170 ypos -4761 } push $Naebeb000 NoOp { name Anchor_2d7fd1 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.anchorOnCreate()\n except:\n pass" knobChanged stamps.anchorKnobChanged() autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0xffffff01 note_font_size 20 xpos 730 ypos -4766 addUserKnob {20 anchor_tab l "Anchor Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T anchor} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title BG_plate addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T plate} addUserKnob {26 prev_name l "" +STARTLINE +HIDDEN T Anchor_2d7fd1} addUserKnob {3 showing l "" +STARTLINE +HIDDEN} addUserKnob {1 tags l Tags t "Comma-separated tags you can define for each Anchor, that will help you find it when invoking the Stamp Selector by pressing the Stamps shortkey with nothing selected."} tags 2D, addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 createStamp l new t "Create a new Stamp for this Anchor." -STARTLINE T stamps.stampCreateWired(nuke.thisNode())} addUserKnob {22 selectStamps l select t "Reconnect all of this Anchor's Stamps." -STARTLINE T stamps.wiredSelectSimilar(nuke.thisNode().name())} addUserKnob {22 reconnectStamps l reconnect -STARTLINE T stamps.anchorReconnectWired()} addUserKnob {22 zoomNext l "zoom next" t "Navigate to this Anchor's next Stamp on the Node Graph." -STARTLINE T stamps.wiredZoomNext(nuke.thisNode().name())} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } PostageStamp { name Stamp14 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 730 ypos -4718 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title BG_plate addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T BG_plate} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
PLATE} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_2d7fd1 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } push $Naebeb000 Dot { name Dot25 xpos 972 ypos -3978 } OFXcom.absoft.neatvideo5_v5 { DNP "" ProfileName "no profile" NFP "" PresetName default ParamsHash1 0 ParamsHash2 0 ParamsHash3 0 name "Reduce Noise v5_2" xpos 950 ypos -3873 } Write { file "\[getenv CVRT_SHOT_ROOT]/Input/plates/\[string range \[file tail \[value \[topnode].file]] 0 \[expr \{\[string first \".\" \[file tail \[value \[topnode].file]]] - 1\}]]_dn/\[string range \[file tail \[value \[topnode].file]] 0 \[expr \{\[string first \".\" \[file tail \[value \[topnode].file]]] - 1\}]]_dn.%04d.exr" file_type exr compression "Zip (16 scanlines)" first_part rgba create_directories true checkHashOnRead false version 44 in_colorspace ACES2065-1 out_colorspace scene_linear ocioColorspace ACES2065-1 display "sRGB - Display" view "ACES 1.0 - SDR Video" name Write3 label "\n\n\[python os.path.normpath(nuke.thisNode().knob(\"file\").evaluate())]" xpos 950 ypos -3819 } Dot { name Dot26 xpos 972 ypos -3474 } NoOp { name Anchor_7da7cf1af1 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.anchorOnCreate()\n except:\n pass" knobChanged stamps.anchorKnobChanged() autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0xffffff01 note_font_size 20 xpos 950 ypos -3374 addUserKnob {20 anchor_tab l "Anchor Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T anchor} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title BG_degrained addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T dn} addUserKnob {26 prev_name l "" +STARTLINE +HIDDEN T Anchor_7da7cf1af1} addUserKnob {3 showing l "" +STARTLINE +HIDDEN} addUserKnob {1 tags l Tags t "Comma-separated tags you can define for each Anchor, that will help you find it when invoking the Stamp Selector by pressing the Stamps shortkey with nothing selected."} tags 2D, addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 createStamp l new t "Create a new Stamp for this Anchor." -STARTLINE T stamps.stampCreateWired(nuke.thisNode())} addUserKnob {22 selectStamps l select t "Reconnect all of this Anchor's Stamps." -STARTLINE T stamps.wiredSelectSimilar(nuke.thisNode().name())} addUserKnob {22 reconnectStamps l reconnect -STARTLINE T stamps.anchorReconnectWired()} addUserKnob {22 zoomNext l "zoom next" t "Navigate to this Anchor's next Stamp on the Node Graph." -STARTLINE T stamps.wiredZoomNext(nuke.thisNode().name())} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } PostageStamp { name Stamp15 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 950 ypos -3326 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title BG_degrained addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T BG_degrained} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
DENOISE} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_7da7cf1af1 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } push $Naebbc000 PostageStamp { name Stamp2 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -810 ypos -3326 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title FG_degrained addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T FG_degrained} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
DENOISE,
PLATE} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_7da7cf1af addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } CheckerBoard2 { inputs 0 name CheckerBoard3 xpos 400 ypos -5289 } NoOp { name Anchor_3da2192eb2 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.anchorOnCreate()\n except:\n pass" knobChanged stamps.anchorKnobChanged() autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0xffffff01 note_font_size 20 xpos 400 ypos -5150 addUserKnob {20 anchor_tab l "Anchor Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T anchor} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title ref_3 addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T ref_1} addUserKnob {26 prev_name l "" +STARTLINE +HIDDEN T Anchor_3da2192eb2} addUserKnob {3 showing l "" +STARTLINE +HIDDEN} addUserKnob {1 tags l Tags t "Comma-separated tags you can define for each Anchor, that will help you find it when invoking the Stamp Selector by pressing the Stamps shortkey with nothing selected."} tags 2D, addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 createStamp l new t "Create a new Stamp for this Anchor." -STARTLINE T stamps.stampCreateWired(nuke.thisNode())} addUserKnob {22 selectStamps l select t "Reconnect all of this Anchor's Stamps." -STARTLINE T stamps.wiredSelectSimilar(nuke.thisNode().name())} addUserKnob {22 reconnectStamps l reconnect -STARTLINE T stamps.anchorReconnectWired()} addUserKnob {22 zoomNext l "zoom next" t "Navigate to this Anchor's next Stamp on the Node Graph." -STARTLINE T stamps.wiredZoomNext(nuke.thisNode().name())} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } PostageStamp { name Stamp18 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 400 ypos -5102 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title ref_3 addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T ref_3} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
REF,
PLATE} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_3da2192eb2 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } push $Naecde000 NoOp { name Anchor_2d7fd50644 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.anchorOnCreate()\n except:\n pass" knobChanged stamps.anchorKnobChanged() autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0xffffff01 note_font_size 20 xpos -1030 ypos -4766 addUserKnob {20 anchor_tab l "Anchor Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T anchor} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title FG_plate addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T FG_plate} addUserKnob {26 prev_name l "" +STARTLINE +HIDDEN T Anchor_2d7fd50644} addUserKnob {3 showing l "" +STARTLINE +HIDDEN} addUserKnob {1 tags l Tags t "Comma-separated tags you can define for each Anchor, that will help you find it when invoking the Stamp Selector by pressing the Stamps shortkey with nothing selected."} tags 2D, addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 createStamp l new t "Create a new Stamp for this Anchor." -STARTLINE T stamps.stampCreateWired(nuke.thisNode())} addUserKnob {22 selectStamps l select t "Reconnect all of this Anchor's Stamps." -STARTLINE T stamps.wiredSelectSimilar(nuke.thisNode().name())} addUserKnob {22 reconnectStamps l reconnect -STARTLINE T stamps.anchorReconnectWired()} addUserKnob {22 zoomNext l "zoom next" t "Navigate to this Anchor's next Stamp on the Node Graph." -STARTLINE T stamps.wiredZoomNext(nuke.thisNode().name())} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } set Na70e8c00 [stack 0] PostageStamp { name Stamp1 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -1030 ypos -4718 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title FG_plate addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T FG_plate} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
PLATES,
IN} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_2d7fd50644 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } push $Naebbc000 PostageStamp { name Stamp21 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 70 ypos 1666 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title FG_degrained addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T FG_degrained} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
DENOISE} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_7da7cf1af addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } Dot { name Dot3 xpos 92 ypos 2190 } NoOp { name Anchor_feb4243e5 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.anchorOnCreate()\n except:\n pass" knobChanged stamps.anchorKnobChanged() autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0xffffff01 note_font_size 20 xpos 70 ypos 5074 addUserKnob {20 anchor_tab l "Anchor Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T anchor} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title FG_cleanup addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T FG_cleanup} addUserKnob {26 prev_name l "" +STARTLINE +HIDDEN T Anchor_feb4243e5} addUserKnob {3 showing l "" +STARTLINE +HIDDEN} addUserKnob {1 tags l Tags t "Comma-separated tags you can define for each Anchor, that will help you find it when invoking the Stamp Selector by pressing the Stamps shortkey with nothing selected."} tags 2D, addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 createStamp l new t "Create a new Stamp for this Anchor." -STARTLINE T stamps.stampCreateWired(nuke.thisNode())} addUserKnob {22 selectStamps l select t "Reconnect all of this Anchor's Stamps." -STARTLINE T stamps.wiredSelectSimilar(nuke.thisNode().name())} addUserKnob {22 reconnectStamps l reconnect -STARTLINE T stamps.anchorReconnectWired()} addUserKnob {22 zoomNext l "zoom next" t "Navigate to this Anchor's next Stamp on the Node Graph." -STARTLINE T stamps.wiredZoomNext(nuke.thisNode().name())} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } set Na70e9c00 [stack 0] PostageStamp { name Stamp23 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 70 ypos 5122 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title FG_cleanup addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T FG_cleanup} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
CLEANUP} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_feb4243e5 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } push $Na70e8c00 PostageStamp { name Stamp22 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -260 ypos 18634 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title FG_plate addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T FG_plate} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
PLATE} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_2d7fd50644 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } push $Naebbc000 PostageStamp { name Stamp6 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 400 ypos 17722 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title FG_degrained addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T FG_degrained} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
DENOISE} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_7da7cf1af addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } push $Na70e8c00 PostageStamp { name Stamp3 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -260 ypos 17722 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title FG_plate addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T FG_plate} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
PLATE} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_2d7fd50644 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } push $Naecdec00 PostageStamp { name Stamp12 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 4690 ypos 9850 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title roto_mb addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T roto_mb} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
ROTO} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_d807bb6e7 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } Dot { name Dot48 xpos 4712 ypos 10182 } Dot { inputs 0 name Dot19 xpos -18 ypos -7338 } NoOp { name Anchor_232b89ffe3 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.anchorOnCreate()\n except:\n pass" knobChanged stamps.anchorKnobChanged() autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0xffffff01 note_font_size 20 xpos -40 ypos -7238 addUserKnob {20 anchor_tab l "Anchor Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T anchor} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title roto addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T roto} addUserKnob {26 prev_name l "" +STARTLINE +HIDDEN T Anchor_232b89ffe3} addUserKnob {3 showing l "" +STARTLINE +HIDDEN} addUserKnob {1 tags l Tags t "Comma-separated tags you can define for each Anchor, that will help you find it when invoking the Stamp Selector by pressing the Stamps shortkey with nothing selected."} tags 2D, addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 createStamp l new t "Create a new Stamp for this Anchor." -STARTLINE T stamps.stampCreateWired(nuke.thisNode())} addUserKnob {22 selectStamps l select t "Reconnect all of this Anchor's Stamps." -STARTLINE T stamps.wiredSelectSimilar(nuke.thisNode().name())} addUserKnob {22 reconnectStamps l reconnect -STARTLINE T stamps.anchorReconnectWired()} addUserKnob {22 zoomNext l "zoom next" t "Navigate to this Anchor's next Stamp on the Node Graph." -STARTLINE T stamps.wiredZoomNext(nuke.thisNode().name())} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } set Naea49c00 [stack 0] PostageStamp { name Stamp11 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 4250 ypos 9850 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title roto addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T roto} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
ROTO} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_232b89ffe3 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } Switch { inputs 2 which 1 name Switch2 xpos 4250 ypos 10191 } Dot { name Dot31 xpos 4272 ypos 11046 } push $Na70e9c00 PostageStamp { name Stamp28 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 70 ypos 7413 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title FG_cleanup addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T FG_cleanup} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
CLEANUP} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_feb4243e5 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } Dot { name Dot9 xpos 92 ypos 8262 } set Naea83000 [stack 0] Dot { name Dot10 xpos 3282 ypos 8262 } Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy1 xpos 3260 ypos 11049 } Premult { name Premult1 xpos 3260 ypos 11127 } Dot { name Dot11 xpos 3282 ypos 12462 } Dot { inputs 0 name Dot6 xpos -3208 ypos 6726 } Dot { name Dot5 xpos -3208 ypos 10254 } push $Naea83000 Merge2 { inputs 2 name Merge1 xpos 70 ypos 10263 } Merge2 { inputs 2 name Merge2 xpos 70 ypos 12471 disable true } Reformat { name Reformat1 xpos 70 ypos 16503 } Remove { operation keep channels rgb name Remove1 xpos 70 ypos 16527 } NoOp { name Anchor_12ba88c423 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.anchorOnCreate()\n except:\n pass" knobChanged stamps.anchorKnobChanged() autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0xffffff01 note_font_size 20 xpos 70 ypos 16906 addUserKnob {20 anchor_tab l "Anchor Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T anchor} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title MAIN_COMP_DEGRAINED addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T MASTER_COMP_DEGRAINED} addUserKnob {26 prev_name l "" +STARTLINE +HIDDEN T Anchor_12ba88c423} addUserKnob {3 showing l "" +STARTLINE +HIDDEN} addUserKnob {1 tags l Tags t "Comma-separated tags you can define for each Anchor, that will help you find it when invoking the Stamp Selector by pressing the Stamps shortkey with nothing selected."} tags 2D, addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 createStamp l new t "Create a new Stamp for this Anchor." -STARTLINE T stamps.stampCreateWired(nuke.thisNode())} addUserKnob {22 selectStamps l select t "Reconnect all of this Anchor's Stamps." -STARTLINE T stamps.wiredSelectSimilar(nuke.thisNode().name())} addUserKnob {22 reconnectStamps l reconnect -STARTLINE T stamps.anchorReconnectWired()} addUserKnob {22 zoomNext l "zoom next" t "Navigate to this Anchor's next Stamp on the Node Graph." -STARTLINE T stamps.wiredZoomNext(nuke.thisNode().name())} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } set Na74fa000 [stack 0] PostageStamp { name Stamp31 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 70 ypos 16954 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title MAIN_COMP_DEGRAINED addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T MAIN_COMP_DEGRAINED} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." +HIDDEN T " "} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_12ba88c423 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } Group { inputs 3 name DasGrain help "DasGrain makes regraining as simple as clicking a few buttons.\n\nFollow the steps in the Help tab and you'll have a perfect regrain in no time!" onCreate "import random\n\ntestimonials = \[\n \"Such an elegant solution, love it!\",\n \"Your gizmo is beyond expectation\",\n \"Totally awesome!\",\n \"DasGrain is officially the best thing ever\",\n \"It's really working!\",\n \"Das bringt Tränen in meine Augen\",\n \"DasGrain is the salvation we waited for\",\n \"I save a lot of time, and definitely my nerves :)\",\n \"It's alright\",\n \"My new favourite node, thanks!
Having said that, ...\"\n ]\n\nnode = nuke.thisNode()\nnode\['testimonial'].setValue('


«%s»
— anonymous

' % random.choice(testimonials))\nnode\['box'].setFlag(nuke.NO_ANIMATION)" knobChanged "n = nuke.thisNode()\nk = nuke.thisKnob()\n\nif k.name() == 'box':\n this_frame = nuke.frame()\n n\['sample_frame'].setValue(this_frame)\n\nif k.name() == 'scatter':\n n\['divider04'].setVisible(k.value() == False)\n n\['divider05'].setVisible(k.value() == True)" tile_color 0x7f7f7fff xpos 70 ypos 17721 addUserKnob {20 DasGrain_tab l DasGrain} addUserKnob {41 output t "regrained comp it is what it sais\nplate grain plate minus degrained plate\nnormalised grain check if the normalization worked. It should be as even as possible. This is what you want to output if you want to prerender a grain plate. Later you can plug it into the external grain input of another DasGrain\nadapted grain check if the adaptation worked. Output this if you want to further manipulate the grain (who knows what the sup is gonna come up with...). After, simply plus it to your comp (at that point the comp has to be in the camera colorspace, as set in the Analyze tab).\ngrain QC check if voronoi seams are visible (→ edgeblend), or the scattered grain looks different to the original plate grain (→ maybe bad sample area or wrong luminance degrain amount)" T Output.output} addUserKnob {4 meta l "metadata from" t "Chances are you want to use the metadata from the plate, but who am I to assume :)" M {COMP PLATE}} addUserKnob {26 spacer01_1 l " " T " "} addUserKnob {20 GrainGroupBegin l "" +STARTLINE n -2} addUserKnob {20 Analyze_tab l Analyze} addUserKnob {26 text l Colorspace} addUserKnob {41 project_colorspace l project t "set this to the project color space" T OCIOColorSpace1.in_colorspace} addUserKnob {22 python_button l "What's this all about?" -STARTLINE T "nuke.message(\"Regraining in other color spaces than the camera native linear space can lead to unexpected behaviour.\\n\\nFor example converting Alexa plates to ACEScg might introduce negative values due to ACEScg's smaller gamut. In that case converting back to ARRI Linear ALEXA Wide Gamut will probably help.\\nJust set project to ACEScg and camera to ARRI Linear ALEXA Wide Gamut.\\n\\nThis might be transferable to other cameras, but I've only tested with Alexas.\\n---------\\nBypass by setting both knobs to the same value.\")"} addUserKnob {41 camera_colorspace l camera t "set this to the camera native linear space" T OCIOColorSpace1.out_colorspace} addUserKnob {26 text_2 l " " T " "} addUserKnob {26 level l "Degrain amount"} addUserKnob {78 luminance t "Leave this at 1 if you're working on a completely degrained plate.\n\nIn case you decided to leave some luminance grain in the degrained plate (use the DegrainHelper node for this!), set this to the same value as in the DegrainHelper in order to compensate.\n\nIf the luminance degrain amount was set to 0.8, this needs to be set to 0.8 as well.\n\nYou need to select a mask of all elements that cover the plate, otherwise the grain of whole comp will be too strong " n 1} luminance 1 addUserKnob {26 divider01 l " "} addUserKnob {41 degrain_amount_mask l "degrain amount mask" t "Use this channel from the mask input to specify in what area of the comp the missing luminance grain needs to be compensated." T Multiply1.maskChannelMask} addUserKnob {41 invert_mask l invert -STARTLINE T Multiply1.invert_mask} addUserKnob {26 spacer02 l " " T " "} addUserKnob {26 divider02 l Analyze} addUserKnob {3 number_of_frames l "number of frames" t "Set the number of sample frames to be spread across the input range.\n\nMore frames lead to higher accuracy.\n\nIf there are particularly bright or dark frames, set them manually in the knob below to make sure they are part of the analysis.\n\nIf you want to set all sample frames manually, set this to 0 and add the frames in the knob below."} number_of_frames 10 addUserKnob {1 additional_frames l "additional frames" t "Set additional frames like this:\n\n1001,1020,1053 (single frames)\n1020-1040 (frame ranges)\n1020-1040x4 (frame ranges with step)"} addUserKnob {3 sample_count l "sample count" t "The samples are spread across the sample range (which gets calculated automatically) based on the AlexaV3LogC curve. This results in more samples in the dark areas and less samples in the brights.\n\nMore samples lead to a more detailed response curve (while the accuracy is limited by the quality of the degrain)."} sample_count 20 addUserKnob {22 analyze l Analyze t "this is where the magic happens" T "import base64\nthis = nuke.thisNode()\n\n\ndef _sample_count(this):\n \"\"\"returns the sample count\"\"\"\n\n sample_count = int(this\['sample_count'].value())\n\n if sample_count <= 0:\n raise RuntimeError('Enter a sample count greater than 0')\n\n else:\n return sample_count\n\n\ndef _generate_frame_list(this):\n \"\"\"converts the frames submitted by the user into a list\"\"\"\n\n frame_list = \[]\n number_of_frames = int(this\['number_of_frames'].value())\n additional_frames = this\['additional_frames'].value()\n\n if number_of_frames < 1 and additional_frames is '':\n raise RuntimeError('Either set the number of frames > 0\\nor define additional frames')\n\n first_frame = max(this.input(1).firstFrame(), this.input(2).firstFrame())\n last_frame = min(this.input(1).lastFrame(), this.input(2).lastFrame())\n\n if number_of_frames > 0:\n distance = (last_frame - first_frame) / (number_of_frames)\n frame = first_frame + distance / 2\n\n for x in range(number_of_frames):\n int_frame = int(round(frame))\n if int_frame not in frame_list:\n frame_list.append(int_frame)\n\n frame += distance\n\n frange = nuke.FrameRanges(additional_frames.split(','))\n\n for r in frange:\n for f in r:\n if f >= first_frame and f <= last_frame:\n if f not in frame_list:\n frame_list.append(f)\n\n frame_list.sort()\n\n return frame_list\n\n\ndef _setup_for_multiframe(frame_list):\n \"\"\" arranges all sample frames next to each other, starting at frame 0\n and sets the frame number knob of the FrameBlend node\"\"\"\n\n time_warp = nuke.toNode('TimeWarp1')\n time_warp\['lookup'].clearAnimated()\n time_warp\['lookup'].setAnimated()\n anim_list = \[]\n\n for n, frame in enumerate(frame_list):\n anim_list.append(nuke.AnimationKey(n, frame))\n\n anim = time_warp\['lookup'].animation(0)\n anim.addKey(anim_list)\n\n frame_blend = nuke.toNode('FrameBlend1')\n frame_blend\['endframe'].setValue(len(frame_list)-1)\n\n\ndef _generate_sample_list(sample_count, sample_range, sample_radius):\n \"\"\"generate a list of sample values spread equally between the\n min and max values of the sample range\"\"\"\n\n sample_list = \[]\n\n for item in range(0, sample_count):\n sample_list.append(float(item) / sample_count * (sample_range\[1] - sample_range\[0]) + sample_range\[0] + sample_radius)\n\n return sample_list\n\n\ndef _get_sample_range(channel, channel_list, frame_list):\n \"\"\" samples the minimum and maximum values of the given frame range and\n sets the sample range to those values\"\"\"\n\n curve_tool = nuke.toNode('CurveTool_Range')\n min_knob = curve_tool\['minlumapixvalue']\n max_knob = curve_tool\['maxlumapixvalue']\n\n min_knob.setAnimated()\n max_knob.setAnimated()\n\n curve_tool\['channels'].setValue(channel)\n\n nuke.execute(curve_tool, nuke.FrameRanges(frame_list))\n\n index = channel_list.index(channel)\n min_list = \[key.y for key in min_knob.animation(index).keys()]\n max_list = \[key.y for key in max_knob.animation(index).keys()]\n\n min_value = min(min_list)\n max_value = max(max_list)\n\n min_knob.clearAnimated()\n max_knob.clearAnimated()\n curve_tool\['minlumapixdata'].clearAnimated()\n curve_tool\['maxlumapixdata'].clearAnimated()\n\n return \[min_value, max_value]\n\n\ndef _sample_it(keyer, curve_tool, sample, sample_radius):\n \"\"\"analyze the grain level per channel and sample value in the sample range\"\"\"\n\n keyer\['temp_expr0'].setValue(str(sample - sample_radius))\n keyer\['temp_expr1'].setValue(str(sample + sample_radius))\n\n intensity_knob = curve_tool\['intensitydata']\n intensity_knob.clearAnimated()\n intensity_knob.setAnimated()\n\n nuke.execute(curve_tool, nuke.frame(), nuke.frame())\n sample_values = intensity_knob.value()\n intensity_knob.clearAnimated()\n\n return sample_values\n\n\ndef check_inputs(this):\n if this.input(1) is None:\n raise RuntimeError('no plate connected')\n\n if this.input(2) is None:\n raise RuntimeError('no degrained plate connected')\n\n def format_tuple(node):\n return node.format().width(), node.format().height(), node.format().pixelAspect()\n\n if format_tuple(this.input(1)) != format_tuple(this.input(2)):\n raise RuntimeError(\"Format missmatch: Make sure the formats of plate and degrained plate match.\")\n\n\ndef start(this):\n \"\"\"let's do this!\"\"\"\n\n check_inputs(this)\n\n with this:\n frame_list = _generate_frame_list(this)\n _setup_for_multiframe(frame_list)\n sample_count = _sample_count(this)\n\n blank = base64.b64decode('cmVkIHtjdXJ2ZX0KZ3JlZW4ge2N1cnZlfQpibHVlIHtjdXJ2ZX0=').decode('ascii')\n\n lut = nuke.toNode('Sampler1')\['lut']\n lut.fromScript(blank)\n\n channel_list = \['red', 'green', 'blue']\n\n keyer = nuke.toNode('Expression2')\n copy = nuke.toNode('Copy2')\n\n curve_tool = nuke.toNode('CurveTool')\n pixel = curve_tool\['ROI'].value()\[2] * curve_tool\['ROI'].value()\[3]\n\n task = nuke.ProgressTask('Analysing...')\n step = 100.0 / 3 / sample_count\n progress = step\n\n time_warp = nuke.toNode('TimeWarp1')\n frame_blend = nuke.toNode('FrameBlend1')\n\n time_warp\['disable'].setValue(False)\n frame_blend\['disable'].setValue(False)\n\n for channel in channel_list:\n task.setMessage('\{\} range'.format(channel))\n\n copy\['from0'].setValue('rgba.\{\}'.format(channel))\n\n sample_range = _get_sample_range(channel, channel_list, frame_list)\n sample_radius = (sample_range\[1] - sample_range\[0]) / sample_count / 2\n sample_list = _generate_sample_list(sample_count, sample_range, sample_radius)\n\n for sample in sample_list:\n if task.isCancelled():\n return\n\n task.setProgress(int(progress))\n\n sample_values = _sample_it(keyer, curve_tool, sample, sample_radius)\n\n task.setMessage('\{\} channel at \{\}'.format(channel, round(sample, 2)))\n\n if sample_values\[3] * pixel >= 10:\n lut.setValueAt(sample_values\[0] / sample_values\[3], sample_values\[1] / sample_values\[3], channel_list.index(channel))\n\n progress += step\n\n time_warp\['lookup'].clearAnimated()\n time_warp\['disable'].setValue(True) # hopefully prevents slowing down the comp\n frame_blend\['disable'].setValue(True) # hopefully prevents slowing down the comp\n\n del task\n\n\nstart(this)\n" +STARTLINE} addUserKnob {26 divider03 l " "} addUserKnob {41 analysis_mask l "analysis mask" t "Use this channel from the mask input to control what area of the plate will be analyzed.\n\nUsefull if the degrain is obviously bad in some areas." T ChannelMerge1.A} addUserKnob {6 invert_1 l invert -STARTLINE} addUserKnob {20 Adjust_tab l Adjust} addUserKnob {22 whatsthis l "What am I looking at?" T "nuke.message(\"After the analysis you'll see the sampled grain response curves here. On the x-axis is the brightness of the image and on the y-axis the grain intensity. Grain increases with brightness, so the slope of the curves should always be positive (they should always go up ↗).

The quality of the curves depends entirely on the quality of the degrain. If the curves look wrong (for example they go up and down), try to improve the degrain first. If they still look wrong and the resulting regrain doesn't work well enough, you can try to improve the curves here by deleting/correcting all points that don't follow an upwards trend.

You can also extend the curves (again: with an upwards trend) if the comp has values that don't exist in the plate.

Note: The curve is used for both the normalization as well as the adaptation of the grain, so it doesn't give direct control of the grain intensity.\")" +STARTLINE} addUserKnob {41 lut l "" +STARTLINE T Sampler1.lut} addUserKnob {20 Replace_tab l Replace} addUserKnob {6 external_grain l "use external grain" t "Use external grain from a second DasGrain, with the output set to 'normalised grain', to replace masked area.\nConnect it to the 'external grain' input of this DasGrain (it's a bit hidden on the left side of the node)." +STARTLINE} addUserKnob {26 divider04 l Scatter} addUserKnob {26 divider05 l Scatter +HIDDEN T "Make sure you're sampling an area without any plate detail."} addUserKnob {6 scatter l activate t "Activates the scatter function. It generates a new grain based on the plate grain in the sample box using a Voronoi noise." +STARTLINE} addUserKnob {41 useGPUIfAvailable l "Use GPU if available" -STARTLINE T VoronoiScatter.useGPUIfAvailable} addUserKnob {15 box l "sample box" t "Define an area that is used as a source for the scatter function. The plate grain in this area should be as even as possible, without any visible detail."} box {100 100 500 300} addUserKnob {3 sample_frame l "sample frame" t "The frame at which the grain is being sampled. Is set automatically once the sample box is changed." +DISABLED} sample_frame 1 addUserKnob {4 stereo l "stereo behaviour" t "randomize offset per view: same voronoy pattern for all views, but different offset\n\nrandomize pattern per view: different voronoy pattern for every view" M {none "randomize offset per view" "randomize pattern per view" ""}} addUserKnob {26 spacer06 l "" +STARTLINE T " "} addUserKnob {6 overlay l "overlay cell pattern" t "Overlay the cell pattern of the voronoy noise. Useful to check where the seams are and if distortion or blending is necessary." +STARTLINE} addUserKnob {7 cell_size l "cell size" t "Cell size of the scatter. Shoudn't be too small, as lower grain frequencies might break.\nCan't be too big either, to prevent it from breaking the border of the samplebox (will error if it does)." R 5 100} cell_size 40 addUserKnob {26 spacer07 l "" +STARTLINE T " "} addUserKnob {20 concealer l "edge concealer" n 1} concealer 0 addUserKnob {26 concealer_help l " " T "If you can see the voronoi pattern in the grain QC output,\nincrease the edge blend size."} addUserKnob {3 edge_blend_size l "edge blend size" t "Set the output to grain QC. If you see the cell seams, increase the edge blend size to conceal them.\n\nThis is a bit hacky and slow."} addUserKnob {26 tip l "" -STARTLINE T "sloooow - keep this below 3 if possible"} addUserKnob {26 distortion_help l " " T "\nDistortion might help as well, if somehow the straight\nseams are visible (you might want to toggle the overlay\nwhile adjusting)."} addUserKnob {7 amplitude R 0 50} addUserKnob {7 frequency R 0 50} frequency 15 addUserKnob {20 endGroup n -1} addUserKnob {26 divider06 l "" +STARTLINE} addUserKnob {41 replace_mask l "replace mask" t "Use this channel from the mask input to specify where you want to use scattered grain instead of the adapted plate grain." -STARTLINE T Merge9.maskChannelMask} addUserKnob {41 invert_mask_1 l invert -STARTLINE T Merge9.invert_mask} addUserKnob {20 GrainGroupEnd l "" +STARTLINE n -3} addUserKnob {20 Help_tab l Help} addUserKnob {26 basic_setup l "" +STARTLINE T "Basic setup"} addUserKnob {26 ""} addUserKnob {26 explanation l "" +STARTLINE T "Bold steps are always necessary"} addUserKnob {26 steps l "" +STARTLINE T "
1. This should be the only regrain node in your comp.
2. Connect plate, degrained plate and comp.
    The comp should be done on the degrained plate!

3. Set the luminance degrain amount.
4. Press the Analyze button.
5. Correct the response curves in the Adjust tab.
6. Move the sample box to an area without any plate detail and activate scatter.
7. If necessary, activate edge blend and/or distortion to conceal seams."} addUserKnob {26 in_depth l "" +STARTLINE T "
For an in depth explanation of the steps, read the tooltips and check out this video:
https://vimeo.com/284820390"} addUserKnob {26 pushthebutton l "" +STARTLINE T "

If the result is not as expected and you don't know why, push this button:"} addUserKnob {22 troubleshoot l Troubleshoot t HEEEEEEELP T "import base64\n\nmessages = \[]\n\nthis = nuke.thisNode()\n\n#########################\n\nif this.input(0) is None or this.input(1) is None or this.input(2) is None:\n messages.append(\"ERROR Plate, degrained plate and comp need to be connected to the appropriate inputs.\")\n\n#########################\n\nelse:\n\n def format_to_tuple(g):\n \"\"\"returns (1024, 786, 2.0)\n \"\"\"\n return (g.format().width(), g.format().height(), g.format().pixelAspect())\n\n format_set = set(\[\n format_to_tuple(this.input(0)),\n format_to_tuple(this.input(1)),\n format_to_tuple(this.input(2)),\n ])\n if len(format_set) != 1:\n messages.append(\"WARNING Format missmatch: Make sure formats of plate, degrained plate and comp match.\")\n\n if (this.input(1).firstFrame() != this.input(2).firstFrame()) or (this.input(1).lastFrame() != this.input(2).lastFrame()):\n messages.append(\"WARNING The frame ranges of plate and degrained plate don't match. Double check that they belong together.\")\n\n#########################\n\nmessages.append(\"Double check that plate and degrained plate haven't been modified in any way (paint, despill, etc).\")\n\n#########################\n\nif this\['luminance'].getValue() == 1:\n messages.append(\"Are you working on a completely degrained plate? If not, you might have to set the luminance degrain amount.\")\n\n#########################\n\nblank = base64.b64decode('cmVkIHtjdXJ2ZX0KZ3JlZW4ge2N1cnZlfQpibHVlIHtjdXJ2ZX0=').decode('ascii')\n\nwith this:\n Sampler = nuke.toNode('Sampler1') \n if Sampler\['lut'].toScript() == blank:\n messages.append(\"ERROR You haven't pressed the Analyze button yet!\")\n\n#########################\n\nclass BadThings(Exception): pass\n\ndef thingy():\n with this:\n Sampler = nuke.toNode('Sampler1')\n list = this\['lut'].toScript().replace('\}','').split('\\n')\n for item in list:\n sample_value = 0\n for value in item.split(' '):\n try:\n value == float(value)\n if value < sample_value:\n raise BadThings(\"WARNING Check and fix the response curves. Their slopes should always be positive (the curves should always go up ↗).\")\n \n else:\n sample_value = value\n except ValueError:\n # Ignore non-numeric things like x-values of \"x5.46\" and channel names like \"red\{\" etc\n pass\ntry:\n thingy()\nexcept BadThings as e:\n messages.append(str(e))\n \n#########################\n\nif this\['scatter'].value() == True:\n if this\['box'].getValue() == \[100.0, 100.0, 500.0, 300.0]:\n messages.append(\"WARNING Scatter has been activated, but the sample box is still in its default position. Are you sure that's a good area to sample?\")\n\n#########################\n\nmessages.append(\"Did you copy/paste DasGrain from another script? Make sure to reanalyze and to reset the sample area if you are using scatter.\")\n\n#########################\n\nif len(messages) > 0:\n nuke.message(\"Things worth checking

\"\n \"%s


If any of this doesn't make sense to you, it might be worth checking out the video on vimeo.\" % (\n \"
\".join(\"%s: %s\" % (i+1, m) for i, m in enumerate(messages))))\n" +STARTLINE} addUserKnob {26 dont_despair l "" +STARTLINE T "
If it still doesn't work and you're about to flip the table, send me a mail.
I'm happy to help! :)"} addUserKnob {20 Info_tab l Info} addUserKnob {26 dasname l "" +STARTLINE T "DasGrain v1.8
"} addUserKnob {26 text_1 l "" +STARTLINE T "DasGrain makes regraining as simple as clicking a few buttons.
Follow the steps in the Help tab and you'll have a perfect\nregrain
in no time!"} addUserKnob {26 ""} addUserKnob {26 info l "" +STARTLINE T "Last change: 2021-03-07\n\n"} addUserKnob {26 name_1 l "" +STARTLINE T "Fabian Holtz"} addUserKnob {26 mail l "" +STARTLINE T "holtzf+nuke@gmail.com"} addUserKnob {26 testimonial l "" +STARTLINE T "


«Das bringt Tränen in meine Augen»
— anonymous

"} addUserKnob {26 ""} addUserKnob {26 credit l "" +STARTLINE T "
VoronoiScatter based on Ivan Busquets' implementation of
libNoise's\nVoronoi generator"} addUserKnob {26 thanks l "" +STARTLINE T "
Special thanks to Ben Dickson for bearing with my questions and
problems and RSP comp for the valuable feedback."} } BackdropNode { inputs 0 name BackdropNode1 tile_color 0x7f7f7fff label "normalise grain" note_font_size 30 xpos 170 ypos 1662 bdwidth 320 bdheight 110 } BackdropNode { inputs 0 name BackdropNode11 tile_color 0x7f7f7fff label "add grain" note_font_size 30 xpos 830 ypos 2766 bdwidth 320 bdheight 110 } BackdropNode { inputs 0 name BackdropNode13 tile_color 0x7f7f7fff label scatter note_font_size 30 xpos -50 ypos 2022 bdwidth 320 bdheight 110 } BackdropNode { inputs 0 name BackdropNode14 tile_color 0x7f7f7fff label "analyze grain" note_font_size 30 xpos -159 ypos 606 bdwidth 319 bdheight 877 } BackdropNode { inputs 0 name BackdropNode2 tile_color 0x7f7f7fff label "grain response curve" note_font_size 30 xpos 610 ypos 2574 bdwidth 320 bdheight 110 } BackdropNode { inputs 0 name BackdropNode3 tile_color 0x7f7f7fff label QC note_font_size 30 xpos 1050 ypos 3222 bdwidth 320 bdheight 110 } BackdropNode { inputs 0 name BackdropNode4 tile_color 0x7f7f7fff label "grain response curve" note_font_size 30 xpos 610 ypos 1422 bdwidth 320 bdheight 110 } BackdropNode { inputs 0 name BackdropNode5 tile_color 0x7f7f7fff label "adapt grain" note_font_size 30 xpos 170 ypos 2574 bdwidth 320 bdheight 110 } BackdropNode { inputs 0 name BackdropNode6 tile_color 0x7f7f7fff label "sample range" note_font_size 30 xpos -490 ypos 606 bdwidth 320 bdheight 110 } BackdropNode { inputs 0 name BackdropNode7 tile_color 0x7f7f7fff label "luminance level" note_font_size 30 xpos 280 ypos -282 bdwidth 760 bdheight 685 } BackdropNode { inputs 0 name BackdropNode8 tile_color 0x7f7f7fff label "plate grain" note_font_size 30 xpos 170 ypos 606 bdwidth 320 bdheight 110 } BackdropNode { inputs 0 name BackdropNode9 tile_color 0x7f7f7fff label replace note_font_size 30 xpos 60 ypos 2191 bdwidth 540 bdheight 226 } Input { inputs 0 name DEGRAINED_PLATE label "\[value number]" note_font_size 30 xpos 730 ypos -896 number 2 } OCIOColorSpace { in_colorspace {{OCIOColorSpace1.in_colorspace x17 7}} out_colorspace {{OCIOColorSpace1.out_colorspace x17 7}} name OCIOColorSpace2 xpos 730 ypos -490 } Dot { name Dot9 xpos 764 ypos -390 } set Na754e000 [stack 0] Dot { name Dot28 xpos 764 ypos -198 } set Na754e400 [stack 0] Dot { name Dot32 xpos 764 ypos 234 } set Na754e800 [stack 0] push $Na754e400 Dot { name Dot27 xpos 624 ypos -198 } Colorspace { colorspace_out YCbCr name Colorspace1 xpos 590 ypos -130 } Dot { name Dot7 xpos 624 ypos -54 } set Na754f400 [stack 0] Input { inputs 0 name PLATE label "\[value number]" note_font_size 30 xpos 290 ypos -892 number 1 } Dot { name Dot50 xpos 324 ypos -726 } set Na754fc00 [stack 0] OCIOColorSpace { in_colorspace scene_linear out_colorspace scene_linear name OCIOColorSpace1 xpos 290 ypos -490 } Dot { name Dot29 xpos 324 ypos -198 } set Na732e400 [stack 0] Dot { name Dot6 xpos 464 ypos -198 } Colorspace { colorspace_out YCbCr name Colorspace2 xpos 430 ypos -130 } Merge2 { inputs 2 operation from bbox B Achannels rgb Bchannels rgb output rgb name Merge4 xpos 430 ypos -58 } Multiply { channels rgb value {{"1 / parent.luminance - 1"} 0 0 0} name Multiply6 xpos 430 ypos 14 } Dot { name Dot31 xpos 464 ypos 90 } push $Na754f400 Merge2 { inputs 2 operation plus bbox B Achannels rgb Bchannels rgb output rgb name Merge5 xpos 590 ypos 86 } Colorspace { colorspace_in YCbCr name Colorspace3 xpos 590 ypos 158 } Merge2 { inputs 2 operation from bbox B Achannels rgb Bchannels rgb output rgb name Merge6 xpos 590 ypos 230 } Dot { name Dot35 xpos 624 ypos 306 } set Na7360800 [stack 0] push $Na754e800 Merge2 { inputs 2 operation from bbox B Achannels rgb Bchannels rgb output rgb name Merge7 xpos 730 ypos 302 disable {{"Multiply6.value.r == 0"}} } Dot { name Dot2 xpos 764 ypos 522 } set Na7361000 [stack 0] Dot { name Dot30 xpos 764 ypos 690 } set Na7361400 [stack 0] Dot { name Dot55 xpos 764 ypos 1170 } set Na7361800 [stack 0] Input { inputs 0 name mask label "\[value number]" note_font_size 30 xpos 1170 ypos -896 number 3 } Dot { name Dot39 xpos 1204 ypos 258 } set Na738c000 [stack 0] Dot { name Dot26 xpos 1204 ypos 1074 } set Na738c400 [stack 0] Invert { name Invert2 xpos 180 ypos 1064 disable {{!parent.invert_1}} } push $Na7361400 push $Na732e400 Merge2 { inputs 2 operation from bbox B Achannels rgb Bchannels rgb output rgb name Merge27 xpos 290 ypos 686 } Dot { name Dot3 xpos 324 ypos 786 } set Na738d000 [stack 0] Dot { name Dot5 xpos 104 ypos 786 } set Na738d400 [stack 0] push $Na738d400 Copy { inputs 2 from0 {{{parent.Copy2.from0}}} to0 rgba.red name Copy3 xpos 70 ypos 848 } Expression { expr0 abs(r) channel1 {none none none rgba.alpha} expr1 "r == 0" channel2 none channel3 none name Expression4 xpos 70 ypos 926 } set Na738dc00 [stack 0] push $Na7361000 Colorspace { colorspace_out AlexaV3LogC name Colorspace5 xpos 70 ypos 518 } Clamp { maximum_enable false name Clamp2 xpos -40 ypos 512 } Dot { name Dot1 xpos -116 ypos 522 } set Naed4e800 [stack 0] Dot { name Dot48 xpos -116 ypos 786 } set Naed4ec00 [stack 0] push $Naed4ec00 Copy { inputs 2 from0 rgba.blue to0 rgba.red name Copy2 xpos -150 ypos 848 } Expression { temp_name0 min temp_name1 max channel0 {none none none rgba.alpha} expr0 "r >= min && r <= max" channel1 none channel2 none channel3 none name Expression2 xpos -150 ypos 926 } Dot { name Dot4 xpos -116 ypos 1002 } ChannelMerge { inputs 2 operation stencil name ChannelMerge2 xpos -40 ypos 985 } push $Na738dc00 Copy { inputs 2 from0 rgba.alpha to0 rgba.alpha name Copy1 xpos 70 ypos 992 } ChannelMerge { inputs 2 A -rgba.green operation multiply name ChannelMerge1 xpos 70 ypos 1057 disable {{!A}} } Copy { inputs 2 from0 {{{parent.Copy2.from0}}} to0 rgba.green name Copy4 xpos 70 ypos 1160 } Premult { channels {rgba.red rgba.green -rgba.blue none} name Premult1 xpos 70 ypos 1238 } TimeWarp { lookup 1081 time "" filter nearest name TimeWarp1 xpos 70 ypos 1286 disable true } FrameBlend { channels {rgba.red rgba.green -rgba.blue rgba.alpha} startframe 0 endframe 9 userange true name FrameBlend1 xpos 70 ypos 1352 disable true } CurveTool { avgframes 0 channels {rgba.red rgba.green -rgba.blue rgba.alpha} ROI {0 0 {width} {height}} name CurveTool xpos 70 ypos 1424 } push $Naed4e800 Dot { name Dot16 xpos -336 ypos 522 } CurveTool { operation "Max Luma Pixel" channels {-rgba.red -rgba.green rgba.blue none} ROI {0 0 {width} {height}} name CurveTool_Range xpos -370 ypos 680 } Sampler { inputs 0 lut {red {curve} green {curve} blue {curve}} name Sampler1 onCreate "n = nuke.thisNode()\nn\['sampler'].setEnabled(False)" knobChanged "n = nuke.thisNode()\nk = nuke.thisKnob()\np = nuke.thisParent()\n\nif k.name() == 'lut':\n with p:\n for c in \['ColorLookup1','ColorLookup2']:\n nuke.toNode(c)\['lut'].fromScript(k.toScript())" xpos 840 ypos 1502 } push $Na754fc00 Dot { name Dot51 xpos 115 ypos -726 } Input { inputs 0 name COMP label "\[value number]" note_font_size 30 xpos 950 ypos -896 } Dot { name Dot49 xpos 984 ypos -605 } set Na7127000 [stack 0] Switch { inputs 2 which {{parent.meta}} name Switch1 xpos 81 ypos -609 } Dot { name Dot54 xpos 115 ypos -486 } Dot { name Dot52 xpos -685 ypos -486 } Dot { name Dot53 xpos -685 ypos 3762 } push $Na738c000 Dot { name Dot40 xpos 874 ypos 258 } push $Na7360800 Dot { name Dot34 xpos 624 ypos 378 } Multiply { inputs 1+1 channels rgb value 0 maskChannelMask -rgba.red name Multiply1 xpos 840 ypos 374 } push $Na7127000 OCIOColorSpace { in_colorspace {{OCIOColorSpace1.in_colorspace x17 7}} out_colorspace {{OCIOColorSpace1.out_colorspace x17 7}} name OCIOColorSpace3 xpos 950 ypos -490 } Dot { name Dot44 xpos 984 ypos -390 } set Na714b400 [stack 0] Merge2 { inputs 2 operation from bbox B Achannels rgb Bchannels rgb output rgb name Merge8 xpos 950 ypos 374 disable {{"Multiply6.value.r == 0"}} } Dot { name Dot18 xpos 984 ypos 2658 } set Na714bc00 [stack 0] ColorLookup { lut {master {} red {curve} green {curve} blue {curve} alpha {}} name ColorLookup2 xpos 730 ypos 2654 } push $Na738c400 Dot { name Dot38 xpos 1204 ypos 1842 } Dot { name Dot37 xpos 544 ypos 1842 } Dot { name Dot22 xpos 544 ypos 2271 } set Na7178c00 [stack 0] Dot { name Dot20 xpos 544 ypos 2391 } push $Na7178c00 Dot { name Dot17 xpos 434 ypos 2271 } set Na7179400 [stack 0] Dot { name Dot13 xpos 214 ypos 2271 } Input { inputs 0 name external_grain label "\[value number]" note_font_size 30 xpos -150 ypos 1716 number 4 } Dot { name Dot21 xpos -116 ypos 1938 } push $Na7361800 ColorLookup { channels rgb lut {master {} red {curve} green {curve} blue {curve} alpha {}} name ColorLookup1 xpos 730 ypos 1502 } Dot { name Dot24 xpos 764 ypos 1746 } push $Na738d000 Dot { name Dot33 xpos 324 ypos 1386 } MergeExpression { inputs 2 temp_name0 target temp_expr0 .01 expr0 "Br * (target / Ar)" expr1 "Bg * (target / Ag)" expr2 "Bb * (target / Ab)" channel3 none name MergeExpression1 xpos 290 ypos 1742 } Dot { name Dot15 xpos 324 ypos 1842 } set Na7195400 [stack 0] Dot { name Dot25 xpos 104 ypos 1842 } Switch { inputs 2 which {{parent.external_grain}} name Switch2 xpos 70 ypos 1934 } Group { name VoronoiScatter xpos 70 ypos 2102 disable {{!parent.scatter}} addUserKnob {20 User} addUserKnob {41 useGPUIfAvailable l "Use GPU if available" T VoroNoise.useGPUIfAvailable} addUserKnob {41 vectorize l "Vectorize on CPU" -STARTLINE T VoroNoise.vectorize} addUserKnob {15 box} box {{parent.box x1004 0 x1036 -75} {parent.box x1004 100 x1036 120} {parent.box x1004 496 x1036 325} {parent.box x1004 916 x1036 320}} addUserKnob {3 sample_frame l "sample frame"} sample_frame {{parent.sample_frame}} addUserKnob {7 cell_size l "cell size" R 0 100} cell_size {{parent.cell_size}} addUserKnob {6 overlay_pattern l "overlay pattern" -STARTLINE} overlay_pattern {{parent.overlay}} addUserKnob {3 edge_blend_size l "edge blend size"} edge_blend_size {{parent.edge_blend_size}} addUserKnob {7 amplitude R 0 100} amplitude {{parent.amplitude}} addUserKnob {7 frequency R 0 100} frequency {{parent.frequency}} addUserKnob {41 VoroNoise_Seed l Seed T VoroNoise.VoroNoise_Seed} } Input { inputs 0 name Input1 xpos 180 ypos -879 } Dot { name Dot14 xpos 214 ypos -750 } set Na71be400 [stack 0] Dot { name Dot16 xpos 434 ypos -750 } Remove { name Remove1 xpos 400 ypos -687 } Dot { name Dot6 xpos 434 ypos -606 } set Na71bf000 [stack 0] Dot { name Dot15 xpos 654 ypos -606 } set Na71bf400 [stack 0] Dot { name Dot7 xpos 874 ypos -606 } Noise { output {rgba.red -rgba.green -rgba.blue none} replace true size {{parent.frequency} {"parent.frequency * pixel_aspect"}} zoffset {{"x + 1000"}} gamma 1 name Noise1 xpos 840 ypos -514 } Noise { output {-rgba.red rgba.green -rgba.blue none} replace true size {{parent.Noise1.size} {parent.Noise1.size}} zoffset {{x}} gamma 1 name Noise2 xpos 840 ypos -466 } Clamp { name Clamp1 xpos 840 ypos -424 } Dot { name Dot11 xpos 874 ypos -366 } push $Na71bf400 BlinkScript { ProgramGroup 1 KernelDescription "2 \"VoroNoise\" iterate pixelWise c117be128a07c11b6d82fd34148d66b3bcac41976ec9c2082affe38e890c2c0f 2 \"src\" Read Point \"dst\" Write Point 6 \"Frequency\" Float 1 AABIQg== \"Seed\" Int 1 AAAAAA== \"aspect ratio\" Float 1 AACAPw== \"width\" Int 1 AAAAAA== \"height\" Int 1 AAAAAA== \"Randomness\" Float 1 AAAAPw== 6 \"frequency\" 1 1 \"seed\" 1 1 \"aspect_ratio\" 1 1 \"width\" 1 1 \"height\" 1 1 \"randomness\" 1 1 0" kernelSource "// Voronoi.blink\n// A test implementation of libNoise's Voronoi generator using Blink\n// Ivan Busquets - August 2013\n// Modified for DasGrain by Fabian Holtz - April 2019\n\n#define X_NOISE_GEN 1619\n#define Y_NOISE_GEN 31337\n#define Z_NOISE_GEN 6971\n#define SEED_NOISE_GEN 1013\n#define SQRT_3 1.73205081\n\ninline int IntValueNoise3D (int x, int y, int z, int seed)\n\{\n // All constants are primes and must remain prime in order for this noise\n // function to work correctly.\n int n = (\n X_NOISE_GEN * x\n + Y_NOISE_GEN * y\n + Z_NOISE_GEN * z\n + SEED_NOISE_GEN * seed)\n & 0x7fffffff;\n n = (n >> 13) ^ n;\n return (n * (n * n * 60493 + 19990303) + 1376312589) & 0x7fffffff;\n\}\n\ninline float ValueNoise3D (int x, int y, int z, int seed)\n\{\n return 1.0 - ((float)IntValueNoise3D (x, y, z, seed) / 1073741824.0);\n\}\n\nkernel VoroNoise : ImageComputationKernel\n\{\n Image src;\n Image dst;\n\nparam:\n float frequency;\n int seed;\n float aspect_ratio;\n int width;\n int height;\n float randomness;\n\n\n void define() \{\n defineParam(frequency, \"Frequency\", 50.0f);\n defineParam(aspect_ratio, \"aspect ratio\", 1.0f);\n defineParam(seed, \"Seed\", 0);\n defineParam(randomness, \"Randomness\", 0.5f);\n \}\n\n\n\n\n void process(int2 pos) \{\n float x = pos.x * aspect_ratio * frequency / width;\n float y = pos.y * frequency / width;\n int xInt = (x > 0.0) ? x : x - 1;\n int yInt = (y > 0.0) ? y : y - 1;\n\n\n float minDist = 2147483647.0;\n float xCandidate = 0;\n float yCandidate = 0;\n\n float dist;\n\nfor (int yCur = yInt - 2; yCur <= yInt + 2; yCur++) \{\n for (int xCur = xInt - 2; xCur <= xInt + 2; xCur++) \{\n\n // Calculate the position and distance to the seed point inside of\n // this unit cube. Limited by the randomness value\n float xPos = xCur + (ValueNoise3D (xCur, yCur, 0, seed ) + 1 ) * randomness + (1-randomness) - 1;\n float yPos = yCur + (ValueNoise3D (xCur, yCur, 0, seed + 1) + 1 ) * randomness + (1-randomness) - 1;\n\n float xDist = xPos - x;\n float yDist = yPos - y;\n\n dist = pow(xDist, 2) + pow(yDist, 2);\n if (dist < minDist) \{\n // This seed point is closer to any others found so far, so record\n // this seed point.\n minDist = dist;\n xCandidate = xPos;\n yCandidate = yPos;\n\t\}\n \}\n\}\n\n SampleType(dst) sample(0.0f);\n\n sample.x = xCandidate / aspect_ratio / frequency;\n sample.y = yCandidate / height * width / frequency;\n sample.z = 0;\n\n dst() = sample;\n\}\n\};" rebuild "" VoroNoise_Frequency {{"width / parent.cell_size"}} VoroNoise_Seed {{"(x + (parent.parent.stereo == 2 ? \[lsearch \[value root.views] \[view]] / 2 : 0)) * 5"}} "VoroNoise_aspect ratio" {{pixel_aspect}} VoroNoise_width {{width}} VoroNoise_height {{height}} rebuild_finalise "" name VoroNoise xpos 620 ypos -520 } Copy { inputs 2 from0 rgba.red to0 forward.u from1 rgba.green to1 forward.v name Copy1 xpos 620 ypos -382 disable {{"parent.amplitude == 0"}} } IDistort { uv forward uv_offset 0.5 uv_scale {{parent.amplitude} {"uv_scale.w * pixel_aspect"}} filter impulse name IDistort1 xpos 620 ypos -280 disable {{"parent.amplitude == 0"}} } Dot { name Dot5 xpos 654 ypos -246 } NoTimeBlur { rounding floor name NoTimeBlur3 xpos 620 ypos -154 } Transform { translate {{"floor((x * size) % 1 * (size)) - int(size / 2)"} {"floor(x % 1 * (size)) - int(size/2)"}} filter impulse black_outside false name Transform1 xpos 620 ypos -58 disable {{"parent.edge_blend_size < 1"}} addUserKnob {20 User} addUserKnob {3 size} size {{"parent.edge_blend_size + 1"}} } Dot { name Dot9 xpos 654 ypos 42 } set Nae9e2400 [stack 0] push $Na71bf000 Expression { expr0 "(x + .5) / width" expr1 "(y + .5) / height" expr2 0 name STMapGenerator xpos 400 ypos -514 } NoTimeBlur { rounding floor name NoTimeBlur2 xpos 400 ypos -154 } Merge2 { inputs 2 operation from Achannels {rgba.red rgba.green -rgba.blue none} Bchannels {rgba.red rgba.green -rgba.blue none} output {rgba.red rgba.green -rgba.blue none} name Merge2 xpos 400 ypos 38 } Dot { name Dot10 xpos 434 ypos 210 } push $Nae9e2400 Expression { temp_name0 view_index temp_expr0 "parent.parent.stereo == 1 ? \[lsearch \[value root.views] \[view]] / 2 : 0" expr0 "random((r + view_index) * 1000000, 0) * (maxx - minx) + minx" expr1 "random((g + view_index) * 1000000, 0) * (maxy - miny) + miny" channel2 none channel3 none name Expression3 xpos 620 ypos 110 addUserKnob {20 User} addUserKnob {7 frequency R 0 100} frequency {{parent.parent.cell_size}} addUserKnob {7 multiplier R 0 3} multiplier 0.5 addUserKnob {15 shrink} shrink {{"frequency * multiplier + ceil(parent.edge_blend_size / 2) + IDistort1.uv_scale.w / 2"} {"frequency * multiplier + ceil(parent.edge_blend_size / 2) + IDistort1.uv_scale.h / 2"} {"frequency * multiplier + floor(parent.edge_blend_size / 2) + IDistort1.uv_scale.w / 2"} {"frequency * multiplier + floor(parent.edge_blend_size / 2) + IDistort1.uv_scale.h / 2"}} addUserKnob {26 ""} addUserKnob {7 minx} minx {{"(parent.box.x + shrink.x + .5) / width"}} addUserKnob {7 maxx} maxx {{"(parent.box.r - shrink.r - .5) / width"}} addUserKnob {7 miny} miny {{"(parent.box.y + shrink.y + .5) / height"}} addUserKnob {7 maxy} maxy {{"(parent.box.t - shrink.t - .5) / height"}} } Merge2 { inputs 2 operation plus Achannels {rgba.red rgba.green -rgba.blue none} Bchannels {rgba.red rgba.green -rgba.blue none} output {rgba.red rgba.green -rgba.blue none} name Merge3 xpos 620 ypos 206 } Expression { expr0 "(r + (maxx - minx) - minx) % (maxx - minx) + minx" expr1 "(g + (maxy - miny) - miny) % (maxy - miny) + miny" channel2 none channel3 none name Expression7 xpos 620 ypos 278 addUserKnob {20 User} addUserKnob {7 minx} minx {{"(parent.box.x + rint(x % 1 * parent.edge_blend_size) + .5) / width"}} addUserKnob {7 maxx} maxx {{"(parent.box.r + rint(x % 1 * parent.edge_blend_size) - .5) / width"}} addUserKnob {7 miny} miny {{"(parent.box.y + rint(x % 1 * parent.edge_blend_size) + .5) / height"}} addUserKnob {7 maxy} maxy {{"(parent.box.t + rint(x % 1 * parent.edge_blend_size) - .5) / height"}} } Dot { name Dot3 xpos 654 ypos 354 } set Naea1e400 [stack 0] Dot { name Dot13 xpos 654 ypos 546 } push $Naea1e400 Dot { name Dot8 xpos 874 ypos 354 } Blur { channels rgb size {{pixel_aspect} 1} name Blur1 label "\[value size]" xpos 840 ypos 440 } Difference { inputs 2 name Difference2 xpos 840 ypos 536 } Expression { channel0 {none none none rgba.alpha} expr0 "a > 1e-9" channel1 none channel2 none channel3 none name Expression2 xpos 840 ypos 614 } Shuffle { red alpha green alpha blue alpha name Shuffle1 label "\[value in]:\[value out]" xpos 840 ypos 680 } Dot { name Dot4 xpos 874 ypos 762 } push $Naea1e400 push $Na71be400 FrameHold { firstFrame {{parent.sample_frame}} name FrameHold1 xpos 180 ypos -256 } NoTimeBlur { rounding floor name NoTimeBlur1 xpos 180 ypos -154 } STMap { inputs 2 channels rgb uv rgb filter impulse name STMap1 xpos 180 ypos 350 } set Naec30800 [stack 0] TimeBlur { divisions {{"max(Transform1.size == 1 ? 2 : pow2(Transform1.size), 1)"}} shutter 1 shuttercustomoffset {{"1 / divisions / 2"}} name TimeBlur1 xpos 180 ypos 446 disable {{"parent.edge_blend_size < 1"}} } set Naec30c00 [stack 0] push $Naec30800 Dot { name Dot1 xpos -6 ypos 354 } Difference { inputs 2 name Difference1 xpos -40 ypos 440 } Expression { channel0 {none none none rgba.alpha} expr0 "a > 1e-10" channel1 none channel2 none channel3 none name Expression1 xpos -40 ypos 494 } Blur { channels alpha size {{parent.parent.edge_blend_size}} name Blur2 xpos -40 ypos 536 } Grade { channels alpha blackpoint 0.5 white_clamp true name Grade2 xpos -40 ypos 584 } Dot { name Dot2 xpos -6 ypos 666 } push $Naec30c00 Grade { inputs 1+1 white 1.4 black_clamp false name Grade1 xpos 180 ypos 662 disable {{"parent.edge_blend_size < 1"}} } Merge2 { inputs 2 Achannels rgb Bchannels rgb output rgb name Merge1 xpos 180 ypos 758 disable {{!parent.overlay_pattern}} } Assert { expression {{"Expression3.maxx > Expression3.minx && Expression3.maxy > Expression3.miny"}} message "increase sample box size or decrease cell size" name error xpos 180 ypos 854 } Output { name Output1 xpos 180 ypos 950 } end_group Multiply { inputs 1+1 channels rgb value 1.8 maskChannelMask {{{parent.Merge9.maskChannelMask}}} invert_mask {{!Merge9.invert_mask}} name Multiply7 xpos 70 ypos 2315 disable {{"!maskChannelMask || !\[exists parent.input3.name]"}} } Dot { name Dot23 xpos 104 ypos 2391 } push $Na7179400 push $Na7195400 Multiply { inputs 1+1 channels rgb value 1.8 maskChannelMask {{{parent.Merge9.maskChannelMask}}} invert_mask {{parent.Merge9.invert_mask}} name Multiply2 xpos 290 ypos 2315 disable {{"!maskChannelMask || (!parent.scatter && !parent.external_grain)"}} } Merge2 { inputs 2+1 operation copy Achannels rgb Bchannels rgb output rgb maskChannelMask -rgba.alpha name Merge9 xpos 290 ypos 2387 disable {{"!(parent.scatter || parent.external_grain)"}} } Dot { name Dot11 xpos 324 ypos 2490 } set Naec9c800 [stack 0] MergeExpression { inputs 2 temp_name0 reverse temp_expr0 "1 / MergeExpression1.temp_expr0" expr0 "Br * Ar * reverse" expr1 "Bg * Ag * reverse" expr2 "Bb * Ab * reverse" name MergeExpression2 xpos 290 ypos 2654 } Dot { name Dot8 xpos 324 ypos 2850 } push $Na714bc00 Merge2 { inputs 2 operation plus bbox B Achannels rgb Bchannels rgb output rgb name Merge3 xpos 950 ypos 2846 } Dot { name Dot42 xpos 984 ypos 3018 } set Naec9d800 [stack 0] OCIOColorSpace { in_colorspace {{OCIOColorSpace1.out_colorspace x17 7}} out_colorspace {{OCIOColorSpace1.in_colorspace x17 7}} name OCIOColorSpace4 xpos 950 ypos 3086 } Dot { name Dot19 xpos 984 ypos 3162 } set Naefde000 [stack 0] Dot { name Dot41 xpos 1204 ypos 3162 } set Naefde400 [stack 0] Dot { name Dot36 xpos 1314 ypos 3162 } Blur { channels rgb size 1 name Blur1 xpos 1280 ypos 3254 } push $Naefde400 Merge2 { inputs 2 operation difference bbox B Achannels rgb Bchannels rgb output rgb name Merge10 xpos 1170 ypos 3254 } Multiply { channels rgb value 50 name Multiply3 xpos 1170 ypos 3302 } Dot { name Dot43 xpos 1204 ypos 3402 } push $Na714b400 Dot { name Dot45 xpos 1424 ypos -390 } push $Naec9d800 Merge2 { inputs 2 operation from Achannels rgb Bchannels rgb output rgb name Merge11 xpos 1390 ypos 3014 } Dot { name Dot46 xpos 1424 ypos 3522 } push $Naec9c800 Dot { name Dot14 xpos 104 ypos 2490 } Dot { name Dot12 xpos 104 ypos 3402 } push $Na754e000 Dot { name Dot47 xpos -556 ypos -390 } push $Na732e400 Merge2 { inputs 2 operation from Achannels rgb Bchannels rgb output rgb name Merge12 xpos -590 ypos -202 } Dot { name Dot10 xpos -556 ypos 3522 } push $Naefde000 Switch { inputs 5 which {{output}} name Output xpos 950 ypos 3656 addUserKnob {20 User} addUserKnob {4 output M {"regrained comp" "plate grain" "normalised grain" "adapted grain" "grain QC"}} } CopyMetaData { inputs 2 mergeMode "Meta only" name CopyMetaData1 xpos 950 ypos 3758 } Output { name Output1 xpos 950 ypos 3854 } end_group CopyMetaData { inputs 2 name CopyMetaData1 xpos 70 ypos 18639 } ModifyMetaData { metadata { {set exr/autodeskColorSpace "\[value WRITE_EXR.colorspace]"} {set exr/scriptPath "\[python os.getenv(\"CVRT_SCRIPT_PATH\")]"} {set exr/vendor "\[python os.getenv(\"CVRT_VENDOR\")]"} {set exr/showName "\[python os.getenv(\"CVRT_SHOW_NAME\")]"} {set exr/showId "\[python os.getenv(\"CVRT_SHOW_ID\")]"} {set exr/sequence "\[python os.getenv(\"CVRT_SEQUENCE\")]"} {set exr/shot "\[python os.getenv(\"CVRT_SHOT\")]"} {set exr/scope "\[python os.getenv(\"CVRT_SCOPE\")]"} {set exr/author "\[python os.getenv(\"CVRT_AUTHOR\")]"} } name ModifyMetaData1 xpos 70 ypos 18735 } set Naf030c00 [stack 0] Grade { name NEGATIVE xpos 70 ypos 19551 } FrameRange { first_frame {{root.first_frame}} last_frame {{root.last_frame}} time "" name FrameRange1 xpos 70 ypos 20055 } NoOp { name Anchor_24e470df3b help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.anchorOnCreate()\n except:\n pass" knobChanged stamps.anchorKnobChanged() autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0xffffff01 note_font_size 20 xpos 70 ypos 20986 addUserKnob {20 anchor_tab l "Anchor Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T anchor} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title MAIN_COMP addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T MASTER_COMP} addUserKnob {26 prev_name l "" +STARTLINE +HIDDEN T Anchor_24e470df3b} addUserKnob {3 showing l "" +STARTLINE +HIDDEN} addUserKnob {1 tags l Tags t "Comma-separated tags you can define for each Anchor, that will help you find it when invoking the Stamp Selector by pressing the Stamps shortkey with nothing selected."} tags 2D, addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 createStamp l new t "Create a new Stamp for this Anchor." -STARTLINE T stamps.stampCreateWired(nuke.thisNode())} addUserKnob {22 selectStamps l select t "Reconnect all of this Anchor's Stamps." -STARTLINE T stamps.wiredSelectSimilar(nuke.thisNode().name())} addUserKnob {22 reconnectStamps l reconnect -STARTLINE T stamps.anchorReconnectWired()} addUserKnob {22 zoomNext l "zoom next" t "Navigate to this Anchor's next Stamp on the Node Graph." -STARTLINE T stamps.wiredZoomNext(nuke.thisNode().name())} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } set Naf031400 [stack 0] PostageStamp { name Stamp36 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -1140 ypos 23290 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title MAIN_COMP addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T MAIN_COMP} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." +HIDDEN T
METADATA} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_24e470df3b addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } Write { file "\[getenv CVRT_SHOT_ROOT]/Export/sends/\[getenv CVRT_FILENAME]/\[getenv CVRT_FILENAME].%04d.exr" file_type exr compression DWAA metadata "default metadata and exr/*" first_part rgba colorspace ACES2065-1 create_directories true checkHashOnRead false version 39 in_colorspace ACES2065-1 out_colorspace ACES2065-1 ocioColorspace ACES2065-1 display "sRGB - Display" view "ACES 1.0 - SDR Video" name WRITE_EXR label "\n\n\[python os.path.normpath(nuke.thisNode().knob(\"file\").evaluate())]" note_font "Verdana Bold" xpos -1140 ypos 23985 } NoOp { name Anchor_1f620af31 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.anchorOnCreate()\n except:\n pass" knobChanged stamps.anchorKnobChanged() autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0xffffff01 note_font_size 20 xpos -1140 ypos 24394 addUserKnob {20 anchor_tab l "Anchor Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T anchor} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title MASTER_COMP_EXR addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T MASTER_COMP_ACES} addUserKnob {26 prev_name l "" +STARTLINE +HIDDEN T Anchor_1f620af31} addUserKnob {3 showing l "" +STARTLINE +HIDDEN} addUserKnob {1 tags l Tags t "Comma-separated tags you can define for each Anchor, that will help you find it when invoking the Stamp Selector by pressing the Stamps shortkey with nothing selected."} tags 2D, addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 createStamp l new t "Create a new Stamp for this Anchor." -STARTLINE T stamps.stampCreateWired(nuke.thisNode())} addUserKnob {22 selectStamps l select t "Reconnect all of this Anchor's Stamps." -STARTLINE T stamps.wiredSelectSimilar(nuke.thisNode().name())} addUserKnob {22 reconnectStamps l reconnect -STARTLINE T stamps.anchorReconnectWired()} addUserKnob {22 zoomNext l "zoom next" t "Navigate to this Anchor's next Stamp on the Node Graph." -STARTLINE T stamps.wiredZoomNext(nuke.thisNode().name())} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } set Naf062400 [stack 0] PostageStamp { name Stamp24 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -1140 ypos 24466 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title MASTER_COMP_EXR addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T MASTER_COMP_EXR} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T "
ACES,
MASTER OUTPUT,
OUT"} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_1f620af31 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } StickyNote { inputs 0 name StickyNote4 tile_color 0xff label " REPLACE WITH YOUR DENOISER " note_font_size 20 note_font_color 0x63e5ffff xpos 1036 ypos -3878 } push $Naf031400 PostageStamp { name Stamp29 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 70 ypos 21034 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title MAIN_COMP addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T MAIN_COMP} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
METADATA} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_24e470df3b addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } CheckerBoard2 { inputs 0 name CheckerBoard4 xpos -260 ypos -5289 } NoOp { name Anchor_3da2192eb4 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.anchorOnCreate()\n except:\n pass" knobChanged stamps.anchorKnobChanged() autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0xffffff01 note_font_size 20 xpos -260 ypos -5150 addUserKnob {20 anchor_tab l "Anchor Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T anchor} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title EDIT_REF addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T ref_1} addUserKnob {26 prev_name l "" +STARTLINE +HIDDEN T Anchor_3da2192eb4} addUserKnob {3 showing l "" +STARTLINE +HIDDEN} addUserKnob {1 tags l Tags t "Comma-separated tags you can define for each Anchor, that will help you find it when invoking the Stamp Selector by pressing the Stamps shortkey with nothing selected."} tags 2D, addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 createStamp l new t "Create a new Stamp for this Anchor." -STARTLINE T stamps.stampCreateWired(nuke.thisNode())} addUserKnob {22 selectStamps l select t "Reconnect all of this Anchor's Stamps." -STARTLINE T stamps.wiredSelectSimilar(nuke.thisNode().name())} addUserKnob {22 reconnectStamps l reconnect -STARTLINE T stamps.anchorReconnectWired()} addUserKnob {22 zoomNext l "zoom next" t "Navigate to this Anchor's next Stamp on the Node Graph." -STARTLINE T stamps.wiredZoomNext(nuke.thisNode().name())} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } PostageStamp { name Stamp26 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -260 ypos -5102 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title EDIT_REF addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T EDIT_REF} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
REF,
PLATE} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_3da2192eb4 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } CheckerBoard2 { inputs 0 name CheckerBoard2 xpos 180 ypos -5289 } NoOp { name Anchor_3da2192eb1 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.anchorOnCreate()\n except:\n pass" knobChanged stamps.anchorKnobChanged() autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0xffffff01 note_font_size 20 xpos 180 ypos -5150 addUserKnob {20 anchor_tab l "Anchor Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T anchor} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title ref_2 addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T ref_1} addUserKnob {26 prev_name l "" +STARTLINE +HIDDEN T Anchor_3da2192eb1} addUserKnob {3 showing l "" +STARTLINE +HIDDEN} addUserKnob {1 tags l Tags t "Comma-separated tags you can define for each Anchor, that will help you find it when invoking the Stamp Selector by pressing the Stamps shortkey with nothing selected."} tags 2D, addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 createStamp l new t "Create a new Stamp for this Anchor." -STARTLINE T stamps.stampCreateWired(nuke.thisNode())} addUserKnob {22 selectStamps l select t "Reconnect all of this Anchor's Stamps." -STARTLINE T stamps.wiredSelectSimilar(nuke.thisNode().name())} addUserKnob {22 reconnectStamps l reconnect -STARTLINE T stamps.anchorReconnectWired()} addUserKnob {22 zoomNext l "zoom next" t "Navigate to this Anchor's next Stamp on the Node Graph." -STARTLINE T stamps.wiredZoomNext(nuke.thisNode().name())} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } PostageStamp { name Stamp17 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 180 ypos -5102 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title ref_2 addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T ref_2} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
REF,
PLATE} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_3da2192eb1 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } StickyNote { inputs 0 name StickyNote8 tile_color 0x2c3249ff label " HIT ANALYZE " note_font_size 30 note_font_color 0x100024ff xpos -21 ypos 17620 } StickyNote { inputs 0 name StickyNote3 tile_color 0xff label " REPLACE WITH YOUR DENOISER " note_font_size 20 note_font_color 0x63e5ffff xpos -724 ypos -3878 } StickyNote { inputs 0 name StickyNote12 tile_color 0xff label " IMPORT THE RENDER BY SELECTING\nTHE WRITE NODE AND PRESSING Alt + R " note_font_size 20 note_font_color 0x63e5ffff xpos 778 ypos -3577 } CheckerBoard2 { inputs 0 name CheckerBoard1 xpos -40 ypos -5289 } NoOp { name Anchor_3da2192eb6 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.anchorOnCreate()\n except:\n pass" knobChanged stamps.anchorKnobChanged() autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0xffffff01 note_font_size 20 xpos -40 ypos -5150 addUserKnob {20 anchor_tab l "Anchor Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T anchor} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title ref_1 addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T ref_1} addUserKnob {26 prev_name l "" +STARTLINE +HIDDEN T Anchor_3da2192eb6} addUserKnob {3 showing l "" +STARTLINE +HIDDEN} addUserKnob {1 tags l Tags t "Comma-separated tags you can define for each Anchor, that will help you find it when invoking the Stamp Selector by pressing the Stamps shortkey with nothing selected."} tags 2D, addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 createStamp l new t "Create a new Stamp for this Anchor." -STARTLINE T stamps.stampCreateWired(nuke.thisNode())} addUserKnob {22 selectStamps l select t "Reconnect all of this Anchor's Stamps." -STARTLINE T stamps.wiredSelectSimilar(nuke.thisNode().name())} addUserKnob {22 reconnectStamps l reconnect -STARTLINE T stamps.anchorReconnectWired()} addUserKnob {22 zoomNext l "zoom next" t "Navigate to this Anchor's next Stamp on the Node Graph." -STARTLINE T stamps.wiredZoomNext(nuke.thisNode().name())} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } PostageStamp { name Stamp16 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -40 ypos -5102 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title ref_1 addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T ref_1} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
REF,
PLATE} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_3da2192eb6 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } StickyNote { inputs 0 name StickyNote16 tile_color 0xff9a23ff label " CHANGE QC STATUS AFTER VERIFYING " note_font "Verdana Bold" note_font_size 48 note_font_color 0x100024ff xpos -3403 ypos 24114 } StickyNote { inputs 0 name StickyNote6 tile_color 0x212d16ff label "USE STAMPS TO BRING MATTES IN" note_font_size 60 note_font_color 0xacd68bff xpos 2456 ypos 22979 } StickyNote { inputs 0 name StickyNote15 tile_color 0xff label " IMPORT THE RENDER BY SELECTING\nTHE WRITE NODE AND PRESSING Alt + R " note_font_size 20 note_font_color 0x63e5ffff xpos -982 ypos -3577 } push $Naea49c00 PostageStamp { name Stamp4 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -40 ypos -7166 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title roto addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T roto} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
ROTO,
IN} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_232b89ffe3 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } StickyNote { inputs 0 name StickyNote2 tile_color 0xff label " SET THE INPUT TRANSFORM TO\nACES2065-1 OR RAW " note_font_size 20 note_font_color 0x63e5ffff xpos -1269 ypos -5281 } push $Naf030c00 ViewMetaData { name ViewMetaData3 xpos 290 ypos 18735 } StickyNote { inputs 0 name StickyNote1 tile_color 0x283d15ff label " IMPORT THE RENDER BY SELECTING\nTHE WRITE NODE AND PRESSING Alt + R " note_font_size 20 note_font_color 0xacd68bff xpos -1312 ypos 24287 } StickyNote { inputs 0 name StickyNote5 tile_color 0xff label " SET THE INPUT TRANSFORM TO\nACES2065-1 OR RAW " note_font_size 20 note_font_color 0x63e5ffff xpos 1151 ypos -5305 } StickyNote { inputs 0 name StickyNote10 tile_color 0xff label " SET THE INPUT TRANSFORM TO ACES2065-1 OR RAW \nAND USE THE DISPLAY TRANSFORM NODE " note_font_size 20 note_font_color 0x63e5ffff xpos 3426 ypos -7369 } StickyNote { inputs 0 name StickyNote9 tile_color 0xff label " SET THE CORRECT INPUT TRANSFORM \n e.g. ACEScg" note_font_size 20 note_font_color 0x63e5ffff xpos -2734 ypos -7441 } StickyNote { inputs 0 name StickyNote7 tile_color 0xff label " CORRECT YOUR FRAME RANGE, FORMAT AND FPS IN PROJECT SETTINGS (S) \n\nUSE THE \"SET_PROJECT\" GIZMO" note_font_size 70 note_font_color 0x63e5ffff xpos -1006 ypos -5784 } Group { inputs 0 name lin2log1 knobChanged "\nif nuke.thisKnob().name() == \"working_space\":\n\tprint(\"test\")\n" tile_color 0xa28bd3ff note_font "Verdana Bold" note_font_size 48 note_font_color 0x4e4366ff xpos -2900 ypos -5502 addUserKnob {20 User} addUserKnob {52 python l "" +STARTLINE T "nuke.thisNode().knob(\"knobChanged\").setValue('''\nif nuke.thisKnob().name() == \"working_space\":\n\tprint(\"test\")\n''')" +STARTLINE} addUserKnob {41 display l "display device" T OCIODisplay1.display} addUserKnob {41 in_colorspace l colorspace T OCIOColorSpace1.in_colorspace} } Input { inputs 0 name Input1 xpos -598 ypos -498 } OCIODisplay { colorspace ACES2065-1 display "sRGB - Display" view "ACES 1.0 - SDR Video" name OCIODisplay1 knobChanged "\nnuke.toNode(\"OCIOColorSpace1\").knob(\"out_colorspace\").setValue(nuke.thisNode().knob(\"colorspace\").value())\n" tile_color 0x4e4366ff selected true xpos -598 ypos -465 addUserKnob {20 User} addUserKnob {52 python l "" +STARTLINE T "nuke.thisNode().knob(\"colorspace\").setValue(nuke.root().knob(\"workingSpaceLUT\").value())" +STARTLINE} } OCIOColorSpace { in_colorspace "ARRI LogC3 (EI800)" out_colorspace ACES2065-1 name OCIOColorSpace1 tile_color 0x4e4366ff label "\nchange the input to the correct colorspace\n." xpos -598 ypos -428 addUserKnob {20 User} addUserKnob {52 python l "" +STARTLINE T "nuke.thisNode().knob(\"out_colorspace\").setValue(nuke.root().knob(\"workingSpaceLUT\").value())" +STARTLINE} } Output { name Output1 xpos -598 ypos -328 } end_group push $Naf062400 PostageStamp { name Stamp19 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 510 ypos 23962 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title MASTER_COMP_EXR addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T MASTER_COMP_EXR} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T "
ACES,
MASTER OUTPUT,
OUT"} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_1f620af31 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } Write { file "\[getenv CVRT_SHOT_ROOT]/Export/sends/\[getenv CVRT_FILENAME]_Rec709.mov" file_type mov mov64_format "mov (QuickTime / MOV)" mov64_codec appr mov_prores_codec_profile "ProRes 4:4:4:4 XQ 12-bit" mov_h264_codec_profile "High 4:2:0 8-bit" mov64_pixel_format {{0} "yuv420p\tYCbCr 4:2:0 8-bit"} mov64_quality High mov64_fast_start true mov64_write_timecode true mov64_gop_size 12 mov64_b_frames 0 mov64_bitrate 28000 mov64_bitrate_tolerance 0 mov64_quality_min 1 mov64_quality_max 3 transformType display colorspace "ARRI LogC3 (EI800)" create_directories true checkHashOnRead false version 48 in_colorspace ACES2065-1 out_colorspace "ARRI LogC3 (EI800)" ocioColorspace ACES2065-1 display "sRGB - Display" view "ACES 1.0 - SDR Video" name WRITE_QT_Rec709 label "\n\n!!! Check that the framerate is correct !!!\n\n\[python os.path.normpath(nuke.thisNode().knob(\"file\").evaluate())]" note_font "Verdana Bold" xpos 510 ypos 24333 } push $Naf062400 PostageStamp { name Stamp25 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos 1390 ypos 23962 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title MASTER_COMP_EXR addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T MASTER_COMP_EXR} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T "
ACES,
MASTER OUTPUT,
OUT"} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_1f620af31 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } Write { file "\[getenv CVRT_SHOT_ROOT]/Export/dailies/\[getenv CVRT_FILENAME]_PREVIEW.mov" file_type mov mov64_format "mov (QuickTime / MOV)" mov64_codec appr mov_prores_codec_profile "ProRes 4:2:2 Proxy 10-bit" mov_h264_codec_profile "High 4:2:0 8-bit" mov64_pixel_format {{0} "yuv420p\tYCbCr 4:2:0 8-bit"} mov64_quality High mov64_fast_start true mov64_write_timecode true mov64_gop_size 12 mov64_b_frames 0 mov64_bitrate 28000 mov64_bitrate_tolerance 0 mov64_quality_min 1 mov64_quality_max 3 transformType display colorspace "ARRI LogC3 (EI800)" create_directories true checkHashOnRead false version 31 in_colorspace ACES2065-1 out_colorspace "ARRI LogC3 (EI800)" ocioColorspace ACES2065-1 display "sRGB - Display" view "ACES 1.0 - SDR Video" name WRITE_QT_DAILIES label "\nPREVIEW\n!!! Check that the framerate is correct !!!\n\n\[python os.path.normpath(nuke.thisNode().knob(\"file\").evaluate())]" note_font "Verdana Bold" xpos 1390 ypos 24329 } CheckerBoard2 { inputs 0 name CheckerBoard8 xpos 2600 ypos 23247 } Shuffle2 { fromInput1 {{0} B} fromInput2 {{0} B} mappings "4 black -1 -1 rgba.red 0 0 rgba.alpha 0 3 rgba.alpha 0 3 black -1 -1 rgba.green 0 1 rgba.alpha 0 3 rgba.blue 0 2" name Shuffle4 xpos 2600 ypos 23679 } Dot { name Dot28 xpos 2622 ypos 24126 } CheckerBoard2 { inputs 0 name CheckerBoard10 xpos 3260 ypos 23247 } Shuffle2 { fromInput1 {{0} B} fromInput2 {{0} B} mappings "4 black -1 -1 rgba.blue 0 2 black -1 -1 rgba.red 0 0 rgba.alpha 0 3 rgba.green 0 1 rgba.alpha 0 3 rgba.alpha 0 3" name Shuffle2 xpos 3260 ypos 23679 } Dot { name Dot29 xpos 3282 ypos 23958 } CheckerBoard2 { inputs 0 name CheckerBoard9 xpos 2930 ypos 23247 } Shuffle2 { fromInput1 {{0} B} fromInput2 {{0} B} mappings "4 rgba.alpha 0 3 rgba.red 0 0 black -1 -1 rgba.green 0 1 black -1 -1 rgba.blue 0 2 rgba.alpha 0 3 rgba.alpha 0 3" name Shuffle1 xpos 2930 ypos 23679 } Merge2 { inputs 2 operation screen name Merge4 xpos 2930 ypos 23967 } Merge2 { inputs 2 operation screen name Merge5 xpos 2930 ypos 24135 } Write { file "\[getenv CVRT_SHOT_ROOT]/Export/sends/\[getenv CVRT_FILENAME]/\[getenv CVRT_FILENAME]_MATTES/\[getenv CVRT_FILENAME]_MATTES.%04d.exr" file_type exr compression DWAA first_part rgba transformType display colorspace ACES2065-1 create_directories true checkHashOnRead false version 39 in_colorspace ACES2065-1 out_colorspace ACES2065-1 ocioColorspace ACES2065-1 display "sRGB - Display" view "ACES 1.0 - SDR Video" name WRITE_EXR_MATTES label "\n\n\[python os.path.normpath(nuke.thisNode().knob(\"file\").evaluate())]" note_font "Verdana Bold" xpos 2930 ypos 24681 } push $Naebbc000 PostageStamp { name Stamp20 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -2460 ypos 23866 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title FG_degrained addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T FG_degrained} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
DENOISE} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_7da7cf1af addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } push $Na74fa000 PostageStamp { name Stamp32 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -3340 ypos 23866 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title MAIN_COMP_DEGRAINED addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T MAIN_COMP_DEGRAINED} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." +HIDDEN T " "} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_12ba88c423 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } push $Naf031400 PostageStamp { name Stamp33 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -3120 ypos 23578 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title MAIN_COMP addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T MAIN_COMP} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
METADATA} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_24e470df3b addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } push $Na70e8c00 PostageStamp { name Stamp34 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -2680 ypos 23578 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title FG_plate addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T FG_plate} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T
PLATE} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_2d7fd50644 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } Group { inputs 4 name QC_1 knobChanged "\n# hide/show \[orientation] knob\nif nuke.thisKnob().name() == \"check_type\":\n\tnuke.thisNode().knob(\"orientation\").setVisible(nuke.thisKnob().getValue() == 0)\n\tnuke.thisNode().knob(\"switch\").setVisible(nuke.thisKnob().getValue() == 1)\n\tnuke.thisNode().knob(\"highlight\").setVisible(nuke.thisKnob().getValue() == 4)\n\n# change node color\nif nuke.thisKnob().name() == \"status\":\n\tcolors = \[1283457023, 16711935, 4278190335]\n\tnuke.thisNode().knob(\"tile_color\").setValue(colors\[int(nuke.thisKnob().getValue())])\n\tnuke.thisNode().knob(\"label\").setValue(nuke.thisKnob().value())\n" tile_color 0x4c7fffff label PENDING note_font_size 48 xpos -2900 ypos 23824 addUserKnob {20 options l OPTIONS} addUserKnob {52 python l "" +STARTLINE T "nuke.thisNode().knob(\"knobChanged\").setValue('''\n# hide/show \[orientation] knob\nif nuke.thisKnob().name() == \"check_type\":\n\tnuke.thisNode().knob(\"orientation\").setVisible(nuke.thisKnob().getValue() == 0)\n\tnuke.thisNode().knob(\"switch\").setVisible(nuke.thisKnob().getValue() == 1)\n\tnuke.thisNode().knob(\"highlight\").setVisible(nuke.thisKnob().getValue() == 4)\n\n# change node color\nif nuke.thisKnob().name() == \"status\":\n\tcolors = \[1283457023, 16711935, 4278190335]\n\tnuke.thisNode().knob(\"tile_color\").setValue(colors\[int(nuke.thisKnob().getValue())])\n\tnuke.thisNode().knob(\"label\").setValue(nuke.thisKnob().value())\n''')" +STARTLINE} addUserKnob {4 status l Status: M {PENDING PASSED FAILED}} addUserKnob {22 set_range l "SET RANGE FROM" T "source = nuke.thisNode().knob(\"range_source\").value()\nrange_first = 1001\nrange_last = 1250\n\nif source == \"PLATE\":\n\tif nuke.thisNode().input(0):\n\t\ttopnode_name = nuke.tcl(\"full_name \[topnode %s]\" % nuke.thisNode().input(0).name())\n\t\ttopnode = nuke.toNode(topnode_name)\n\t\trange_first = topnode.knob(\"first\").value()\n\t\trange_last = topnode.knob(\"last\").value()\n\nelif source == \"COMP\":\n\tif nuke.thisNode().input(1):\n\t\ttopnode_name = nuke.tcl(\"full_name \[topnode %s]\" % nuke.thisNode().input(1).name())\n\t\ttopnode = nuke.toNode(topnode_name)\n\t\trange_first = topnode.knob(\"first\").value()\n\t\trange_last = topnode.knob(\"last\").value()\n\nnuke.root().knob(\"first_frame\").setValue(range_first)\nnuke.root().knob(\"last_frame\").setValue(range_last)" +STARTLINE} addUserKnob {4 range_source l "" -STARTLINE M {PLATE COMP ""}} addUserKnob {4 check_type l Check M {side-by-side "switch PLATE/COMP" "frame size | TC | frame range" grain "difference \[highlighted]" difference neg/high NaN "" "" "" "" "" "" ""}} addUserKnob {4 orientation l "" -STARTLINE M {Vertical Horizontal "" ""}} addUserKnob {6 switch l "" -STARTLINE +HIDDEN} addUserKnob {18 highlight l "" -STARTLINE +HIDDEN} highlight {0 1 0} addUserKnob {6 highlight_panelDropped l "panel dropped state" -STARTLINE +HIDDEN} addUserKnob {26 separator l "" +STARTLINE} addUserKnob {26 copyright l "" +STARTLINE T "QC_AM v1.1 - Alex Munteanu"} } BackdropNode { inputs 0 name " " tile_color 0x222222ff label
note_font "Arial Black" note_font_size 100 note_font_color 0xaeaeaeff xpos -1637 ypos -759 bdwidth 2640 bdheight 633 } BackdropNode { inputs 0 name BackdropNode20 tile_color 0x7f7f7fff label
QC note_font "Century Gothic Bold" note_font_size 200 note_font_color 0x363636ff xpos -3745 ypos 142 bdwidth 4533 bdheight 5503 } BackdropNode { inputs 0 name " 1" tile_color 0xb9b9b9ff label
SIDE-BY-SIDE note_font "Arial Black" note_font_size 100 note_font_color 0x3b3b3bff xpos -3100 ypos 458 bdwidth 781 bdheight 772 z_order 1 } BackdropNode { inputs 0 name " 2" tile_color 0xb9b9b9ff label "
FRAME WIDTH/HEIGHT & FRAME RANGE" note_font "Arial Black" note_font_size 24 note_font_color 0x3b3b3bff xpos -1361 ypos 493 bdwidth 592 bdheight 737 z_order 1 } BackdropNode { inputs 0 name " 3" tile_color 0xb9b9b9ff label
PLATE note_font "Arial Black" note_font_size 100 note_font_color 0x3b3b3bff xpos -3221 ypos -824 bdwidth 605 bdheight 758 z_order 1 } BackdropNode { inputs 0 name " 4" tile_color 0xb9b9b9ff label
COMP note_font "Arial Black" note_font_size 100 note_font_color 0x3b3b3bff xpos -2516 ypos -826 bdwidth 595 bdheight 754 z_order 1 } BackdropNode { inputs 0 name " 5" tile_color 0xb9b9b9ff label "
1) This will show all the differences between your plate and comp\nAdjust the gain in the difference node to effect the sensitvitiy.\n\nThis is great for checking that you're only adjusting areas that should be changed." note_font "Arial Black" note_font_size 24 note_font_color 0x3b3b3bff xpos -2947 ypos 3017 bdwidth 1444 bdheight 1330 z_order 1 } BackdropNode { inputs 0 name " 6" tile_color 0xb9b9b9ff label "
Check Nan Values\n\nThese will be highlighted in Red" note_font "Arial Black" note_font_size 24 note_font_color 0x3b3b3bff xpos -1397 ypos 3072 bdwidth 1127 bdheight 1017 z_order 1 } BackdropNode { inputs 0 name " 7" tile_color 0xb9b9b9ff label "
Check Negative Values/Super High Values (marked in white)\n\nCheck you are not creating negative values \nor super high values" note_font "Arial Black" note_font_size 24 note_font_color 0x3b3b3bff xpos -1416 ypos 1617 bdwidth 1137 bdheight 964 z_order 1 } BackdropNode { inputs 0 name " 8" tile_color 0xb9b9b9ff label "
GRAIN check\nFrame should be completely black if nothing has been added/changed in comp" note_font "Arial Black" note_font_size 24 note_font_color 0x3b3b3bff xpos -2991 ypos 1594 bdwidth 1466 bdheight 1126 z_order 1 } Constant { inputs 0 channels rgb color {{"\[expr \{\[value \[topnode parent.input0].width] == \[value \[topnode parent.input1].width] && \[value \[topnode parent.input0].height] == \[value \[topnode parent.input1].height] && \[value \[topnode parent.input0].first] == \[value \[topnode parent.input1].first] && \[value \[topnode parent.input0].last] == \[value \[topnode parent.input1].last] && \[metadata -n parent.input0 input/timecode] == \[metadata -n parent.input1 input/timecode] ? 0 : 1\}]"} {"\[expr \{\[value \[topnode parent.input0].width] == \[value \[topnode parent.input1].width] && \[value \[topnode parent.input0].height] == \[value \[topnode parent.input1].height] && \[value \[topnode parent.input0].first] == \[value \[topnode parent.input1].first] && \[value \[topnode parent.input0].last] == \[value \[topnode parent.input1].last] && \[metadata -n parent.input0 input/timecode] == \[metadata -n parent.input1 input/timecode] ? 1 : 0\}]"} 0 0} color_panelDropped true format "256 256 0 0 256 256 1 square_256" name Constant4 note_font_size 24 xpos -3592 ypos 304 } Dot { name Dot9 xpos -3570 ypos 438 } set Na48ce400 [stack 0] PostageStamp { name PostageStamp14 label STATUS_ICON xpos -889 ypos 3729 hide_input true } Transform { translate {0 {"parent.height - height"}} center {128 128} name Transform7 xpos -889 ypos 3807 } Input { inputs 0 name COMP xpos -2257 ypos -635 number 1 } Dot { name Dot1 xpos -2235 ypos -552 } set Na48cf400 [stack 0] Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message "\[file tail \[value \[topnode parent.input1].file]]\nTC: \[metadata input/timecode] | fps: \[metadata input/frame_rate] | frame range: \[value \[topnode parent.input1].first] - \[value \[topnode parent.input1].last]" old_message {{91 102 105 108 101 32 116 97 105 108 32 91 118 97 108 117 101 32 110 111 100 101 50 56 53 97 55 53 56 54 99 48 48 46 102 105 108 101 93 93 10 84 67 58 32 32 124 32 102 112 115 58 32 32 124 32 102 114 97 109 101 32 114 97 110 103 101 58 32 91 118 97 108 117 101 32 110 111 100 101 50 56 53 97 55 53 56 54 99 48 48 46 102 105 114 115 116 93 32 45 32 91 118 97 108 117 101 32 110 111 100 101 50 56 53 97 55 53 56 54 99 48 48 46 108 97 115 116 93} } old_expression_markers {{18 32 45 44 53 52 76 90 108 122} } box {{"0.025 * width"} {"0.05 * height"} {"0.975 * width"} {"0.2 * height"}} yjustify bottom transforms {{0 2} } cursor_position 48 font {{ Utopia : Bold : UtopiaBold.pfa : 0 }} leading 0.2 scale {1 1} center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{20 314.5} } group_animations {{0} imported: 0 selected: items: "root transform"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } enable_background true background_opacity 0.9 background_border_x 20 background_border_y 10 name COMP_INFO xpos -2409 ypos -465 disable {{"parent.check_type != 0" x1043 1}} } push $Na48cf400 Switch { inputs 2 which {{"\[exists parent.input1]"}} name Switch6 xpos -2257 ypos -465 } Dot { name Dot6 xpos -2235 ypos -354 } set Na73e0000 [stack 0] PostageStamp { name PostageStamp23 label COMP xpos -712 ypos 3249 hide_input true } Dot { name Dot12 xpos -690 ypos 3366 } set Na73e0800 [stack 0] Expression { expr0 "isnan(r) ? 10000 : 0" expr1 "isnan(g) ? 10000 : 0" expr2 "isnan(b) ? 10000 : 0" expr3 "isnan(a) ? 10000 : 0" name ISNAN xpos -712 ypos 3567 } Merge2 { inputs 2 name Merge12 xpos -712 ypos 3807 } Dot { name Dot29 xpos -690 ypos 3918 } set Na73e1400 [stack 0] PostageStamp { name PostageStamp52 label NaN xpos 685 ypos -495 hide_input true } push $Na48ce400 PostageStamp { name PostageStamp11 label STATUS_ICON xpos -709 ypos 2217 hide_input true } Transform { translate {0 {"parent.height - height"}} center {128 128} name Transform6 xpos -709 ypos 2302 } push $Na73e0000 PostageStamp { name PostageStamp22 label COMP xpos -931 ypos 1929 hide_input true } Dot { name Dot7 xpos -909 ypos 2101 } set Na740a800 [stack 0] Dot { name Dot8 xpos -1138 ypos 2101 } Expression { expr0 "r > 50 ? 10000 : 0" expr1 "g > 50 ? 10000 : 0" expr2 "b > 50 ? 10000 : 0" expr3 "a > 50 ? 10000 : 0" name HIGH xpos -1160 ypos 2223 } Dot { name Dot21 xpos -1138 ypos 2286 } set Na740b400 [stack 0] PostageStamp { name PostageStamp38 label QC_HIGH xpos -700 ypos 2114 hide_input true } push $Na740a800 Expression { expr0 "r < 0 ? 10000 : 0" expr1 "g < 0 ? 10000 : 0" expr2 "b < 0 ? 10000 : 0" expr3 "a < 0 ? 10000 : 0" name NEGATIVE xpos -931 ypos 2223 } Dot { name Dot22 xpos -909 ypos 2286 } set Na7434000 [stack 0] PostageStamp { name PostageStamp37 label QC_NEG xpos -532 ypos 1986 hide_input true } Merge2 { inputs 2 operation plus name Merge2 xpos -532 ypos 2120 } Merge2 { inputs 2 name Merge11 xpos -532 ypos 2302 } Dot { name Dot23 xpos -510 ypos 2406 } set Na7435000 [stack 0] PostageStamp { name PostageStamp40 label QC_NEG_HIGH xpos 430 ypos -495 hide_input true } push $Na48ce400 PostageStamp { name PostageStamp13 label STATUS_ICON xpos -2055 ypos 3849 hide_input true } Transform { translate {0 {"parent.height - height"}} center {128 128} name Transform5 xpos -2055 ypos 3927 } push $Na73e0000 PostageStamp { name PostageStamp29 label COMP xpos -2047 ypos 3472 hide_input true } Input { inputs 0 name PLATE xpos -2952 ypos -633 } Dot { name Dot2 xpos -2930 ypos -546 } set Na7466800 [stack 0] Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message "\[file tail \[value \[topnode parent.input0].file]]\nTC: \[metadata input/timecode] | fps: \[metadata input/frame_rate] | frame range:\[value \[topnode parent.input0].first] - \[value \[topnode parent.input0].last]" old_message {{91 102 105 108 101 32 116 97 105 108 32 91 118 97 108 117 101 32 110 111 100 101 50 56 53 97 55 53 56 54 99 48 48 46 102 105 108 101 93 93 10 84 67 58 32 32 124 32 102 112 115 58 32 32 124 32 102 114 97 109 101 32 114 97 110 103 101 58 91 118 97 108 117 101 32 110 111 100 101 50 56 53 97 55 53 56 54 99 48 48 46 102 105 114 115 116 93 32 45 32 91 118 97 108 117 101 32 110 111 100 101 50 56 53 97 55 53 56 54 99 48 48 46 108 97 115 116 93} } old_expression_markers {{18 32 45 44 53 52 75 89 107 121} } box {{"0.025 * width"} {"0.05 * height"} {"0.975 * width"} {"0.2 * height"}} yjustify bottom transforms {{0 2} } cursor_position 165 font {{ Utopia : Bold : UtopiaBold.pfa : 0 }} leading 0.2 scale {1 1} center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{20 314.5} } group_animations {{0} imported: 0 selected: items: "root transform"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } enable_background true background_opacity 0.9 background_border_x 20 background_border_y 10 name PLATE_INFO xpos -3088 ypos -465 disable {{"parent.check_type != 0"}} } push $Na7466800 Switch { inputs 2 which {{"\[exists parent.input0]"}} name Switch5 xpos -2952 ypos -465 } Dot { name Dot5 xpos -2930 ypos -330 } set Na7467400 [stack 0] PostageStamp { name PostageStamp18 label PLATE xpos -1878 ypos 3369 hide_input true } Merge2 { inputs 2 operation difference sRGB true name Merge4 xpos -1878 ypos 3478 } Merge2 { inputs 2 name Merge10 xpos -1878 ypos 3927 } Dot { name Dot28 xpos -1856 ypos 4014 } set Na749a400 [stack 0] PostageStamp { name PostageStamp50 label DIFFERENCE xpos 180 ypos -495 hide_input true } push $Na48ce400 PostageStamp { name PostageStamp12 label STATUS_ICON xpos -2847 ypos 3849 hide_input true } Transform { translate {0 {"parent.height - height"}} center {128 128} name Transform4 xpos -2847 ypos 3927 } push $Na73e0000 PostageStamp { name PostageStamp28 label COMP xpos -2670 ypos 3273 hide_input true } Dot { name Dot14 xpos -2648 ypos 3397 } set Na749b800 [stack 0] Dot { name Dot15 xpos -2363 ypos 3397 } push $Na7467400 PostageStamp { name PostageStamp19 label PLATE xpos -2221 ypos 3472 hide_input true } Difference { inputs 2 gain 100 name Difference7 xpos -2385 ypos 3472 } Shuffle2 { fromInput1 {{0} B} fromInput2 {{0} B} mappings "4 rgba.alpha 0 3 rgba.red 0 0 rgba.alpha 0 3 rgba.green 0 1 rgba.alpha 0 3 rgba.blue 0 2 rgba.alpha 0 3 rgba.alpha 0 3" name Shuffle1 xpos -2385 ypos 3561 } Dot { name Dot16 xpos -2363 ypos 3637 } set Na71d2c00 [stack 0] Constant { inputs 0 channels rgb color {{parent.highlight.r} {parent.highlight.g} {parent.highlight.b} 1} color_panelDropped true format "256 256 0 0 256 256 1 square_256" name Constant1 xpos -2873 ypos 3622 } push $Na749b800 Keymix { inputs 3 name Keymix1 xpos -2670 ypos 3640 } Merge2 { inputs 2 name Merge9 xpos -2670 ypos 3927 } Dot { name Dot26 xpos -2648 ypos 4014 } set Na71d3c00 [stack 0] PostageStamp { name PostageStamp48 label DIFFERENCE_HIGHLIGHT xpos -136 ypos -495 hide_input true } push $Na48ce400 PostageStamp { name PostageStamp10 label STATUS_ICON xpos -2038 ypos 2361 hide_input true } Transform { translate {0 {"parent.height - height"}} center {128 128} name Transform3 xpos -2038 ypos 2422 } Input { inputs 0 name DEGRAINED_PLATE label optional xpos -2925 ypos 2223 number 3 } push $Na7467400 PostageStamp { name PostageStamp16 label PLATE xpos -2659 ypos 1857 hide_input true } Dot { name Dot37 xpos -2637 ypos 2022 } set Na7201400 [stack 0] Dot { name Dot38 xpos -2747 ypos 2022 } Blur { size 7 name Blur1 xpos -2769 ypos 2145 } set Ca7201c00 [stack 0] Switch { inputs 2 which {{"\[expr \{\[exists parent.input2] && \[exists parent.input3]\}]"}} name Switch2 xpos -2769 ypos 2229 } set Ca7222000 [stack 0] push $Na7201400 Merge2 { inputs 2 operation from name Merge3 xpos -2659 ypos 2229 } Grade { white 30 name Grade1 xpos -2659 ypos 2397 } set Ca7222800 [stack 0] Dot { name Dot18 xpos -2637 ypos 2454 } set Na7222c00 [stack 0] PostageStamp { name PostageStamp31 label PLATE_GRAIN xpos -2020 ypos 2241 hide_input true } Input { inputs 0 name DEGRAINED_COMP label optional xpos -2501 ypos 2301 number 2 } push $Na73e0000 PostageStamp { name PostageStamp21 label COMP xpos -2208 ypos 1857 hide_input true } Dot { name Dot39 xpos -2186 ypos 2016 } set Na7223c00 [stack 0] Dot { name Dot40 xpos -2296 ypos 2016 } clone $Ca7201c00 { xpos -2318 ypos 2139 selected false } clone $Ca7222000 { inputs 2 xpos -2318 ypos 2307 selected false } push $Na7223c00 Merge2 { inputs 2 operation from name Merge6 xpos -2208 ypos 2307 } clone $Ca7222800 { xpos -2208 ypos 2391 selected false } Dot { name Dot19 xpos -2186 ypos 2454 } set Na7255400 [stack 0] PostageStamp { name PostageStamp33 label COMP_GRAIN xpos -1861 ypos 2128 hide_input true } Merge2 { inputs 2 operation difference sRGB true name Merge5 xpos -1861 ypos 2247 } Merge2 { inputs 2 name Merge8 xpos -1861 ypos 2422 } Dot { name Dot20 xpos -1839 ypos 2502 } set Na7280400 [stack 0] PostageStamp { name PostageStamp41 label QC_GRAIN xpos -466 ypos -495 hide_input true } Constant { inputs 0 channels rgb color {{"\[expr \{\[value \[topnode parent.input0].width] == \[value \[topnode parent.input1].width] && \[value \[topnode parent.input0].height] == \[value \[topnode parent.input1].height] && \[value \[topnode parent.input0].first] == \[value \[topnode parent.input1].first] && \[value \[topnode parent.input0].last] == \[value \[topnode parent.input1].last] && \[metadata -n parent.input0 input/timecode] == \[metadata -n parent.input1 input/timecode] ? 0 : 1\}]"} {"\[expr \{\[value \[topnode parent.input0].width] == \[value \[topnode parent.input1].width] && \[value \[topnode parent.input0].height] == \[value \[topnode parent.input1].height] && \[value \[topnode parent.input0].first] == \[value \[topnode parent.input1].first] && \[value \[topnode parent.input0].last] == \[value \[topnode parent.input1].last] && \[metadata -n parent.input0 input/timecode] == \[metadata -n parent.input1 input/timecode] ? 1 : 0\}]"} 0 0} color_panelDropped true name Constant3 note_font_size 24 xpos -1105 ypos 608 } set Na7280c00 [stack 0] Reformat { type "to box" box_width {{"\[topnode parent.input1].width"}} box_height {{"\[topnode parent.input1].height"}} box_fixed true center false name REFORMAT_TO_PLATE xpos -1255 ypos 759 } push $Na7280c00 Switch { inputs 2 which {{"\[exists parent.input0]"}} name Switch3 xpos -1105 ypos 836 } set Na7281800 [stack 0] Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 cliptype union message "WIDTH: \[expr \{\[value \[topnode parent.input0].width] == \[value \[topnode parent.input1].width] ? \"OK\" : \"MISMATCH\"\}]\nHEIGHT: \[expr \{\[value \[topnode parent.input0].height] == \[value \[topnode parent.input1].height] ? \"OK\" : \"MISMATCH\"\}]\n\nTC: \[expr \{\[metadata -n parent.input0 input/timecode] == \[metadata -n parent.input1 input/timecode] ? \"OK\" : \"MISMATCH\"\}]\n\nRANGE START: \[expr \{\[value \[topnode parent.input0].first] == \[value \[topnode parent.input1].first] ? \"OK\" : \"MISMATCH\"\}]\nRANGE END: \[expr \{\[value \[topnode parent.input0].last] == \[value \[topnode parent.input1].last] ? \"OK\" : \"MISMATCH\"\}]" old_message {{87 73 68 84 72 58 32 79 75 10 72 69 73 71 72 84 58 32 79 75 10 10 84 67 58 32 77 73 83 77 65 84 67 72 10 10 82 65 78 71 69 32 83 84 65 82 84 58 32 79 75 10 82 65 78 71 69 32 69 78 68 58 32 79 75} } old_expression_markers {{7 8 18 19 26 33 49 50 63 64} } box {0 0 {width} {height}} xjustify center yjustify center transforms {{0 2} } cursor_position 317 font {{ Utopia : Bold : UtopiaBold.pfa : 0 }} global_font_scale 2 leading 0.2 scale {1 1} center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{20 314.5} } group_animations {{0} imported: 0 selected: items: "root transform"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } enable_background true background_opacity 0.9 background_border_x 20 background_border_y 10 name CHECK_WIDTH_HEIGHT_FRAMERANGE xpos -1273 ypos 946 } push $Na7281800 Switch { inputs 2 which {{"\[expr \{\[exists parent.input0] && \[exists parent.input1]\}]"}} name Switch4 xpos -1105 ypos 946 } Dot { name Dot25 xpos -1083 ypos 1046 } set Na72ba400 [stack 0] PostageStamp { name PostageStamp45 label WIDTH_HEIGHT_FRAMERANGE xpos -810 ypos -495 hide_input true } push $Na48ce400 PostageStamp { name PostageStamp7 label STATUS_ICON xpos -1867 ypos 763 hide_input true } Transform { translate {0 {"parent.height - height"}} center {128 128} name Transform2 xpos -1867 ypos 838 } push $Na73e0000 PostageStamp { name PostageStamp20 label COMP xpos -1690 ypos 633 hide_input true } Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message COMP old_message {{67 79 77 80} } box {{"0.025 * width"} {"0.9 * height"} {"0.975 * width"} {"1 * height"}} xjustify center yjustify bottom transforms {{0 2} } cursor_position 4 font {{ Utopia : Bold : UtopiaBold.pfa : 0 }} global_font_scale 2 leading 0.2 scale {1 1} center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{20 314.5} } group_animations {{0} imported: 0 selected: items: "root transform"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } enable_background true background_opacity 0.9 background_border_x 20 background_border_y 10 name Text1 xpos -1690 ypos 735 } Merge2 { inputs 2 name Merge7 xpos -1690 ypos 838 } Dot { name Dot3 xpos -1668 ypos 957 } push $Na7467400 PostageStamp { name PostageStamp15 label PLATE xpos -2041 ypos 633 hide_input true } Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message PLATE old_message {{80 76 65 84 69} } box {{"0.025 * width"} {"0.9 * height"} {"0.975 * width"} {"1 * height"}} xjustify center yjustify bottom transforms {{0 2} } cursor_position 5 font {{ Utopia : Bold : UtopiaBold.pfa : 0 }} global_font_scale 2 leading 0.2 scale {1 1} center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{20 314.5} } group_animations {{0} imported: 0 selected: items: "root transform"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } enable_background true background_opacity 0.9 background_border_x 20 background_border_y 10 name Text2 xpos -2041 ypos 735 } Dot { name Dot4 xpos -2019 ypos 957 } Switch { inputs 2 which {{parent.switch}} name Switch1 xpos -1846 ypos 966 } Dot { name Dot24 xpos -1824 ypos 1062 } set Na72f9400 [stack 0] PostageStamp { name PostageStamp43 label SWITCH_PLATE_COMP xpos -1140 ypos -495 hide_input true } push $Na48ce400 PostageStamp { name PostageStamp6 label STATUS_ICON xpos -3010 ypos 897 hide_input true } Transform { translate {0 {"parent.height - width"}} center {128 128} name Transform1 xpos -3010 ypos 985 } push $Na73e0000 PostageStamp { name PostageStamp4 label COMP xpos -2655 ypos 657 hide_input true } Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message COMP old_message {{67 79 77 80} } box {{"0.025 * width"} {"0.9 * height"} {"0.975 * width"} {"1 * height"}} xjustify center yjustify bottom transforms {{0 2} } cursor_position 4 font {{ Utopia : Bold : UtopiaBold.pfa : 0 }} global_font_scale 2 leading 0.2 scale {1 1} center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{20 314.5} } group_animations {{0} imported: 0 selected: items: "root transform"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } enable_background true background_opacity 0.9 background_border_x 20 background_border_y 10 name Text5 xpos -2655 ypos 748 } push $Na7467400 PostageStamp { name PostageStamp3 label PLATE xpos -2844 ypos 657 hide_input true } Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message PLATE old_message {{80 76 65 84 69} } box {{"0.025 * width"} {"0.9 * height"} {"0.975 * width"} {"1 * height"}} xjustify center yjustify bottom transforms {{0 2} } cursor_position 5 font {{ Utopia : Bold : UtopiaBold.pfa : 0 }} global_font_scale 2 leading 0.2 scale {1 1} center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{20 314.5} } group_animations {{0} imported: 0 selected: items: "root transform"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } enable_background true background_opacity 0.9 background_border_x 20 background_border_y 10 name Text4 xpos -2844 ypos 752 } ContactSheet { inputs 2 width {{"columns * input.width"}} height {{"rows * input.height"}} rows {{"parent.orientation == 0 ? 2 : 1"}} columns {{"parent.orientation == 1 ? 2 : 1"}} center true roworder TopBottom name ContactSheet1 xpos -2767 ypos 872 } Merge2 { inputs 2 name Merge1 xpos -2767 ypos 985 } Dot { name Dot10 xpos -2745 ypos 1040 } set Nafa7bc00 [stack 0] PostageStamp { name PostageStamp9 label SIDE_BY_SIDE xpos -1392 ypos -484 hide_input true } Switch { inputs 8 which {{parent.check_type}} name check_type xpos -706 ypos -273 } Output { name Output1 xpos -706 ypos -211 } push $Nafa7bc00 PostageStamp { name PostageStamp8 label SIDE_BY_SIDE xpos -2767 ypos 1154 hide_input true } push $Na48ce400 PostageStamp { name PostageStamp5 label STATUS_ICON xpos -3592 ypos 573 hide_input true } push $Na7467400 PostageStamp { name PostageStamp1 label PLATE xpos -2952 ypos -217 hide_input true } push $Na73e0000 PostageStamp { name PostageStamp2 label COMP xpos -2257 ypos -231 hide_input true } push $Na7467400 PostageStamp { name PostageStamp17 label PLATE xpos -810 ypos 1929 hide_input true } push $Na73e0000 PostageStamp { name PostageStamp24 label COMP xpos -1078 ypos 4257 hide_input true } ColorCorrect { saturation 0 contrast 2.5 name ColorCorrect1 xpos -1078 ypos 4383 } Dot { name Dot13 xpos -1055 ypos 4446 } PostageStamp { name PostageStamp26 label B&W xpos -1077 ypos 4577 hide_input true } push $Na73e0000 PostageStamp { name PostageStamp25 label COMP xpos -480 ypos 4257 hide_input true } Saturation { saturation 9 name Saturation1 xpos -480 ypos 4383 } Dot { name Dot17 xpos -458 ypos 4446 } PostageStamp { name PostageStamp27 label SATURATION xpos -480 ypos 4569 hide_input true } push $Na7222c00 PostageStamp { name PostageStamp30 label PLATE_GRAIN xpos -2659 ypos 2536 hide_input true } push $Na7255400 PostageStamp { name PostageStamp32 label COMP_GRAIN xpos -2208 ypos 2545 hide_input true } push $Na7280400 PostageStamp { name PostageStamp34 label QC_GRAIN xpos -1861 ypos 2601 hide_input true } push $Na740b400 PostageStamp { name PostageStamp35 label QC_HIGH xpos -1160 ypos 2361 hide_input true } push $Na7434000 PostageStamp { name PostageStamp36 label QC_NEG xpos -931 ypos 2361 hide_input true } push $Na72f9400 PostageStamp { name PostageStamp42 label SWITCH_PLATE_COMP xpos -1846 ypos 1241 hide_input true } push $Na72ba400 PostageStamp { name PostageStamp44 label WIDTH_HEIGHT_FRAMERANGE xpos -1105 ypos 1161 hide_input true } push $Na71d2c00 Dot { name Dot27 xpos -2363 ypos 4014 } PostageStamp { name PostageStamp47 label DIFFERENCE_ALPHA xpos -2385 ypos 4137 hide_input true } push $Na71d3c00 PostageStamp { name PostageStamp46 label DIFFERENCE_HIGHLIGHT xpos -2670 ypos 4137 hide_input true } push $Na749a400 PostageStamp { name PostageStamp49 label DIFFERENCE xpos -1878 ypos 4137 hide_input true } push $Na73e1400 PostageStamp { name PostageStamp51 label NaN xpos -712 ypos 4017 hide_input true } push $Na73e0800 Expression { channel0 rgba expr0 isnan(r) channel1 rgba expr1 isnan(g) channel2 rgba expr2 isnan(b) name Expression4 xpos -840 ypos 3464 disable true } Expression { channel0 rgba expr0 clamp(r+g+b) channel1 rgba expr1 clamp(r+g+b) channel2 rgba expr2 clamp(r+g+b) channel3 rgba expr3 clamp(r+g+b) name Expression5 xpos -840 ypos 3511 disable true } Constant { inputs 0 channels rgb color {1 0 0 0} color_panelDropped true name Constant2 xpos -1250 ypos 3487 disable true } push $Na73e0800 Dot { name Dot11 xpos -994 ypos 3366 } Keymix { inputs 3 name Keymix2 xpos -1016 ypos 3505 disable true } push $Na7435000 PostageStamp { name PostageStamp39 label QC_NEG_HIGH xpos -532 ypos 2505 hide_input true } push $Na48cf400 PostageStamp { name PostageStamp54 label COMP xpos -2036 ypos 4579 hide_input true } Dot { name Dot31 xpos -2014 ypos 4734 } set Nafb80c00 [stack 0] TimeOffset { time_offset 1 time "" name TimeOffset2 xpos -2192 ypos 4877 } push $Nafb80c00 Merge2 { inputs 2 operation difference sRGB true name Merge14 xpos -2036 ypos 4877 } Expression { expr0 "r == 0 ? 10000 : 0" expr1 "g == 0 ? 10000 : 0" expr2 "b == 0 ? 10000 : 0" expr3 "a == 0 ? 10000 : 0" name DISPLAY2 xpos -2036 ypos 4965 } push $Na7466800 PostageStamp { name PostageStamp53 label PLATE xpos -2731 ypos 4593 hide_input true } Dot { name Dot30 xpos -2709 ypos 4744 } set Nafb81c00 [stack 0] TimeOffset { time_offset 1 time "" name TimeOffset1 xpos -2887 ypos 4887 } set Naed1d700 [stack 0] push $Nafb81c00 Merge2 { inputs 2 operation difference sRGB true name Merge13 xpos -2731 ypos 4887 } Expression { expr0 "r == 0 ? 10000 : 0" expr1 "g == 0 ? 10000 : 0" expr2 "b == 0 ? 10000 : 0" expr3 "a == 0 ? 10000 : 0" name DISPLAY1 xpos -2731 ypos 4975 } BlinkScript { inputs 0 recompileCount 2 ProgramGroup 1 KernelDescription "3 \"DuplicatedFrames\" iterate pixelWise 8bf42c540d2893ab01859b6f1ba0969a366c433fcf6f5cc7644c5acabe4a6134 2 \"src\" Read Point \"dst\" Write Point 0 0 0" kernelSource "\nkernel DuplicatedFrames : ImageComputationKernel\n\{\n Image src; // the input image\n Image dst; // the output image\n\n param:\n\n\n // In define(), parameters can be given labels and default values.\n void define() \{\n\n \}\n\n // The init() function is run before any calls to process().\n // Local variables can be initialized here.\n void init() \{\n \}\n\n void process() \{\n // Read the input image\n SampleType(src) input = src();\n\n // Isolate the RGBA components\n float4 srcPixel(input.x, input.y, input.z, input.w);\n \n float mark = 0.0f;\n\n if (srcPixel.x > 0.0f || srcPixel.y > 0.0f || srcPixel.z > 0.0f || srcPixel.w > 0.0f) \{\n mark = 1.0f;\n \}\n\n dst() = float4(mark, 0.0f, 0.0f, 0.0f);\n \}\n\};\n" rebuild "" rebuild_finalise "" name BlinkScript2 xpos -2509 ypos 4938 } BlinkScript { inputs 0 recompileCount 13 ProgramGroup 1 KernelDescription "3 \"DuplicatedFrames\" iterate pixelWise 4bc177c43a4f70507460cb63ecb623c7d194e2c006c37326230da1462f1523ab 3 \"current_frame\" Read Point \"previous_frame\" Read Point \"dst\" Write Point 0 0 0" kernelSource "\nkernel DuplicatedFrames : ImageComputationKernel\n\{\n Image current_frame;\n Image previous_frame;\n Image dst; // the output image\n \n param:\n \n void define()\n \{\n \n \}\n \n void init()\n \{\n \n \}\n \n void process()\n \{\n float4 rgba = current_frame();\n \n float mark = 0.0f;\n\n if (rgba.x == 0.0f && rgba.y == 0.0f && rgba.z == 0.0f) \{\n mark = 1.0f;\n \} else \{\n mark = 0.0f;\n \}\n\n dst() = mark;\n \}\n\};\n" rebuild "" rebuild_finalise "" name BlinkScript3 xpos -2462 ypos 4819 } push $Nafb81c00 push $Naed1d700 push $Nafb81c00 BlinkScript { inputs 2 recompileCount 16 ProgramGroup 1 KernelDescription "3 \"DuplicatedFrames\" iterate pixelWise 4bc177c43a4f70507460cb63ecb623c7d194e2c006c37326230da1462f1523ab 3 \"current_frame\" Read Point \"previous_frame\" Read Point \"dst\" Write Point 0 0 0" kernelSource "\nkernel DuplicatedFrames : ImageComputationKernel\n\{\n Image current_frame;\n Image next_frame;\n Image dst; // the output image\n \n param:\n \n void define()\n \{\n \n \}\n \n void init()\n \{\n \n \}\n \n void process()\n \{\n float4 rgba_current = current_frame();\n float4 rgba_next = next_frame();\n \n float mark = 0.0f;\n\n if (rgba_current == rgba_next) \{\n mark = 1.0f;\n \} else \{\n mark = 0.0f;\n \}\n\n dst() = mark;\n \}\n\};\n" rebuild "" rebuild_finalise "" name BlinkScript1 xpos -2556 ypos 5033 } push 0 Viewer { inputs 3 frame_range 1001-1142 fps 25 input_number 1 colour_sample_bbox {0.8237410188 -0.3687050343 0.8241906762 -0.3660072088} viewerProcess "ACES 1.0 - SDR Video (sRGB - Display)" name Viewer1 xpos -4621 ypos 5823 } end_group push $Naf062400 PostageStamp { name Stamp27 help "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021" onCreate "if nuke.GUI:\n try:\n import stamps; stamps.wiredOnCreate()\n except:\n pass\n" knobChanged "import stamps; stamps.wiredKnobChanged()" autolabel "nuke.thisNode().knob(\"title\").value()" tile_color 0x1000001 note_font Verdana note_font_size 20 xpos -260 ypos 23962 hide_input true addUserKnob {20 wired_tab l "Wired Stamp"} addUserKnob {26 identifier -STARTLINE +HIDDEN T wired} addUserKnob {3 lockCallbacks l "" +STARTLINE +HIDDEN} addUserKnob {6 toReconnect -STARTLINE +HIDDEN} addUserKnob {1 title l Title: t "Displayed name on the Node Graph for this Stamp and its Anchor.\nIMPORTANT: This is only for display purposes, and is different from the real/internal name of the Stamps."} title MASTER_COMP_EXR addUserKnob {26 prev_title l "" +STARTLINE +HIDDEN T MASTER_COMP_EXR} addUserKnob {26 tags l Tags: t "Tags of this stamp's Anchor, for information purpose only.\nClick \"show anchor\" to change them." T 2D} addUserKnob {26 backdrops l Backdrops: t "Labels of backdrop nodes which contain this stamp's Anchor." T "
ACES,
MASTER OUTPUT,
OUT"} addUserKnob {26 line1 l "" +STARTLINE} addUserKnob {6 postageStamp_show l "postage stamp" t "Enable the postage stamp thumbnail in this node.\nYou're seeing this because the class of this node includes the postage_stamp knob." +STARTLINE} addUserKnob {26 anchor_label l Anchor: T " "} addUserKnob {22 show_anchor l " show anchor " t "Show the properties panel for this Stamp's Anchor." -STARTLINE T stamps.wiredShowAnchor()} addUserKnob {22 zoom_anchor l "zoom anchor" t "Navigate to this Stamp's Anchor on the Node Graph." -STARTLINE T stamps.wiredZoomAnchor()} addUserKnob {26 stamps_label l Stamps: T " "} addUserKnob {22 zoomNext l " zoom next " t "Navigate to this Stamp's next sibling on the Node Graph." -STARTLINE T stamps.wiredZoomNext()} addUserKnob {22 selectSimilar l " select similar " t "Select all similar Stamps to this one on the Node Graph." -STARTLINE T stamps.wiredSelectSimilar()} addUserKnob {26 space_1 l "" +STARTLINE T " "} addUserKnob {26 reconnect_label l Reconnect: t "Reconnect by the stored Anchor name." T " "} addUserKnob {22 reconnect_this l this t "Reconnect this Stamp to its Anchor, by its stored Anchor name." -STARTLINE T "n = nuke.thisNode()\ntry:\n n.setInput(0,nuke.toNode(n.knob(\"anchor\").value()))\nexcept:\n nuke.message(\"Unable to reconnect.\")\ntry:\n import stamps\n stamps.wiredGetStyle(n)\nexcept:\n pass\n"} addUserKnob {22 reconnect_similar l similar t "Reconnect this Stamp and similar ones to their Anchor, by their stored anchor name." -STARTLINE T stamps.wiredReconnectSimilar()} addUserKnob {22 reconnect_all l all t "Reconnect all the Stamps to their Anchors, by their stored anchor names." -STARTLINE T stamps.wiredReconnectAll()} addUserKnob {26 space_2 l "" +STARTLINE T " "} addUserKnob {20 advanced_reconnection l "Advanced Reconnection" n 2} addUserKnob {26 reconnect_by_title_label l "By Title:" t "Reconnect by searching for a matching title." T " "} addUserKnob {22 reconnect_by_title_this l this t "Look for an Anchor that shares this Stamp's title, and connect this Stamp to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitle()} addUserKnob {22 reconnect_by_title_similar l similar t "Look for an Anchor that shares this Stamp's title, and connect this Stamp and similar ones to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSimilar()} addUserKnob {22 reconnect_by_title_selected l selected t "For each Stamp selected, look for an Anchor that shares its title, and connect to it.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectByTitleSelected()} addUserKnob {26 reconnect_by_selection_label l "By Selection:" t "Force reconnect to a selected Anchor." T " "} addUserKnob {22 reconnect_by_selection_this l this t "Force reconnect this Stamp to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelection()} addUserKnob {22 reconnect_by_selection_similar l similar t "Force reconnect this Stamp and similar ones to a selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSimilar()} addUserKnob {22 reconnect_by_selection_selected l selected t "Force reconnect all selected Stamps to an also selected Anchor, whatever its name or title.\nIMPORTANT: Use this carefully, and only when the normal reconnection doesn't work." -STARTLINE T stamps.wiredReconnectBySelectionSelected()} addUserKnob {1 anchor l Anchor} anchor Anchor_1f620af31 addUserKnob {6 auto_reconnect_by_title l "  auto-reconnect by title" t "When creating this stamp again (like on copy-paste), auto-reconnect it by title instead of doing it by the saved anchor's name, and auto-turn this off immediately.\nIMPORTANT: Should be off by default. Only use this for setting up templates." +STARTLINE} addUserKnob {26 line2 l "" +STARTLINE} addUserKnob {22 buttonHelp l Help -STARTLINE T stamps.showHelp()} addUserKnob {26 version l " " t "Stamps by Adrian Pueyo and Alexey Kuchinski.\nUpdated May 18 2021." -STARTLINE T " Stamps v1.1"} } Write { file "\[getenv CVRT_SHOT_ROOT]/Export/sends/\[getenv CVRT_FILENAME]_\[regsub -all \{^_+|_+\$\} \[regsub -all \{\[^a-zA-Z0-9]+\} \[regsub -all \{\[\\s.]+\} \[value this.colorspace] \"\"] \"_\"] \"\"].mov" file_type mov mov64_format "mov (QuickTime / MOV)" mov64_codec appr mov_prores_codec_profile "ProRes 4:4:4:4 XQ 12-bit" mov_h264_codec_profile "High 4:2:0 8-bit" mov64_pixel_format {{0} "yuv420p\tYCbCr 4:2:0 8-bit"} mov64_quality High mov64_fast_start true mov64_write_timecode true mov64_gop_size 12 mov64_b_frames 0 mov64_bitrate 28000 mov64_bitrate_tolerance 0 mov64_quality_min 1 mov64_quality_max 3 colorspace "ARRI LogC3 (EI800)" create_directories true checkHashOnRead false version 31 in_colorspace ACES2065-1 out_colorspace "ARRI LogC3 (EI800)" ocioColorspace ACES2065-1 display "sRGB - Display" view "ACES 1.0 - SDR Video" name WRITE_QT_LOG label "\n\n!!! Please set the correct output transform !!!\n!!! Check that the framerate is correct !!!\n\n\n\[python os.path.normpath(nuke.thisNode().knob(\"file\").evaluate())]" note_font "Verdana Bold" xpos -260 ypos 24316 } Input { inputs 0 name PIPELINE onCreate "\nif nuke.thisNode():\n try:\n import os\n import re\n from pathlib import Path, PureWindowsPath\n \n \n # SET ENVIRONMENT VARIABLES\n class get_env_vars_from_node:\n def sanitize_str(self, str):\n return (\n re.sub(\n r\"_\{2,\}\",\n \"_\",\n re.sub(r\"\[^a-zA-Z0-9-]\", \"_\", str.replace(\" \", \"\").replace(\".\", \"\")),\n ).strip(\"_\")\n if str\n else \"\"\n )\n \n \n def get_version(self, str):\n pattern = r\"(?
\{self.shot_root\}\")\n node.knob(\"shot_root_display\").setValue(self.shot_root)\n \n \n self.working_space = nuke.Root()\[\"workingSpaceLUT\"].value()\n # self.working_space = nuke.Root()\[\"workingSpaceLUT\"].toScript()\n \n \n self.vendor = node.knob(\"vendor\").getValue() if node.knob(\"vendor\") else \"\"\n self.show_name = (\n node.knob(\"show_name\").getValue() if node.knob(\"show_name\") else \"\"\n )\n self.show_id = (\n self.sanitize_str(node.knob(\"show_id\").getValue())\n if node.knob(\"show_id\")\n else \"\"\n )\n self.sequence = (\n self.sanitize_str(node.knob(\"sequence\").getValue())\n if node.knob(\"sequence\")\n else \"\"\n )\n self.shot = (\n self.sanitize_str(node.knob(\"shot\").getValue())\n if node.knob(\"shot\")\n else \"\"\n )\n self.scope = (\n self.sanitize_str(node.knob(\"scope\").getValue())\n if node.knob(\"scope\")\n else \"\"\n )\n \n \n #self.username = os.getenv(\"USERNAME\")\n #self.machine = os.getenv(\"COMPUTERNAME\")\n self.author = node.knob(\"author\").getValue() if node.knob(\"author\") else \"\"\n self.notes = node.knob(\"notes\").getValue() if node.knob(\"notes\") else \"\"\n \n if node\[\"use_upper\"].value():\n self.filename = \"_\".join(\n filter(\n None,\n \[\n self.show_id.upper(),\n self.sequence.upper(),\n self.shot.upper(),\n self.scope.upper(),\n self.script_version,\n ],\n )\n )\n else:\n self.filename = \"_\".join(\n filter(\n None,\n \[\n self.show_id.lower(),\n self.sequence.lower(),\n self.shot.lower(),\n self.scope.lower(),\n self.script_version,\n ],\n )\n )\n \n \n env_vars = get_env_vars_from_node(node=nuke.thisNode())\n \n \n os.environ\[\"CVRT_WORKING_SPACE\"] = env_vars.working_space\n os.environ\[\"CVRT_VENDOR\"] = env_vars.vendor\n os.environ\[\"CVRT_SHOW_NAME\"] = env_vars.show_name\n os.environ\[\"CVRT_SHOW_ID\"] = env_vars.show_id\n os.environ\[\"CVRT_SEQUENCE\"] = env_vars.sequence\n os.environ\[\"CVRT_SHOT\"] = env_vars.shot\n os.environ\[\"CVRT_SCRIPT_PATH\"] = env_vars.script_path\n os.environ\[\"CVRT_SCRIPT_NAME\"] = env_vars.script_name\n os.environ\[\"CVRT_SCRIPT_VERSION\"] = env_vars.script_version\n os.environ\[\"CVRT_SHOT_ROOT\"] = env_vars.shot_root\n os.environ\[\"CVRT_SCOPE\"] = env_vars.scope\n os.environ\[\"CVRT_FILENAME\"] = env_vars.filename\n os.environ\[\"CVRT_AUTHOR\"] = env_vars.author\n os.environ\[\"CVRT_NOTES\"] = env_vars.notes\n #os.environ\[\"CVRT_USERNAME\"] = env_vars.username\n #os.environ\[\"CVRT_MACHINE\"] = env_vars.machine\n except:\n pass\n" knobChanged "\nimport os\nimport re\nfrom pathlib import Path, PureWindowsPath\n\n# SET ENVIRONMENT VARIABLES\nclass get_env_vars_from_node:\n def sanitize_str(self, str):\n return (\n re.sub(\n r\"_\{2,\}\",\n \"_\",\n re.sub(r\"\[^a-zA-Z0-9-]\", \"_\", str.replace(\" \", \"\").replace(\".\", \"\")),\n ).strip(\"_\")\n if str\n else \"\"\n )\n\n def get_version(self, str):\n pattern = r\"(?
\{self.shot_root\}\")\n node.knob(\"shot_root_display\").setValue(self.shot_root)\n\n self.working_space = nuke.Root()\[\"workingSpaceLUT\"].value()\n # self.working_space = nuke.Root()\[\"workingSpaceLUT\"].toScript()\n\n self.vendor = node.knob(\"vendor\").getValue() if node.knob(\"vendor\") else \"\"\n self.show_name = (\n node.knob(\"show_name\").getValue() if node.knob(\"show_name\") else \"\"\n )\n self.show_id = (\n self.sanitize_str(node.knob(\"show_id\").getValue())\n if node.knob(\"show_id\")\n else \"\"\n )\n self.sequence = (\n self.sanitize_str(node.knob(\"sequence\").getValue())\n if node.knob(\"sequence\")\n else \"\"\n )\n self.shot = (\n self.sanitize_str(node.knob(\"shot\").getValue())\n if node.knob(\"shot\")\n else \"\"\n )\n self.scope = (\n self.sanitize_str(node.knob(\"scope\").getValue())\n if node.knob(\"scope\")\n else \"\"\n )\n\n #self.username = os.getenv(\"USERNAME\")\n #self.machine = os.getenv(\"COMPUTERNAME\")\n self.author = node.knob(\"author\").getValue() if node.knob(\"author\") else \"\"\n self.notes = node.knob(\"notes\").getValue() if node.knob(\"notes\") else \"\"\n\n if node\[\"use_upper\"].value():\n self.filename = \"_\".join(\n filter(\n None,\n \[\n self.show_id.upper(),\n self.sequence.upper(),\n self.shot.upper(),\n self.scope.upper(),\n self.script_version,\n ],\n )\n )\n else:\n self.filename = \"_\".join(\n filter(\n None,\n \[\n self.show_id.lower(),\n self.sequence.lower(),\n self.shot.lower(),\n self.scope.lower(),\n self.script_version,\n ],\n )\n )\n\nenv_vars = get_env_vars_from_node(node=nuke.thisNode())\n\nos.environ\[\"CVRT_WORKING_SPACE\"] = env_vars.working_space\nos.environ\[\"CVRT_VENDOR\"] = env_vars.vendor\nos.environ\[\"CVRT_SHOW_NAME\"] = env_vars.show_name\nos.environ\[\"CVRT_SHOW_ID\"] = env_vars.show_id\nos.environ\[\"CVRT_SEQUENCE\"] = env_vars.sequence\nos.environ\[\"CVRT_SHOT\"] = env_vars.shot\nos.environ\[\"CVRT_SCRIPT_PATH\"] = env_vars.script_path\nos.environ\[\"CVRT_SCRIPT_NAME\"] = env_vars.script_name\nos.environ\[\"CVRT_SCRIPT_VERSION\"] = env_vars.script_version\nos.environ\[\"CVRT_SHOT_ROOT\"] = env_vars.shot_root\nos.environ\[\"CVRT_SCOPE\"] = env_vars.scope\nos.environ\[\"CVRT_FILENAME\"] = env_vars.filename\nos.environ\[\"CVRT_AUTHOR\"] = env_vars.author\nos.environ\[\"CVRT_NOTES\"] = env_vars.notes\n#os.environ\[\"CVRT_USERNAME\"] = env_vars.username\n#os.environ\[\"CVRT_MACHINE\"] = env_vars.machine\n" tile_color 0x8a39dbff note_font "Verdana Bold" note_font_size 96 note_font_color 0xdbd8ddff xpos 70 ypos -11145 addUserKnob {20 env_vars l "Environment Variables"} addUserKnob {1 uuid +INVISIBLE} uuid 675ecf52-769b-4980-b482-108617f2742a addUserKnob {52 init_env_vars l "" +STARTLINE T "nuke.thisNode().knob(\"onCreate\").setValue(\n\"\"\"\nif nuke.thisNode():\n try:\n import os\n import re\n from pathlib import Path, PureWindowsPath\n \n \n # SET ENVIRONMENT VARIABLES\n class get_env_vars_from_node:\n def sanitize_str(self, str):\n return (\n re.sub(\n r\"_\{2,\}\",\n \"_\",\n re.sub(r\"\[^a-zA-Z0-9-]\", \"_\", str.replace(\" \", \"\").replace(\".\", \"\")),\n ).strip(\"_\")\n if str\n else \"\"\n )\n \n \n def get_version(self, str):\n pattern = r\"(?
\{self.shot_root\}\")\n node.knob(\"shot_root_display\").setValue(self.shot_root)\n \n \n self.working_space = nuke.Root()\[\"workingSpaceLUT\"].value()\n # self.working_space = nuke.Root()\[\"workingSpaceLUT\"].toScript()\n \n \n self.vendor = node.knob(\"vendor\").getValue() if node.knob(\"vendor\") else \"\"\n self.show_name = (\n node.knob(\"show_name\").getValue() if node.knob(\"show_name\") else \"\"\n )\n self.show_id = (\n self.sanitize_str(node.knob(\"show_id\").getValue())\n if node.knob(\"show_id\")\n else \"\"\n )\n self.sequence = (\n self.sanitize_str(node.knob(\"sequence\").getValue())\n if node.knob(\"sequence\")\n else \"\"\n )\n self.shot = (\n self.sanitize_str(node.knob(\"shot\").getValue())\n if node.knob(\"shot\")\n else \"\"\n )\n self.scope = (\n self.sanitize_str(node.knob(\"scope\").getValue())\n if node.knob(\"scope\")\n else \"\"\n )\n \n \n #self.username = os.getenv(\"USERNAME\")\n #self.machine = os.getenv(\"COMPUTERNAME\")\n self.author = node.knob(\"author\").getValue() if node.knob(\"author\") else \"\"\n self.notes = node.knob(\"notes\").getValue() if node.knob(\"notes\") else \"\"\n \n if node\[\"use_upper\"].value():\n self.filename = \"_\".join(\n filter(\n None,\n \[\n self.show_id.upper(),\n self.sequence.upper(),\n self.shot.upper(),\n self.scope.upper(),\n self.script_version,\n ],\n )\n )\n else:\n self.filename = \"_\".join(\n filter(\n None,\n \[\n self.show_id.lower(),\n self.sequence.lower(),\n self.shot.lower(),\n self.scope.lower(),\n self.script_version,\n ],\n )\n )\n \n \n env_vars = get_env_vars_from_node(node=nuke.thisNode())\n \n \n os.environ\[\"CVRT_WORKING_SPACE\"] = env_vars.working_space\n os.environ\[\"CVRT_VENDOR\"] = env_vars.vendor\n os.environ\[\"CVRT_SHOW_NAME\"] = env_vars.show_name\n os.environ\[\"CVRT_SHOW_ID\"] = env_vars.show_id\n os.environ\[\"CVRT_SEQUENCE\"] = env_vars.sequence\n os.environ\[\"CVRT_SHOT\"] = env_vars.shot\n os.environ\[\"CVRT_SCRIPT_PATH\"] = env_vars.script_path\n os.environ\[\"CVRT_SCRIPT_NAME\"] = env_vars.script_name\n os.environ\[\"CVRT_SCRIPT_VERSION\"] = env_vars.script_version\n os.environ\[\"CVRT_SHOT_ROOT\"] = env_vars.shot_root\n os.environ\[\"CVRT_SCOPE\"] = env_vars.scope\n os.environ\[\"CVRT_FILENAME\"] = env_vars.filename\n os.environ\[\"CVRT_AUTHOR\"] = env_vars.author\n os.environ\[\"CVRT_NOTES\"] = env_vars.notes\n #os.environ\[\"CVRT_USERNAME\"] = env_vars.username\n #os.environ\[\"CVRT_MACHINE\"] = env_vars.machine\n except:\n pass\n\"\"\")" +STARTLINE} addUserKnob {52 update_env_vars l "" +STARTLINE T "nuke.thisNode().knob(\"knobChanged\").setValue('''\nimport os\nimport re\nfrom pathlib import Path, PureWindowsPath\n\n# SET ENVIRONMENT VARIABLES\nclass get_env_vars_from_node:\n def sanitize_str(self, str):\n return (\n re.sub(\n r\"_\{2,\}\",\n \"_\",\n re.sub(r\"\[^a-zA-Z0-9-]\", \"_\", str.replace(\" \", \"\").replace(\".\", \"\")),\n ).strip(\"_\")\n if str\n else \"\"\n )\n\n def get_version(self, str):\n pattern = r\"(?
\{self.shot_root\}\")\n node.knob(\"shot_root_display\").setValue(self.shot_root)\n\n self.working_space = nuke.Root()\[\"workingSpaceLUT\"].value()\n # self.working_space = nuke.Root()\[\"workingSpaceLUT\"].toScript()\n\n self.vendor = node.knob(\"vendor\").getValue() if node.knob(\"vendor\") else \"\"\n self.show_name = (\n node.knob(\"show_name\").getValue() if node.knob(\"show_name\") else \"\"\n )\n self.show_id = (\n self.sanitize_str(node.knob(\"show_id\").getValue())\n if node.knob(\"show_id\")\n else \"\"\n )\n self.sequence = (\n self.sanitize_str(node.knob(\"sequence\").getValue())\n if node.knob(\"sequence\")\n else \"\"\n )\n self.shot = (\n self.sanitize_str(node.knob(\"shot\").getValue())\n if node.knob(\"shot\")\n else \"\"\n )\n self.scope = (\n self.sanitize_str(node.knob(\"scope\").getValue())\n if node.knob(\"scope\")\n else \"\"\n )\n\n #self.username = os.getenv(\"USERNAME\")\n #self.machine = os.getenv(\"COMPUTERNAME\")\n self.author = node.knob(\"author\").getValue() if node.knob(\"author\") else \"\"\n self.notes = node.knob(\"notes\").getValue() if node.knob(\"notes\") else \"\"\n\n if node\[\"use_upper\"].value():\n self.filename = \"_\".join(\n filter(\n None,\n \[\n self.show_id.upper(),\n self.sequence.upper(),\n self.shot.upper(),\n self.scope.upper(),\n self.script_version,\n ],\n )\n )\n else:\n self.filename = \"_\".join(\n filter(\n None,\n \[\n self.show_id.lower(),\n self.sequence.lower(),\n self.shot.lower(),\n self.scope.lower(),\n self.script_version,\n ],\n )\n )\n\nenv_vars = get_env_vars_from_node(node=nuke.thisNode())\n\nos.environ\[\"CVRT_WORKING_SPACE\"] = env_vars.working_space\nos.environ\[\"CVRT_VENDOR\"] = env_vars.vendor\nos.environ\[\"CVRT_SHOW_NAME\"] = env_vars.show_name\nos.environ\[\"CVRT_SHOW_ID\"] = env_vars.show_id\nos.environ\[\"CVRT_SEQUENCE\"] = env_vars.sequence\nos.environ\[\"CVRT_SHOT\"] = env_vars.shot\nos.environ\[\"CVRT_SCRIPT_PATH\"] = env_vars.script_path\nos.environ\[\"CVRT_SCRIPT_NAME\"] = env_vars.script_name\nos.environ\[\"CVRT_SCRIPT_VERSION\"] = env_vars.script_version\nos.environ\[\"CVRT_SHOT_ROOT\"] = env_vars.shot_root\nos.environ\[\"CVRT_SCOPE\"] = env_vars.scope\nos.environ\[\"CVRT_FILENAME\"] = env_vars.filename\nos.environ\[\"CVRT_AUTHOR\"] = env_vars.author\nos.environ\[\"CVRT_NOTES\"] = env_vars.notes\n#os.environ\[\"CVRT_USERNAME\"] = env_vars.username\n#os.environ\[\"CVRT_MACHINE\"] = env_vars.machine\n''')" +STARTLINE} addUserKnob {1 shot_root l "Shot root" t "The shot's root folder path relative to the current script path.

Z:/Biohazard Nextcloud 2/_Tools/Nuke/Biohazard"} shot_root ../../ addUserKnob {26 shot_root_display l "Shot root:" T "Z:/Biohazard Nextcloud 2/_Tools/Nuke/Biohazard"} addUserKnob {26 divider_1 l "" +STARTLINE} addUserKnob {1 vendor l Vendor} vendor COVERT addUserKnob {1 show_name l "Show name"} addUserKnob {1 show_id l "Show Id (*)"} addUserKnob {1 sequence l Sequence} addUserKnob {1 shot l "Shot (*)"} addUserKnob {1 scope l "Scope (*)"} scope comp addUserKnob {26 divider01 l "" +STARTLINE} addUserKnob {1 notes l Notes} addUserKnob {26 divider02 l "" +STARTLINE} addUserKnob {1 author l Author} addUserKnob {26 ""} addUserKnob {6 use_upper l Uppercase +STARTLINE} addUserKnob {26 divider l "" +STARTLINE} addUserKnob {26 required l "" +STARTLINE T " (*) Required fields.\n\nPress \"Shift + D\" to enable/disable the knobs."} addUserKnob {26 ""} addUserKnob {26 version l "" +STARTLINE T v1.3} } set Nafc34800 [stack 0] Viewer { frame_range 1-41 colour_sample_bbox {-0.2437050343 0.5773381591 -0.2428057492 0.5782374144} viewerProcess "ACES 1.0 - SDR Video (sRGB - Display)" monitorOutNDISenderName "NukeX - Covert Template - Viewer1" monitorOutOutputTransform "ACES 1.0 - SDR Video (Rec.1886 Rec.709 - Display)" name Viewer1 xpos -291 ypos -10056 } push $Nafc34800 Group { name ENV_VARS_CHECK tile_color 0x666565ff note_font "Verdana Bold" note_font_size 32 note_font_color 0xf2f2f2ff xpos 70 ypos -10990 addUserKnob {20 User l "" +STARTLINE} addUserKnob {41 message l "" +STARTLINE T ENV_VARS_CHECK.message} } Input { inputs 0 name Input1 xpos 93 ypos -511 } Text2 { font_size_toolbar 100 font_width_toolbar 100 font_height_toolbar 100 message "CVRT_VENDOR: \[python os.getenv(\"CVRT_VENDOR\")]\nCVRT_SHOW_NAME: \[python os.getenv(\"CVRT_SHOW_NAME\")]\nCVRT_SHOW_ID: \[python os.getenv(\"CVRT_SHOW_ID\")]\nCVRT_SEQUENCE: \[python os.getenv(\"CVRT_SEQUENCE\")]\nCVRT_SHOT: \[python os.getenv(\"CVRT_SHOT\")]\nCVRT_SCRIPT_PATH: \[python os.getenv(\"CVRT_SCRIPT_PATH\")]\nCVRT_SHOT_ROOT: \[python os.getenv(\"CVRT_SHOT_ROOT\")]\nCVRT_SCRIPT_NAME: \[python os.getenv(\"CVRT_SCRIPT_NAME\")]\nCVRT_SCRIPT_VERSION: \[python os.getenv(\"CVRT_SCRIPT_VERSION\")]\nCVRT_SCOPE: \[python os.getenv(\"CVRT_SCOPE\")]\nCVRT_NOTES: \[python os.getenv(\"CVRT_NOTES\")]\nCVRT_WORKING_SPACE: \[python os.getenv(\"CVRT_WORKING_SPACE\")]\nCVRT_AUTHOR: \[python os.getenv(\"CVRT_AUTHOR\")]\nCVRT_FILENAME: \[python os.getenv(\"CVRT_FILENAME\")]\n" old_message {{67 86 82 84 95 86 69 78 68 79 82 58 32 67 79 86 69 82 84 10 67 86 82 84 95 83 72 79 87 95 78 65 77 69 58 32 10 67 86 82 84 95 83 72 79 87 95 73 68 58 32 10 67 86 82 84 95 83 69 81 85 69 78 67 69 58 32 10 67 86 82 84 95 83 72 79 84 58 32 10 67 86 82 84 95 83 67 82 73 80 84 95 80 65 84 72 58 32 32 90 58 47 66 105 111 104 97 122 97 114 100 32 78 101 120 116 99 108 111 117 100 32 50 47 95 84 111 111 108 115 47 78 117 107 101 47 66 105 111 104 97 122 97 114 100 47 77 97 115 116 101 114 32 84 101 109 112 108 97 116 101 47 67 111 118 101 114 116 32 84 101 109 112 108 97 116 101 47 67 111 118 101 114 116 32 84 101 109 112 108 97 116 101 46 110 107 10 67 86 82 84 95 83 72 79 84 95 82 79 79 84 58 32 32 90 58 47 66 105 111 104 97 122 97 114 100 32 78 101 120 116 99 108 111 117 100 32 50 47 95 84 111 111 108 115 47 78 117 107 101 47 66 105 111 104 97 122 97 114 100 10 67 86 82 84 95 83 67 82 73 80 84 95 78 65 77 69 58 32 32 67 111 118 101 114 116 84 101 109 112 108 97 116 101 10 67 86 82 84 95 83 67 82 73 80 84 95 86 69 82 83 73 79 78 58 32 32 118 78 111 110 101 10 67 86 82 84 95 83 67 79 80 69 58 32 99 111 109 112 10 67 86 82 84 95 78 79 84 69 83 58 32 10 67 86 82 84 95 87 79 82 75 73 78 71 95 83 80 65 67 69 58 32 65 67 69 83 50 48 54 53 45 49 10 67 86 82 84 95 65 85 84 72 79 82 58 32 10 67 86 82 84 95 70 73 76 69 78 65 77 69 58 32 99 111 109 112 95 118 78 111 110 101 10} } old_expression_markers {{13 18 36 35 51 50 67 66 79 78 99 195 214 259 280 293 317 321 335 338 352 351 373 382 397 396 413 422} } box {0 0 {root.width} {root.height}} xjustify center yjustify center transforms {{0 2} } cursor_position 351 font {{ Utopia : Bold : UtopiaBold.pfa : 0 }} global_font_scale 0.5 leading 0.35 center {1920 1080} cursor_initialised true autofit_bbox false initial_cursor_position {{0 2160} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 1920 1080 0 0 1 1 0 0 0 0} } name ENV_VARS_CHECK tile_color 0x666565ff note_font Verdana note_font_size 32 note_font_color 0xf2f2f2ff selected true xpos 93 ypos -454 addUserKnob {20 User} } Output { name Output1 xpos 93 ypos -371 } end_group Group { inputs 0 name log2lin1 tile_color 0x73af81ff note_font "Verdana Bold" note_font_size 48 note_font_color 0x344f38ff xpos -2460 ypos -5502 addUserKnob {20 User} addUserKnob {41 display l "display device" T OCIODisplay1.display} addUserKnob {41 out_colorspace l colorspace T OCIOColorSpace1.out_colorspace} } Input { inputs 0 name Input1 xpos -598 ypos -498 } OCIOColorSpace { in_colorspace ACES2065-1 out_colorspace "ARRI LogC3 (EI800)" name OCIOColorSpace1 tile_color 0x223425ff label "\nchange the output to the correct colorspace\n." xpos -598 ypos -459 addUserKnob {20 User} addUserKnob {52 python l "" +STARTLINE T "nuke.thisNode().knob(\"in_colorspace\").setValue(nuke.root().knob(\"workingSpaceLUT\").value())" +STARTLINE} } OCIODisplay { colorspace ACES2065-1 display "sRGB - Display" view "ACES 1.0 - SDR Video" invert true name OCIODisplay1 knobChanged "\nnuke.toNode(\"OCIOColorSpace1\").knob(\"in_colorspace\").setValue(nuke.thisNode().knob(\"colorspace\").value())\n" tile_color 0x223425ff selected true xpos -598 ypos -369 addUserKnob {20 User} addUserKnob {52 python l "" +STARTLINE T "nuke.thisNode().knob(\"colorspace\").setValue(nuke.root().knob(\"workingSpaceLUT\").value())" +STARTLINE} } Output { name Output1 xpos -598 ypos -291 } end_group OCIODisplay { inputs 0 colorspace ACES2065-1 display "sRGB - Display" view "ACES 1.0 - SDR Video" invert true name INVERSE_DISPLAY_TRANSFORM1 selected true xpos -2130 ypos -5481 addUserKnob {20 User} addUserKnob {52 python l "" +STARTLINE T "nuke.thisNode().knob(\"colorspace\").setValue(nuke.root().knob(\"workingSpaceLUT\").value())" +STARTLINE} }