Advertisement
Guest User

Untitled

a guest
Oct 10th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.89 KB | None | 0 0
  1. set cut_paste_input [stack 0]
  2. version 11.3 v5
  3. push $cut_paste_input
  4. Group {
  5. name EDGE
  6. help "Edge allows you to extend the proper color out over transparent edges or areas with a lot of motionblur without eroding away the nice detail. This edge extend has some more advanced features like splitting the core matte and final key which allows you to work on motion blur without effecting small details like hair or a swinging rope for example. There is also more control over how you blend the core detail to the extended edge color. This was shown to me years ago by an old comp sup I had and is the same as the edge extend by Frank Reuter. This is my version of it that has evolved a little bit over the years.\n\nInputs\nThere are multiple inputs to Edge but you can just plug in your FG with alpha if you want to use it simplified. Separating Core and Softer keys or using roto with and without motionblur has advantages in certain situations. ie: If you have a thin object this will help maintain solid alpha where you need it.\n\nFG – Foreground plate with Spill suppression applied\nCore – This is like a core matte, it helps identify the leading edge and where the edge tool should start from. It is important to add this core so that small details are not lost like a thin rope or hair.\nKey – This is your Key with fine hair details and transparent motion blurred edges. For Roto you want to have motion blur turned on.\nBG – This is where your Background goes if you are using the node as Final Result\nMask - Currently this only works if you are using Edge in Final result."
  7. tile_color 0x990000
  8. label "\[value iterations]"
  9. selected true
  10. xpos -312
  11. ypos -96
  12. addUserKnob {20 User l Extend}
  13. addUserKnob {6 xxx_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
  14. addUserKnob {41 in l channels T Shuffle2.in}
  15. addUserKnob {4 operation t "Here you can choose if you want to use the Edge Tool to merge together your foreground and background giving you the Final Result or if you would like the Intermediate Result which is unpremultiplied and not merged over the background. The Intermediate Result can be helpful when tweaking parameters like the edgegrow start and edgegrow size." M {Final Intermediate "" ""}}
  16. operation Intermediate
  17. addUserKnob {6 previewedgematte l "preview edge matte" t "This allows you to preview your edge matte that you can use via the channels created in the edge node or by creating a shuffle using the button at the bottom." -STARTLINE}
  18. addUserKnob {6 extendChromaOnly l "extend chroma only" t "This selection will extend only Chroma information by swapping back in the original luminance information." +STARTLINE}
  19. addUserKnob {41 exp -STARTLINE T EdgeExpansion.exp}
  20. addUserKnob {6 premultiplied t "Select this if your footage is already premultiplied to remove dark edges in the extension." -STARTLINE}
  21. addUserKnob {6 clamped l "clamp alpha" t "Select this if your alpha has values below 0 or above 1." -STARTLINE}
  22. addUserKnob {26 ""}
  23. addUserKnob {14 edgeStart l "slice start" t "Determines where you would like to start bleeding out the color from the inside of your key. It does this with a series of unpremult, blur, premult operations instead of a standard erode." R 0 100}
  24. edgeStart 4
  25. addUserKnob {41 iterations l "slice iterations" t "Sets how large the edge with the color bleeding will be from the edge grow start or core matte and how many times this will be duplicated." T EdgeExpansion.iterations}
  26. addUserKnob {41 sliceWidth l "slice width" t "The slice width is the amount of blur being applied per slice." T EdgeExpansion.sliceWidth}
  27. addUserKnob {41 sliceBlur l INVISIBLE +INVISIBLE T EdgeExpansion.sliceBlur}
  28. addUserKnob {26 ""}
  29. addUserKnob {7 blurEdgeBlend l "edge blend" t "Helps to soften the transition from the original to the new edge. It tends to erode the bleeding color back inwards if you use high values." R 0 10}
  30. addUserKnob {7 blurEdgeBlur l "edge blur" t "This helps soften the transition bringing back original detail. This can sometimes bring back some lighting information instead of having it completely replaced." R 0 10}
  31. addUserKnob {7 filterErodeEdgeSmooth l "edge smooth" t "This one will help with extremely large motionblur and completely takes away detail. This should not be used in most cases but if you do use it sparingly." R -10 10}
  32. filterErodeEdgeSmooth 10
  33. addUserKnob {26 ""}
  34. addUserKnob {41 maskChannelMask l mask -STARTLINE T Merge3.maskChannelMask}
  35. addUserKnob {41 inject -STARTLINE T Merge3.inject}
  36. addUserKnob {41 invert_mask l invert -STARTLINE T Merge3.invert_mask}
  37. addUserKnob {41 fringe -STARTLINE T Merge3.fringe}
  38. addUserKnob {26 ""}
  39. addUserKnob {22 edgeShuffleButton l "create edge matte" t "This will generate a shuffle node that isolates the areas of extension which you can use to regrain your edges." T "nuke.root().begin()\nEdgeShuffle = nuke.createNode('Shuffle', inpanel = False)\nEdgeShuffle\['label'].setValue( 'Regrain this edge' )\nEdgeShuffle\['in'].setValue( 'edge' )\nEdgeShuffle\['in2'].setValue( 'none' )\nEdgeShuffle\['red'].setValue('alpha')\nEdgeShuffle\['green'].setValue('alpha')\nEdgeShuffle\['blue'].setValue('alpha')\nEdgeShuffle\['alpha'].setValue('alpha')" +STARTLINE}
  40. addUserKnob {26 reminder l "" -STARTLINE T "*** use edge.matte to regrain your edges. ***"}
  41. addUserKnob {20 color l Blending}
  42. addUserKnob {6 enablecolor l enable t "This tab will help you blending your foreground edges with the background color. it is based off the edge extension in the first tab but you can modify the edge properties to get your desired look." +STARTLINE}
  43. addUserKnob {6 colorpreview l preview t "Preview the edge being used for blending with the BG. This helps if you want to modify it further." -STARTLINE}
  44. addUserKnob {41 operation_1 l operation t "This is the merge operation you want to use for blending. It is set to average by default but you can use anything you like ie: plus, max, min." T ColorMerge.operation}
  45. addUserKnob {7 erodeExpandEdge l "expand edge" t "You can expand or contract the edge created in the extend tab." R -100 100}
  46. addUserKnob {7 blurSoftenEdge l "soften edge" t "This blur will help soften the transition of the inside blending edge." R 0 100}
  47. addUserKnob {41 mix_1 l "mix fg luma" t "At a value of 1 this will only blend the chroma information but you can mix this back to include the luma info as well." T Copy5.mix}
  48. addUserKnob {7 mergeBlendingMix l mix t "Mix Edge Blending result"}
  49. mergeBlendingMix 1
  50. addUserKnob {26 ""}
  51. addUserKnob {7 BlurBG l "blur bg" t "Blur the details in the background when you blend them so your foreground doesnt look transparent." R 0 100}
  52. addUserKnob {26 ""}
  53. addUserKnob {20 AdjustBGColor l "adjust bg color" t "Here you can modify the color and saturation of the bg being used for blending. This will anly affect the blending not the actual bg." n 1}
  54. AdjustBGColor 0
  55. addUserKnob {41 white l gain T GradeEdgeColor.white}
  56. addUserKnob {41 gamma T GradeEdgeColor.gamma}
  57. addUserKnob {41 black l lift T GradeEdgeColor.black}
  58. addUserKnob {41 saturation T EdgeSat.saturation}
  59. addUserKnob {41 mix l INVISIBLE +INVISIBLE T ColorMerge.mix}
  60. addUserKnob {20 endGroup n -1}
  61. addUserKnob {20 MaskBGLuma l "mask bg luma" t "This section will allow you to preview and isolate the bright areas of the bg to wrap around your foreground. Think of this as a way to have lights wrap arpound your foreground in car comps." n 1}
  62. MaskBGLuma 0
  63. addUserKnob {26 maskBgLuma l "mask bg luma"}
  64. addUserKnob {6 enableBGMask l "enable bg mask" +STARTLINE}
  65. addUserKnob {6 PreviewBG l "preview bg input" -STARTLINE}
  66. addUserKnob {41 range l INVISIBLE +INVISIBLE T Keyer1.range}
  67. addUserKnob {41 out l "Luma Range" T controler.out}
  68. addUserKnob {20 endGroup_1 l endGroup n -1}
  69. addUserKnob {20 info l Info}
  70. addUserKnob {26 ""}
  71. addUserKnob {26 info_1 l "" +STARTLINE T "\nEdge Version 6.8\nCreated by Rob Bannister\nwww.bannisterpost.com"}
  72. addUserKnob {26 help_1 l "" +STARTLINE T "<a href=\"http://www.bannisterpost.com/downloads/edge/\" style=\"color:white\">HELP</a>"}
  73. }
  74. Histogram {
  75. inputs 0
  76. name controler
  77. xpos -982
  78. ypos 561
  79. }
  80. Input {
  81. inputs 0
  82. name FG
  83. xpos 376
  84. ypos -342
  85. }
  86. Unpremult {
  87. name Unpremult3
  88. xpos 376
  89. ypos -288
  90. disable {{!parent.premultiplied}}
  91. }
  92. Dot {
  93. name Dot14
  94. xpos 410
  95. ypos -224
  96. }
  97. set Nff2a7c00 [stack 0]
  98. Input {
  99. inputs 0
  100. name Key
  101. xpos -215
  102. ypos -318
  103. number 1
  104. }
  105. Clamp {
  106. name Clamp1
  107. xpos -215
  108. ypos -180
  109. disable {{parent.clamped==0?1:0}}
  110. }
  111. Switch {
  112. inputs 2
  113. which {{"!\[exists parent.input1]"}}
  114. name Switch1
  115. xpos -215
  116. ypos -61
  117. }
  118. set Nb6af9800 [stack 0]
  119. Shuffle {
  120. red alpha
  121. green alpha
  122. blue alpha
  123. name Shuffle1
  124. xpos -215
  125. ypos 237
  126. }
  127. set Nb6af9400 [stack 0]
  128. Dot {
  129. name Dot6
  130. xpos -181
  131. ypos 477
  132. }
  133. set Nb6af9000 [stack 0]
  134. push $Nb6af9800
  135. Input {
  136. inputs 0
  137. name Core
  138. xpos 791
  139. ypos -331
  140. number 2
  141. }
  142. Clamp {
  143. name Clamp2
  144. xpos 787
  145. ypos -157
  146. disable {{parent.clamped==0?1:0}}
  147. }
  148. Switch {
  149. inputs 2
  150. which {{"!\[exists parent.input2]"}}
  151. name Switch5
  152. xpos 787
  153. ypos -61
  154. }
  155. Erode {
  156. size {{parent.edgeStart}}
  157. name Erode1
  158. label "\[value size]"
  159. xpos 787
  160. ypos 22
  161. }
  162. Blur {
  163. channels alpha
  164. size {{parent.blurEdgeBlur}}
  165. name Blur_edgeBur
  166. label "\[value size]"
  167. xpos 787
  168. ypos 126
  169. }
  170. set Nb6af9c00 [stack 0]
  171. Blur {
  172. channels alpha
  173. size {{parent.blurEdgeBlend}}
  174. name blue_edgeBlend
  175. label "\[value size]"
  176. xpos 591
  177. ypos 126
  178. }
  179. FilterErode {
  180. size {{parent.filterErodeEdgeSmooth}}
  181. filter gaussian
  182. name FilterErode_edgeSmooth
  183. label "\[value size]"
  184. xpos 591
  185. ypos 224
  186. }
  187. set Nb6b27800 [stack 0]
  188. push $Nb6af9400
  189. ChannelMerge {
  190. inputs 2
  191. operation stencil
  192. name ChannelMerge1
  193. xpos -64
  194. ypos 224
  195. }
  196. ChannelMerge {
  197. inputs 2
  198. operation multiply
  199. name ChannelMerge2
  200. xpos -64
  201. ypos 460
  202. }
  203. Dot {
  204. name Dot17
  205. xpos -30
  206. ypos 691
  207. }
  208. set Nb6b26800 [stack 0]
  209. Dot {
  210. name Dot11
  211. xpos -30
  212. ypos 1133
  213. }
  214. Input {
  215. inputs 0
  216. name BG
  217. xpos -1081
  218. ypos -343
  219. number 3
  220. }
  221. Dot {
  222. name Dot5
  223. xpos -1047
  224. ypos 293
  225. }
  226. set Nb6b49c00 [stack 0]
  227. Dot {
  228. name Dot12
  229. xpos -1047
  230. ypos 644
  231. }
  232. set Nb6b49800 [stack 0]
  233. Keyer {
  234. operation "luminance key"
  235. range {{parent.controler.out.0} {parent.controler.out.1} 1 1}
  236. name Keyer1
  237. xpos -979
  238. ypos 634
  239. }
  240. Blur {
  241. channels rgba
  242. size {{parent.BlurBG}}
  243. name Blur2
  244. label "\[value size]"
  245. xpos -717
  246. ypos 634
  247. }
  248. set Nb6b49000 [stack 0]
  249. push $Nb6b27800
  250. Dot {
  251. name Dot7
  252. xpos 625
  253. ypos 344
  254. }
  255. set Nb6b48c00 [stack 0]
  256. Dilate {
  257. channels alpha
  258. size {{parent.erodeExpandEdge}}
  259. name DilateColorEdge
  260. label "\[value size]"
  261. xpos -388
  262. ypos 327
  263. }
  264. Blur {
  265. channels alpha
  266. size {{parent.blurSoftenEdge}}
  267. name BlurColorEdge
  268. label "\[value size]"
  269. xpos -498
  270. ypos 327
  271. }
  272. push $Nb6af9c00
  273. push $Nff2a7c00
  274. Shuffle {
  275. name Shuffle2
  276. xpos 376
  277. ypos -174
  278. }
  279. Remove {
  280. channels alpha
  281. name Remove1
  282. xpos 376
  283. ypos -113
  284. }
  285. Dot {
  286. name Dot16
  287. xpos 410
  288. ypos 459
  289. }
  290. set Nb6b6d800 [stack 0]
  291. Group {
  292. inputs 2
  293. name EdgeExpansion
  294. knobChanged "\n\nn = nuke.thisNode()\nk = nuke.thisKnob()\n\nif 'iterations' in k.name(): \n #print int(k.value())\n k.setValue(int(k.value()))\n if k.value()<1:\n k.setValue(1)\n n.begin()\n\n for node in nuke.allNodes():\n if 'static' not in node\['label'].value():\n nuke.delete(node)\n\n slices = int(n\['iterations'].value())-1\n step = 1\n blur_count = 5\n merge_count = 2\n unpremult_count = 4\n num = 1\n for x in range(1,slices+step,step):\n \n a = nuke.createNode('Blur', inpanel=False)\n new_knob = nuke.Int_Knob('exp_value')\n a.addKnob(new_knob)\n a\['exp_value'].setValue(num)\n a.setInput(0, nuke.toNode('Unpremult' + str(unpremult_count)))\n a\['size'].setExpression('parent.sliceWidth*(parent.exp==0?1:exp_value)')\n a\['channels'].setValue('red green blue depth.Z')\n\n b = nuke.createNode('Shuffle', inpanel=False)\n b\['in'].setValue( 'rgba' )\n b\['in2'].setValue( 'depth' )\n b\['out2'].setValue( 'depth' )\n b\['alpha'].setValue('red2')\n\n c = nuke.createNode('Unpremult', inpanel=False)\n c\['channels'].setValue('red green blue alpha')\n c\['alpha'].setValue('depth.Z')\n\n d = nuke.createNode('Blur', inpanel=False)\n new_knob = nuke.Int_Knob('exp_value')\n d.addKnob(new_knob)\n d\['exp_value'].setValue(num)\n d\['size'].setExpression('parent.sliceWidth*(parent.exp==0?1:exp_value)')\n d\['channels'].setValue('rgba')\n\n e = nuke.createNode('Merge2', inpanel=False)\n e\['Achannels'].setValue('red green blue depth.Z')\n e.setInput(1, nuke.toNode('Merge' + str(merge_count)))\n e.setInput(0, nuke.toNode('Blur' + str(blur_count+2)))\n\n merge_count += 1\n blur_count += 2\n unpremult_count += 1\n\n f = nuke.createNode('Blur', inpanel=False)\n new_knob = nuke.Int_Knob('exp_value')\n f.addKnob(new_knob)\n f\['exp_value'].setValue(num)\n f.setInput(0, nuke.toNode('Unpremult' + str(unpremult_count)))\n f\['size'].setExpression('parent.sliceWidth*(parent.exp==0?1:exp_value)')\n f\['channels'].setValue('rgba')\n\n g = nuke.createNode('Shuffle', inpanel=False)\n g\['in'].setValue( 'rgba' )\n g\['in2'].setValue( 'depth' )\n g\['out2'].setValue( 'depth' )\n g\['black'].setValue('alpha')\n\n h = nuke.createNode('Unpremult', inpanel=False)\n h\['channels'].setValue('red green blue depth.Z')\n\n j = nuke.createNode('Blur', inpanel=False)\n new_knob = nuke.Int_Knob('exp_value')\n j.addKnob(new_knob)\n j\['exp_value'].setValue(num)\n j\['size'].setExpression('parent.sliceWidth*(parent.exp==0?1:exp_value)')\n j\['channels'].setValue('red green blue depth.Z')\n\n k = nuke.createNode('Merge2', inpanel=False)\n k.setInput(1, nuke.toNode('Merge' + str(merge_count)))\n k.setInput(0, nuke.toNode('Blur' + str(blur_count+2)))\n\n merge_count += 1\n blur_count += 2\n unpremult_count += 1\n num += 1\n nuke.toNode('Output1').setInput(0, k)\n\n try:\n nuke.toNode('Blur5').setInput(0, nuke.toNode('Unpremult4'))\n except:\n nuke.toNode('Output1').setInput(0, nuke.toNode('Merge2'))\n\n n.end()\n \n\n"
  295. note_font_size 25
  296. xpos 787
  297. ypos 449
  298. addUserKnob {20 User}
  299. addUserKnob {6 firstrun l "Disable before input" +STARTLINE}
  300. firstrun {{"!\[exists parent.input0]"}}
  301. addUserKnob {6 exp t "The exponential check box will add a variable to the duplicated blurs that increases as they move outwards from the original edge. This might help if you have a large distance to extend." +STARTLINE}
  302. addUserKnob {7 iterations t "Sets how large the edge with the color bleeding will be from the edge grow start or core matte and how many times this will be duplicated. The smaller the width the more detail is preserved.This should be just big enough to reach the edge of the largest areas of motionblur." R 1 25}
  303. iterations 4
  304. addUserKnob {7 sliceWidth l "slice width" t "The slice width is the amount of blur being applied per slice." R 1 10}
  305. sliceWidth 10
  306. addUserKnob {7 sliceBlur l "slice blur" t "The slice width is the amount of blur being applied per slice." R 1 10}
  307. sliceBlur 1
  308. }
  309. Input {
  310. inputs 0
  311. name Alpha
  312. label static
  313. xpos -218
  314. ypos -646
  315. number 1
  316. }
  317. Input {
  318. inputs 0
  319. name RGB
  320. label static
  321. xpos -64
  322. ypos -772
  323. }
  324. Unpremult {
  325. name Unpremult1
  326. label static
  327. xpos -64
  328. ypos -689
  329. }
  330. Copy {
  331. inputs 2
  332. from0 rgba.alpha
  333. to0 rgba.alpha
  334. name Copy1
  335. label static
  336. xpos -64
  337. ypos -653
  338. disable {{parent.firstrun}}
  339. }
  340. Premult {
  341. name Premult1
  342. label static
  343. xpos -64
  344. ypos -599
  345. }
  346. Shuffle {
  347. black alpha
  348. out2 depth
  349. name Shuffle1
  350. label static
  351. xpos -64
  352. ypos -561
  353. }
  354. Unpremult {
  355. channels {rgba.red rgba.green rgba.blue depth.Z}
  356. name Unpremult2
  357. label static
  358. xpos -64
  359. ypos -523
  360. }
  361. set Nb6b95c00 [stack 0]
  362. Blur {
  363. channels {rgba.red rgba.green rgba.blue depth.Z}
  364. size {{parent.sliceWidth}}
  365. name Blur1
  366. label static
  367. xpos -64
  368. ypos -428
  369. }
  370. Dot {
  371. name Dot2
  372. label static
  373. xpos -30
  374. ypos -336
  375. }
  376. push $Nb6b95c00
  377. Blur {
  378. channels {rgba.red rgba.green rgba.blue depth.Z}
  379. size {{parent.sliceWidth}}
  380. name Blur2
  381. label static
  382. xpos 46
  383. ypos -523
  384. }
  385. Shuffle {
  386. in2 depth
  387. alpha red2
  388. out2 depth
  389. name Shuffle2
  390. label static
  391. xpos 46
  392. ypos -471
  393. }
  394. Unpremult {
  395. channels rgba
  396. alpha depth.Z
  397. name Unpremult3
  398. label static
  399. xpos 46
  400. ypos -435
  401. }
  402. set Nb6b94800 [stack 0]
  403. Blur {
  404. channels rgba
  405. size {{parent.sliceWidth}}
  406. name Blur3
  407. label static
  408. xpos 46
  409. ypos -381
  410. }
  411. Merge2 {
  412. inputs 2
  413. Achannels {rgba.red rgba.green rgba.blue depth.Z}
  414. name Merge1
  415. label static
  416. xpos 46
  417. ypos -343
  418. }
  419. Dot {
  420. name Dot3
  421. label static
  422. xpos 80
  423. ypos -237
  424. }
  425. push $Nb6b94800
  426. Blur {
  427. channels rgba
  428. size {{parent.sliceWidth}}
  429. name Blur4
  430. label static
  431. xpos 156
  432. ypos -428
  433. }
  434. Shuffle {
  435. in2 depth
  436. black alpha
  437. out2 depth
  438. name Shuffle3
  439. label static
  440. xpos 156
  441. ypos -390
  442. }
  443. Unpremult {
  444. channels {rgba.red rgba.green rgba.blue depth.Z}
  445. name Unpremult4
  446. label static
  447. xpos 156
  448. ypos -350
  449. }
  450. set Nb0d3b000 [stack 0]
  451. Blur {
  452. channels {rgba.red rgba.green rgba.blue depth.Z}
  453. size {{parent.sliceWidth}}
  454. name Blur5
  455. label static
  456. xpos 156
  457. ypos -299
  458. }
  459. Merge2 {
  460. inputs 2
  461. name Merge2
  462. label static
  463. xpos 156
  464. ypos -247
  465. }
  466. push $Nb0d3b000
  467. Blur {
  468. channels {rgba.red rgba.green rgba.blue depth.Z}
  469. size {{parent.sliceWidth*(parent.exp==0?1:exp_value)}}
  470. name Blur6
  471. addUserKnob {20 User}
  472. addUserKnob {3 exp_value}
  473. exp_value 1
  474. }
  475. Shuffle {
  476. in2 depth
  477. alpha red2
  478. out2 depth
  479. name Shuffle4
  480. }
  481. Unpremult {
  482. channels rgba
  483. alpha depth.Z
  484. name Unpremult5
  485. }
  486. set Nb0d69c00 [stack 0]
  487. Blur {
  488. channels rgba
  489. size {{parent.sliceWidth*(parent.exp==0?1:exp_value)}}
  490. name Blur7
  491. addUserKnob {20 User}
  492. addUserKnob {3 exp_value}
  493. exp_value 1
  494. }
  495. Merge2 {
  496. inputs 2
  497. Achannels {rgba.red rgba.green rgba.blue depth.Z}
  498. name Merge3
  499. }
  500. push $Nb0d69c00
  501. Blur {
  502. channels rgba
  503. size {{parent.sliceWidth*(parent.exp==0?1:exp_value)}}
  504. name Blur8
  505. addUserKnob {20 User}
  506. addUserKnob {3 exp_value}
  507. exp_value 1
  508. }
  509. Shuffle {
  510. in2 depth
  511. black alpha
  512. out2 depth
  513. name Shuffle5
  514. }
  515. Unpremult {
  516. channels {rgba.red rgba.green rgba.blue depth.Z}
  517. name Unpremult6
  518. }
  519. set Nb0d68800 [stack 0]
  520. Blur {
  521. channels {rgba.red rgba.green rgba.blue depth.Z}
  522. size {{parent.sliceWidth*(parent.exp==0?1:exp_value)}}
  523. name Blur9
  524. addUserKnob {20 User}
  525. addUserKnob {3 exp_value}
  526. exp_value 1
  527. }
  528. Merge2 {
  529. inputs 2
  530. name Merge4
  531. }
  532. push $Nb0d68800
  533. Blur {
  534. channels {rgba.red rgba.green rgba.blue depth.Z}
  535. size {{parent.sliceWidth*(parent.exp==0?1:exp_value)}}
  536. name Blur10
  537. addUserKnob {20 User}
  538. addUserKnob {3 exp_value}
  539. exp_value 2
  540. }
  541. Shuffle {
  542. in2 depth
  543. alpha red2
  544. out2 depth
  545. name Shuffle6
  546. }
  547. Unpremult {
  548. channels rgba
  549. alpha depth.Z
  550. name Unpremult7
  551. }
  552. set Nb0da1400 [stack 0]
  553. Blur {
  554. channels rgba
  555. size {{parent.sliceWidth*(parent.exp==0?1:exp_value)}}
  556. name Blur11
  557. addUserKnob {20 User}
  558. addUserKnob {3 exp_value}
  559. exp_value 2
  560. }
  561. Merge2 {
  562. inputs 2
  563. Achannels {rgba.red rgba.green rgba.blue depth.Z}
  564. name Merge5
  565. }
  566. push $Nb0da1400
  567. Blur {
  568. channels rgba
  569. size {{parent.sliceWidth*(parent.exp==0?1:exp_value)}}
  570. name Blur12
  571. addUserKnob {20 User}
  572. addUserKnob {3 exp_value}
  573. exp_value 2
  574. }
  575. Shuffle {
  576. in2 depth
  577. black alpha
  578. out2 depth
  579. name Shuffle7
  580. }
  581. Unpremult {
  582. channels {rgba.red rgba.green rgba.blue depth.Z}
  583. name Unpremult8
  584. }
  585. set Nb0da0000 [stack 0]
  586. Blur {
  587. channels {rgba.red rgba.green rgba.blue depth.Z}
  588. size {{parent.sliceWidth*(parent.exp==0?1:exp_value)}}
  589. name Blur13
  590. addUserKnob {20 User}
  591. addUserKnob {3 exp_value}
  592. exp_value 2
  593. }
  594. Merge2 {
  595. inputs 2
  596. name Merge6
  597. }
  598. push $Nb0da0000
  599. Blur {
  600. channels {rgba.red rgba.green rgba.blue depth.Z}
  601. size {{parent.sliceWidth*(parent.exp==0?1:exp_value)}}
  602. name Blur14
  603. addUserKnob {20 User}
  604. addUserKnob {3 exp_value}
  605. exp_value 3
  606. }
  607. Shuffle {
  608. in2 depth
  609. alpha red2
  610. out2 depth
  611. name Shuffle8
  612. }
  613. Unpremult {
  614. channels rgba
  615. alpha depth.Z
  616. name Unpremult9
  617. }
  618. set Nb0dd2c00 [stack 0]
  619. Blur {
  620. channels rgba
  621. size {{parent.sliceWidth*(parent.exp==0?1:exp_value)}}
  622. name Blur15
  623. addUserKnob {20 User}
  624. addUserKnob {3 exp_value}
  625. exp_value 3
  626. }
  627. Merge2 {
  628. inputs 2
  629. Achannels {rgba.red rgba.green rgba.blue depth.Z}
  630. name Merge7
  631. }
  632. push $Nb0dd2c00
  633. Blur {
  634. channels rgba
  635. size {{parent.sliceWidth*(parent.exp==0?1:exp_value)}}
  636. name Blur16
  637. addUserKnob {20 User}
  638. addUserKnob {3 exp_value}
  639. exp_value 3
  640. }
  641. Shuffle {
  642. in2 depth
  643. black alpha
  644. out2 depth
  645. name Shuffle9
  646. }
  647. Unpremult {
  648. channels {rgba.red rgba.green rgba.blue depth.Z}
  649. name Unpremult10
  650. }
  651. Blur {
  652. channels {rgba.red rgba.green rgba.blue depth.Z}
  653. size {{parent.sliceWidth*(parent.exp==0?1:exp_value)}}
  654. name Blur17
  655. addUserKnob {20 User}
  656. addUserKnob {3 exp_value}
  657. exp_value 3
  658. }
  659. Merge2 {
  660. inputs 2
  661. name Merge8
  662. selected true
  663. }
  664. Output {
  665. name Output1
  666. label static
  667. xpos 156
  668. ypos 4217
  669. }
  670. end_group
  671. set Nb2a7c900 [stack 0]
  672. push $Nb6af9400
  673. Switch {
  674. inputs 2
  675. which {{parent.FinalSwitch.which}}
  676. name Switch2
  677. xpos -418
  678. ypos 237
  679. }
  680. Dilate {
  681. size 50
  682. name Dilate1
  683. label "\[value size]"
  684. xpos -608
  685. ypos 224
  686. disable true
  687. }
  688. set Nb0e0e400 [stack 0]
  689. ChannelMerge {
  690. inputs 2
  691. operation stencil
  692. name ChannelMerge3
  693. xpos -608
  694. ypos 327
  695. }
  696. ChannelMerge {
  697. inputs 2
  698. operation multiply
  699. name ChannelMerge_colormask
  700. xpos -608
  701. ypos 627
  702. disable {{!parent.enableBGMask}}
  703. }
  704. Dot {
  705. name Dot4
  706. xpos -574
  707. ypos 702
  708. }
  709. set Nb0e3d800 [stack 0]
  710. Dot {
  711. name Dot10
  712. xpos -573
  713. ypos 1057
  714. }
  715. push $Nb6b49000
  716. Dot {
  717. name Dot13
  718. xpos -683
  719. ypos 993
  720. }
  721. Premult {
  722. name Premult1
  723. xpos -971
  724. ypos 990
  725. }
  726. push $Nb0e3d800
  727. push $Nb6af9000
  728. push $Nb6b26800
  729. push $Nb6b6d800
  730. Dot {
  731. name Dot1
  732. xpos 410
  733. ypos 565
  734. }
  735. set Nb0e3c800 [stack 0]
  736. Dot {
  737. name Dot18
  738. xpos 190
  739. ypos 565
  740. }
  741. Colorspace {
  742. colorspace_out YCbCr
  743. name Colorspace2
  744. xpos 156
  745. ypos 596
  746. }
  747. push $Nb6b48c00
  748. Dot {
  749. name Dot8
  750. xpos 625
  751. ypos 602
  752. }
  753. push $Nb0e3c800
  754. push $Nb2a7c900
  755. Dot {
  756. name Dot15
  757. xpos 821
  758. ypos 531
  759. }
  760. Dot {
  761. name Dot3
  762. xpos 821
  763. ypos 733
  764. }
  765. Keymix {
  766. inputs 3
  767. name Keymix1
  768. xpos 376
  769. ypos 723
  770. }
  771. Colorspace {
  772. colorspace_out YCbCr
  773. name Colorspace1
  774. xpos 266
  775. ypos 729
  776. }
  777. Copy {
  778. inputs 2
  779. from0 rgba.red
  780. to0 rgba.red
  781. name Copy1
  782. xpos 156
  783. ypos 723
  784. disable {{!parent.extendChromaOnly}}
  785. }
  786. Colorspace {
  787. colorspace_in YCbCr
  788. name Colorspace3
  789. xpos 46
  790. ypos 729
  791. }
  792. add_layer {edge edge.red edge.green edge.blue edge.alpha edge.matte}
  793. ShuffleCopy {
  794. inputs 2
  795. red alpha
  796. green alpha
  797. blue alpha
  798. out edge
  799. name ShuffleCopy1
  800. xpos -64
  801. ypos 729
  802. }
  803. Copy {
  804. inputs 2
  805. from0 rgba.alpha
  806. to0 rgba.alpha
  807. name Copy2
  808. xpos -215
  809. ypos 723
  810. }
  811. Dot {
  812. name Dot9
  813. xpos -472
  814. ypos 733
  815. }
  816. set Nb0e89800 [stack 0]
  817. Colorspace {
  818. colorspace_out YCbCr
  819. name Colorspace4
  820. xpos -506
  821. ypos 434
  822. }
  823. push $Nb6b49c00
  824. Colorspace {
  825. colorspace_out YCbCr
  826. name Colorspace6
  827. xpos -791
  828. ypos 289
  829. }
  830. Blur {
  831. channels rgb
  832. size {{parent.BlurBG}}
  833. name Blur1
  834. label "\[value size]"
  835. xpos -790
  836. ypos 341
  837. }
  838. Copy {
  839. inputs 2
  840. from0 rgba.red
  841. to0 rgba.red
  842. from1 rgba.alpha
  843. to1 rgba.alpha
  844. name Copy5
  845. xpos -790
  846. ypos 421
  847. }
  848. Colorspace {
  849. colorspace_in YCbCr
  850. name Colorspace5
  851. xpos -790
  852. ypos 487
  853. }
  854. Grade {
  855. black_clamp false
  856. name GradeEdgeColor
  857. xpos -790
  858. ypos 525
  859. }
  860. Saturation {
  861. name EdgeSat
  862. xpos -790
  863. ypos 563
  864. }
  865. push $Nb0e89800
  866. Merge2 {
  867. inputs 2+1
  868. operation average
  869. Achannels rgb
  870. output rgb
  871. mix {{parent.mergeBlendingMix}}
  872. name ColorMerge
  873. selected true
  874. xpos -791
  875. ypos 730
  876. disable {{!parent.enablecolor}}
  877. }
  878. set Nb0ec7800 [stack 0]
  879. Dot {
  880. name Dot2
  881. xpos -757
  882. ypos 911
  883. }
  884. Input {
  885. inputs 0
  886. name Mask
  887. xpos -1288
  888. ypos 730
  889. number 4
  890. }
  891. push $Nb0ec7800
  892. Premult {
  893. name Premult3
  894. xpos -956
  895. ypos 730
  896. }
  897. push $Nb6b49800
  898. Merge2 {
  899. inputs 2+1
  900. also_merge edge
  901. name Merge3
  902. xpos -1081
  903. ypos 730
  904. }
  905. Switch {
  906. inputs 2
  907. which {{operation}}
  908. name FinalSwitch
  909. xpos -1081
  910. ypos 908
  911. }
  912. Switch {
  913. inputs 2
  914. which {{parent.PreviewBG}}
  915. name BGPreview
  916. xpos -1081
  917. ypos 990
  918. }
  919. Copy {
  920. inputs 2
  921. from0 rgba.alpha
  922. to0 rgba.red
  923. name Copy3
  924. xpos -1081
  925. ypos 1050
  926. disable {{parent.colorpreview*-1+1}}
  927. }
  928. Copy {
  929. inputs 2
  930. from0 rgba.alpha
  931. to0 rgba.red
  932. name Copy4
  933. xpos -1081
  934. ypos 1123
  935. disable {{!parent.previewedgematte}}
  936. }
  937. Shuffle {
  938. out {{{parent.Shuffle2.in}}}
  939. name Shuffle3
  940. xpos -1081
  941. ypos 1239
  942. }
  943. Output {
  944. name Output1
  945. xpos -1081
  946. ypos 1947
  947. }
  948. push $Nb0e0e400
  949. push $Nb0ec7800
  950. Viewer {
  951. inputs 2
  952. frame_range 100-100
  953. colour_sample_bbox {-0.7646484375 -0.2055664063 -0.7197265625 -0.1782226563}
  954. input_process false
  955. name Viewer1
  956. xpos -706
  957. ypos 1852
  958. }
  959. end_group
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement